В38

API распознавания речи

Формат запроса и ответа повторяет Deepgram, поэтому официальные SDK работают без изменений. В существующей интеграции меняются адрес сервиса и ключ.

Быстрый старт

Отправка записи

Аудио передаётся телом запроса, авторизация идёт заголовком Authorization со схемой Token.

from deepgram import DeepgramClient, DeepgramClientOptions

client = DeepgramClient(
    "ВАШ_КЛЮЧ",
    DeepgramClientOptions(url="https://api.vtext38.ru"),
)

with open("recording.mp3", "rb") as audio:
    response = client.listen.rest.v("1").transcribe_file(
        {"buffer": audio},
        {"smart_format": True, "diarize": True, "utterances": True},
    )

print(response.results.channels[0].alternatives[0].transcript)

Справочник

Параметры запроса

ПараметрНазначение
punctuateЗнаки препинания и заглавные буквы.
smart_formatФорматирование текста для чтения.
diarizeРазделение по говорящим для записи в моно.
multichannelРазделение по каналам стереозаписи. Для телефонии точнее, чем диаризация.
utterancesРазбивка на реплики по паузам и смене говорящего.
paragraphsДополнительная разбивка реплик на предложения.

Имя модели принимается любое и на результат не влияет: перенесённый код не должен падать из-за строки nova-3 в параметрах. Язык поддерживается один, русский.

Расхождения

Чем мы отличаемся от Deepgram

О них лучше прочитать здесь, чем встретить их на боевом трафике.

Поля speaker_confidence нет
Мы делим говорящих кластеризацией, а она такой метрики на слово не даёт. Поставить константу означало бы соврать прямо в данных, поэтому поле просто отсутствует.
Числа остаются прописью
Перевод чисел в цифры рвёт пословное соответствие между текстом и массивом слов, на которое опирается клиентский код. Мы выбрали соответствие.
Лимит десяти минут наступает раньше
Это ограничение на время обработки, а не на длину записи. Наша скорость ниже, поэтому в те же десять минут помещается более короткий файл.
Обратного вызова пока нет
Параметр callback у Deepgram присылает готовый результат на ваш адрес. У нас этот путь ещё не открыт, и длинные записи пока проходят через кабинет.
Язык поддерживается один
Русский. Запрос с любым другим языком вернёт понятную ошибку, а не плохую расшифровку на чужом языке.

Ограничения

Длинные записи

Синхронный запрос удерживает соединение до десяти минут обработки. Считается именно обработка: при обычных параметрах в неё помещается примерно сорок минут аудио, а с разделением по говорящим меньше.

Обратный вызов, которым Deepgram отдаёт результат по готовности, у нас ещё не открыт: запрос с параметром callback обрабатывается как обычный синхронный. Пока длинные записи надёжнее загружать через кабинет, там расшифровка идёт в фоне и длина файла ничем не ограничена.

Базовый адрес сервиса: https://api.vtext38.ru.

Ключ выдаётся сразу после регистрации

15 минут распознавания начислим сразу, отдельного тарифа для API нет — минуты те же, что и в кабинете.