Разделы документации
Голосготовится
Планируемый контракт синтеза, распознавания и голосового диалога
Что такое голос в API
Голосовые возможности планируются в трёх сценариях.
Синтез речи (text-to-speech) — вы отправляете текст, получаете аудиофайл с озвучкой. Подходит для озвучки статей, уведомлений, ответов бота.
Распознавание речи (speech-to-text) — вы отправляете аудиофайл, получаете текст. Подходит для расшифровки звонков, встреч, голосовых сообщений.
Голосовой диалог — двусторонний обмен звуком в реальном времени: пользователь говорит, модель отвечает голосом, без промежуточной ручной сборки из первых двух шагов.
Базовый адрес и авторизация те же, что у остальных методов: https://api.librachat.kz/v1 и заголовок Authorization: Bearer sk-libra-…
Синтез речи: POST /v1/audio/speech
Планируемые поля запроса:
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| model | строка | да | Модель синтеза, например libra-voice |
| input | строка | да | Текст для озвучки |
| voice | строка | да | Идентификатор голоса из справочника голосов |
| response_format | строка | нет | mp3 (по умолчанию), opus, aac, flac, wav, pcm |
| speed | число | нет | Скорость речи, от 0.25 до 4.0, по умолчанию 1.0 |
| stream | логическое | нет | Отдавать аудио по мере генерации |
Ответ — бинарное тело с аудио и заголовком Content-Type по выбранному формату (например audio/mpeg). JSON в успешном ответе не возвращается.
Тарификация синтеза — за знаки входного текста, а не за токены: 4 050 ₽ за 1 млн знаков. Считаются знаки поля input после нормализации (пробелы и знаки препинания входят в счёт).
Распознавание речи: POST /v1/audio/transcriptions
Запрос отправляется как multipart/form-data. Планируемые поля:
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| file | файл | да | Аудиофайл: mp3, mp4, mpeg, mpga, m4a, wav, webm, ogg |
| model | строка | да | Модель распознавания, например libra-scribe |
| language | строка | нет | Код языка (ru, en, kk). Без него язык определяется автоматически |
| prompt | строка | нет | Подсказка с терминами и именами для более точной расшифровки |
| response_format | строка | нет | json (по умолчанию), text, srt, vtt, verbose_json |
| timestamp_granularities | массив | нет | segment и/или word — метки времени в verbose_json |
| stream | логическое | нет | Потоковый режим: куски текста приходят по мере распознавания |
Обычный режим (stream отсутствует или false): вы загружаете готовый файл, ждёте окончания обработки и получаете весь текст одним ответом. Дешевле, подходит для расшифровки записей.
Потоковый режим (stream: true): ответ отдаётся событиями Server-Sent Events, как в /v1/chat/completions. Куски текста приходят с задержкой в доли секунды. Дороже вдвое, подходит для субтитров в реальном времени и голосового ввода.
Планируемый ответ в формате json:
Тарификация распознавания — за длительность аудио, округление предполагается посекундное вверх.
Голосовой диалог
Голосовой диалог планируется как отдельная сессия поверх постоянного соединения (WebSocket), а не как обычный HTTP-запрос. Вы открываете сессию, шлёте аудио с микрофона кусками и получаете обратно аудио ответа и его текстовую расшифровку.
Ожидаемая схема работы:
- Клиент открывает соединение и передаёт ключ sk-libra-… в заголовке Authorization.
- Первым сообщением клиент шлёт настройки сессии: модель, голос, формат аудио, системную инструкцию.
- Далее клиент шлёт куски входного аудио (PCM 16-бит, 24 кГц — предполагаемый формат по умолчанию).
- Сервер шлёт события: расшифровка речи пользователя, текст ответа, куски аудио ответа.
- Прерывание: если пользователь заговорил во время ответа, клиент шлёт сигнал отмены и сервер прекращает текущее аудио.
Тарифицируется время сессии в минутах, а не число сообщений. Обычный диалог и улучшенный отличаются качеством голоса и естественностью пауз.
Форматы аудио
| Сценарий | Форматы | Примечание |
|---|---|---|
| Синтез, вывод | mp3, opus, aac, flac, wav, pcm | mp3 по умолчанию; opus и pcm — для потоковой отдачи |
| Распознавание, ввод | mp3, mp4, mpeg, mpga, m4a, wav, webm, ogg | Предполагаемый предел размера файла — 25 МиБ; длинные записи режьте на части |
| Диалог, ввод и вывод | pcm 16-бит, 24 кГц, моно; opus | Точный формат подтверждается при реализации |
Цены на голос
| Сценарий | Единица | Цена |
|---|---|---|
| Голосовой диалог | 1 минута | 13,50 ₽ |
| Голосовой диалог, улучшенный | 1 минута | 21,60 ₽ |
| Распознавание речи, обычное | 1 час аудио | 27 ₽ |
| Распознавание речи, потоковое | 1 час аудио | 54 ₽ |
| Синтез речи | 1 млн знаков | 4 050 ₽ |
Пакетная обработка — минус 20 % к ставке, приоритетная — ставка ×2. Списание идёт с общего предоплаченного баланса аккаунта; пополнение от 1 млн токенов по 450 ₽ за 1 млн.
Ошибки и лимиты
Планируется переиспользовать те же коды, что и в текстовых методах: 401 no_api_key, 401 invalid_api_key, 402 insufficient_balance, 429 rate_limited, 502 upstream_error.
Дополнительно ожидаются специфичные для голоса ошибки: 400 unsupported_audio_format (формат файла не поддерживается), 413 audio_too_large (файл больше предела), 400 invalid_voice (неизвестный идентификатор голоса).
Действующий лимит 120 запросов в минуту на ключ применим к /v1/audio/speech и /v1/audio/transcriptions. Лимит в токенах в минуту к голосу не применяется — для него нужны отдельные счётчики (минуты диалога, часы аудио, знаки синтеза). Ограничение max_tokens к голосовым методам не относится.