Appearance
Realtime API — Обзор
Realtime API GenVoice позволяет синтезировать речь в реальном времени через WebSocket-соединение. Текст передаётся по частям (слово за словом, как от LLM), а аудио возвращается чанками по мере генерации.
Отличия от REST API
REST API (POST /api/tts) | Realtime API (WebSocket) | |
|---|---|---|
| Протокол | HTTP | WebSocket |
| Отправка текста | Весь текст целиком | По частям (потоково) |
| Получение аудио | Файл целиком после синтеза | Чанками (~200 мс) по мере готовности |
| Задержка до первого аудио | Высокая (весь текст → весь аудиофайл) | Низкая (первые слова → первый чанк) |
| Прерывание | Невозможно | Мгновенное через interrupt |
| Несколько фраз | Отдельный запрос на каждую | В одной сессии без переподключения |
| Форматы аудио | MP3, WAV, Opus, PCM, µ-law, A-law | PCM, µ-law, A-law (raw) |
Когда использовать
- Голосовые боты и IVR — минимальная задержка ответа, поддержка прерывания пользователем
- Стриминг от LLM — текст от языковой модели поступает токен за токеном, аудио начинает генерироваться, не дожидаясь конца ответа
- Телефония — форматы µ-law/A-law (8 kHz) для интеграции с VoIP-системами
- Интерактивные приложения — диалоговые системы с возможностью мгновенного прерывания речи
Возможности
- Потоковая отправка текста (посимвольно, пословно, по предложениям)
- Получение аудио чанками (~200 мс) по мере генерации
- Мгновенное прерывание синтеза (
interrupt) - Несколько последовательных генераций в одной сессии
- Настраиваемая буферизация текста (пороги, принудительный flush)
- Keepalive через ping/pong
- Настраиваемая скорость речи (0.5×–1.5×)
Быстрый старт
- Подключитесь по WebSocket к
wss://api.genvoice.ru/v1/api/tts/stream - Отправьте
session.beginс API-ключом и voice_id - Получите
session.ready— сессия готова - Отправляйте текст через
text.chunk - Получайте аудио через
audio.chunk - Завершите генерацию через
text.end
Подробности — в следующих разделах.
Следующие шаги
- Подключение — endpoint, форматы аудио, коды закрытия
- Протокол сообщений — все события клиент ↔ сервер
- Жизненный цикл сессии — состояния, буферизация, interrupt
- Примеры интеграции — Python-клиент, wscat, типовые сценарии