Перейти к содержимому

Озвучка готового текста

/api/v1/tts — совместимый поднабор Подкастов только для готового текста. Он сохранён для существующих интеграций; новые интеграции могут использовать /api/v1/podcasts с mode: "prepared_text".

Метод и путь Разрешение
GET /api/v1/tts/voices tts:quote
POST /api/v1/tts/quotes — {title, text, voiceId, language} tts:quote
POST /api/v1/tts/podcasts — тело котировки плюс quoteId, заголовок Idempotency-Key tts:create
GET /api/v1/tts/podcasts/:podcastId, …/receipt, …/audio tts:read
POST /api/v1/tts/podcasts/:podcastId/cancel tts:create
POST /api/v1/tts/podcasts/:podcastId/continuation-quote tts:quote
POST /api/v1/tts/podcasts/:podcastId/continue tts:create

Режимы raw_text и topic здесь отклоняются (400 INVALID_MODE), а поля темы, исследования, источников и повторного использования — 400 UNSUPPORTED_TTS_FIELD.

Длительность в запросе не передаётся. Скорость чтения голоса даёт приблизительную оценку минут, но не ограничивает длину исходника. Весь нормализованный текст передаётся на озвучку; превышение прогноза не вызывает обрезку или повторную генерацию. Действуют ограничения размера HTTP-тела, реальные пределы голосового провайдера, баланс, квота ключа и денежный лимит, если он задан.

Допустимая failed-задача продолжается создающим ключом через котировку продолжения и подтверждение с quoteId и Idempotency-Key; готовые действия повторно не покупаются. Контракт описан в Статусе и продолжении.

tts:quote, tts:create

1 · quote
curl -s -X POST https://cast.witqq.dev/api/v1/tts/quotes \
-H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' \
-d '{
"title": "Объявление",
"text": "Уважаемые пассажиры, поезд до станции Лесная отправляется с третьего пути.",
"voiceId": "yandex-speechkit:filipp",
"language": "ru"
}'
2 · create
curl -s -X POST https://cast.witqq.dev/api/v1/tts/podcasts \
-H "Authorization: Bearer $KEY" \
-H 'Idempotency-Key: my-request-001' \
-H 'Content-Type: application/json' \
-d '{
"quoteId": "QUOTE_ID",
"title": "Объявление",
"text": "Уважаемые пассажиры, поезд до станции Лесная отправляется с третьего пути.",
"voiceId": "yandex-speechkit:filipp",
"language": "ru"
}'