Синхронизировать HTTP
Генерируйте речь синхронно с Open API v1.
Синхронизация HTTP
Используйте конечную точку синхронизации TTS, когда текст достаточно короткий для потока запрос-ответ и ваш продукт может дождаться аудио, прежде чем продолжить. Для длинного текста, пакетной работы или очередей, видимых пользователю, используйте Асинхронные задания.
Если ваш клиент ожидает форму запроса OpenAI /v1/audio/speech, используйте вместо этого конечную точку OpenAI-совместимая с TTS.
POST /api/open/v1/speech/tts
Authorization: Bearer KITTA_API_KEY
Content-Type: application/jsonЗапрос
{
"text": "Hello from Kitta Audio.",
"voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
"modelId": "fishaudio-s21pro-flash",
"format": "mp3"
}Общие поля:
| Поле | Тип | Заметки |
|---|---|---|
text | строка | Текст для синтеза. Нормализуйте пробелы перед отправкой большого сгенерированного текста. |
voiceId | строка | Предпочитаемый голосовой идентификатор для новых интеграций. |
modelId | строка | Идентификатор модели TTS, например fishaudio-s21pro-flash. |
format | строка | Контейнер вывода, например mp3, в зависимости от включенных моделей. |
cache | логическое | Если это правда, ответ может возвращать метаданные JSON и URL-адрес аудио. |
В новых интеграциях следует использовать voiceId из GET /api/open/v1/voices. Для быстрой проверки соединения используйте общедоступный системный голос 00a1b221-6137-4b73-ad62-b0cbce134167.
Не смешивайте поля из старых SDK или других вариантов сайта в текущем зарубежном контракте Open API.
curl https://kittaai.com/api/open/v1/speech/tts \
-H "Authorization: Bearer KITTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from Kitta Audio.","voiceId":"00a1b221-6137-4b73-ad62-b0cbce134167","modelId":"fishaudio-s21pro-flash","format":"mp3"}' \
--output speech.mp3Ответ
Если cache равен false или опущен, успешные ответы возвращают двоичный звук. Если cache — true, успешные ответы возвращают метаданные JSON:
{
"audio_url": "https://example.com/generated.mp3",
"credits_used": 12,
"quota_remaining": 987988
}Ваш клиент должен использовать заголовок Content-Type вместо того, чтобы принимать одну форму ответа. Сохраните сгенерированный звук в собственном долговременном хранилище, если URL-адрес недолговечен.
Выставление счетов и кредиты
Sync TTS потребляет кредиты в зависимости от созданного контента и конфигурации модели. Поскольку конечная точка выполняет генерацию внутри запроса HTTP, тайм-аут клиента не всегда означает, что сервер отменил работу. Используйте идемпотентность на своем уровне приложения при повторении действий пользователя.
Если вам нужен точный баланс после генерации, позвоните в Профиль после завершения запроса. Для больших пакетов отдавайте предпочтение асинхронным заданиям, чтобы каждая задача имела постоянный идентификатор и статус.
Ошибки
| Статус | Значение | Действие |
|---|---|---|
400 | Недопустимый текст, голосовой идентификатор, формат или форма полезных данных | Исправьте запрос перед повторной попыткой |
401 | Ключ API отсутствует или недействителен | Обновить учетные данные на стороне сервера |
402 | Кредитов или квот недостаточно | Остановить пакетную обработку и показать состояние выставления счетов |
429 | Скорость ограничена | Повторить попытку с отсрочкой |
500 | Генерация не удалась после проверки | Повторите попытку, только если ваш продукт допускает дублирование звука |