Синтез речи в реальном времени v1
Поддержка клиентов, использующих замороженный протокол WebSocket Realtime TTS v1.
Realtime TTS v1 — замороженный контракт совместимости. Новые интеграции должны использовать родительский контракт v3; события и поля v1, v2 и v3 не взаимозаменяемы.
Адрес, аутентификация и кодирование
| Элемент | Значение |
|---|---|
| WebSocket | wss://realtime.fishaudio.org/v1/tts/live |
| Подпротокол | realtime.tts.msgpack.v1 |
| Кодирование | Бинарные кадры MessagePack |
Authorization: Bearer FISHAUDIO_API_KEY
Sec-WebSocket-Protocol: realtime.tts.msgpack.v1Не помещайте учётные данные в URL или браузерный код.
Поток событий
authenticated → start → ready → text → flush → audio → usage → stop → finishСобытия клиента: start, text, flush, stop, ping. События сервера: authenticated, ready, audio, usage, pong, warning, finish, error. Аудио находится в audio.data; до stop можно отправить несколько сегментов text → flush.
start.request
| Поле | Правило |
|---|---|
model_id | Обязательный публичный UUID голоса/модели; также принимается modelId. |
engine_model_id | Необязательно; псевдоним engineModelId. |
format | mp3, wav, pcm, opus; по умолчанию mp3. |
speed / volume | 0.5–2 / 0–10. |
language | 1–32 символа. |
chunk_length | Целое 100–300. |
latency | normal или balanced. |
Все сообщения — карты MessagePack; неизвестные поля отклоняются. Оплата рассчитывается по каждому принятому сегменту flush. v1 не поддерживает устойчивый повтор или идемпотентность сегментов. Ошибки содержат code, message, retryable. Для новых возможностей перейдите на Realtime TTS v3.