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

Синтез речи в реальном времени v3

Потоковый синтез речи по независимому от поставщика протоколу WebSocket Realtime TTS v3.

Realtime TTS v3 рекомендуется для новых интеграций. Все движки используют одни camelCase-события, авторизацию, биллинг и восстановление; при смене движка меняется только modelId.

ЭлементЗначение
WebSocketwss://kittaai.com/v3/tts/live
Подпротоколrealtime.tts.msgpack.v3
ВозможностиGET /v3/tts/capabilities на realtime-хосте

Все сообщения — бинарные кадры MessagePack. Серверный клиент передаёт Authorization: Bearer API_KEY при рукопожатии. Для браузера доверенный backend создаёт одноразовый билет через POST /v3/tts/browser-tickets. Не помещайте ключи в URL.

Браузер подключается по возвращённому URL и подпротоколу, затем первым MessagePack-кадром отправляет { event: 'auth', token: 'rtv2_ticket_...' }.

{ event: 'start', mode: 'simple', request: {
  voiceId: '00a1b221-6137-4b73-ad62-b0cbce134167',
  modelId: 'fishaudio-s21pro-flash', format: 'mp3',
  speed: 1, stability: 1, similarity: 1, language: 'ru',
  chunkLength: 200, latency: 'balanced'
}}

voiceId и modelId обязательны. Доступные модели, форматы и параметры задаёт capabilities; ready.effectiveRequest содержит фактически применённые значения. Отправьте текст как { event:'input', text:'Привет', commit:true }, затем stop.

Основные события сервера: authenticated, ready, input_ack, segment_accepted, audio, usage, segment_completed, warning, error, finish, pong; все поля camelCase.

В надёжном режиме используйте mode:'reliable' и стабильный requestId. Статус: GET /v3/tts/requests/{requestId}, аудио: GET /v3/tts/requests/{requestId}/segments/{segmentId}/audio. Повторяйте только если error.retryable равно true. Realtime v2 остаётся совместимым, но не смешивайте его snake_case с v3.