Kitta Audio Docs
API СсылкаПреобразование текста в речь
Back to site

Синхронизировать 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 или опущен, успешные ответы возвращают двоичный звук. Если cachetrue, успешные ответы возвращают метаданные 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Генерация не удалась после проверкиПовторите попытку, только если ваш продукт допускает дублирование звука