Skip to content

Подключение

Endpoint

wss://api.genvoice.ru/v1/api/tts/stream

Подключение осуществляется по протоколу WebSocket (WSS) без query-параметров. Аутентификация и настройка сессии (включая формат аудио) происходят внутри WebSocket-сессии через сообщение session.begin.

Поддерживаемые форматы аудио

Формат задаётся в поле output_format события session.begin:

ФорматSample rateBits per sampleБайт/секПрименение
pcm_80008 000 Hz16-bit (signed LE)16 000Телефония (PCM)
pcm_1600016 000 Hz16-bit (signed LE)32 000Голосовые ассистенты
pcm_2205022 050 Hz16-bit (signed LE)44 100Общее назначение
pcm_2400024 000 Hz16-bit (signed LE)48 000Рекомендуемый
ulaw_80008 000 Hz8-bit (µ-law)8 000Телефония (G.711 µ-law)
alaw_80008 000 Hz8-bit (A-law)8 000Телефония (G.711 A-law)

Рекомендация

Для большинства задач используйте pcm_24000 — наилучшее качество при умеренном объёме данных. Для телефонии (SIP/VoIP) выбирайте ulaw_8000 или alaw_8000.

Аудио передаётся в raw-формате (без заголовков WAV/MP3) и кодируется в base64 внутри JSON-сообщений audio.chunk.

HTTP-ошибки до WebSocket Upgrade

Если подключение невозможно, сервер отвечает HTTP-ошибкой до установки WebSocket:

HTTP-кодПричина
503 Service UnavailableСервер перегружен (достигнут лимит соединений) или выключается

WebSocket Close Codes

После установки WebSocket-соединения сервер может закрыть его с одним из следующих кодов:

КодЗначениеОписание
1000NormalНормальное закрытие по session.end
4001Auth FailedНеверный API-ключ
4002Auth Timeoutsession.begin не отправлен в течение 10 секунд после подключения
4003Rate LimitedПревышен лимит параллельных соединений
4004Insufficient BalanceНедостаточно средств на балансе
4005Service UnavailableTTS-сервис временно недоступен
4006Voice Not FoundГолос не найден
4008Inactivity TimeoutТайм-аут бездействия (по умолчанию 30 сек)
4500Internal ErrorВнутренняя ошибка сервера

Обратите внимание

Код 4002 означает, что клиент подключился, но не отправил session.begin в течение 10 секунд. Отправляйте это сообщение сразу после установки соединения.

Лимиты

ОграничениеЗначение
Параллельных WebSocket-соединений на пользователяЗависит от тарифа (1–10)
Максимальный размер сообщения64 КБ
Тайм-аут аутентификации10 секунд
Тайм-аут бездействия30 секунд (настраиваемый, до 180 сек)
Скорость речи0.5× – 1.5×

Лимиты параллельных соединений по тарифам:

ТарифПараллельных соединений
Free1
Старт2
Базовый3
Продвинутый5

При попытке открыть второе параллельное соединение сервер вернёт ошибку rate_limited и закроет соединение с кодом 4003.

Следующие шаги