Разделы документации
Голосовой диалогготовится
Планируемый контракт разговора в реальном времени: соединение, звук в обе стороны, прерывание речи, цены
Что планируется
Голосовой диалог — это разговор с моделью в реальном времени: вы шлёте звук с микрофона, модель отвечает голосом, а вы можете перебить её в любой момент. В отличие от обычного запроса к /v1/chat/completions, соединение живёт всё время разговора и передаёт данные в обе стороны.
Планируемая конвенция — постоянное соединение WebSocket по адресу wss://api.librachat.kz/v1/realtime, ключ передаётся тем же заголовком Authorization: Bearer sk-libra-…, что и в остальном API. Модель выбирается параметром запроса: libra-voice для обычного диалога и libra-voice-hd для улучшенного.
Соединение
Клиент открывает соединение и первым сообщением настраивает сессию: голос, формат звука, язык, текстовую инструкцию поведения. Дальше обе стороны обмениваются событиями в формате JSON, звук передаётся строками base64 внутри событий.
Передача звука в обе стороны
Звук от микрофона отправляется кусками по 20–100 мс: PCM 16 бит, моно, 24 000 Гц. Каждый кусок — отдельное событие. Когда включено определение конца реплики на стороне сервиса (turn_detection), отдельно закрывать реплику не нужно: пауза в речи сама запускает ответ.
| Параметр | Значение |
|---|---|
| Кодек | PCM 16 бит, little-endian |
| Частота | 24 000 Гц |
| Каналы | 1 (моно) |
| Размер куска | 20–100 мс |
| Кодирование в событии | base64 |
Прерывание речи
Пользователь вправе заговорить, пока модель ещё отвечает. Планируемое поведение: сервис сам замечает начало речи и присылает событие о прерывании, клиент обязан немедленно остановить проигрывание и сообщить, сколько миллисекунд звука он успел проиграть — иначе модель будет считать, что вы услышали весь ответ, и продолжит с неверного места.
Оплачиваются полные минуты соединения, а не только время, когда кто-то говорит. Прерывание сокращает ответ, но не отматывает уже потраченное время назад.
Цены
| Режим | Модель | Цена |
|---|---|---|
| Голосовой диалог | libra-voice | 13,50 ₽ за минуту |
| Улучшенный диалог | libra-voice-hd | 21,60 ₽ за минуту |
| Распознавание речи (файлом) | — | 27 ₽ за час |
| Распознавание речи (потоком) | — | 54 ₽ за час |
| Синтез речи | — | 4 050 ₽ за 1 млн знаков |
Баланс сейчас предоплаченный и хранится в токенах: пополнение от 1 млн токенов по 450 ₽ за миллион. Голос тарифицируется по времени, а не по токенам, поэтому минуты придётся пересчитывать в списание с того же баланса по курсу 450 ₽ = 1 млн токенов: минута обычного диалога — 30 000 токенов, минута улучшенного — 48 000 токенов.