ym88659208ym87991671
Распознавание речи | Документация SmartMarket
Skip to main content

Распознавание речи

Вы можете внедрить распознавание речи в свои приложения с помощью API сервиса SmartSpeech.

Способы распознавания

Ответ выдается только после обработки всей аудиозаписи. Максимальный размер аудио – 2 Мб, максимальная длина – одна минута. Для многоканального аудио распознается только первый канал.

Используется, если требуется распознавание речи в процессе ее записи: протоколы телефонии, запись аудио на мобильных устройствах и прочее. Возможно отображение промежуточных результатов и автоматическое определение конца фразы. Максимальный размер аудио – 1 Гб. Для многоканального аудио распознается только первый канал.

Подходит для распознавания многоканальных аудиозаписей. При работе стоит учитывать, что процесс асинхронного распознавания может быть дольше синхронного, поэтому этот тип подходит для случаев, когда длительность распознавания не важна. Максимальный размер аудио – 1 Гб.

Доступные кодировки аудио

Для распознавания доступны аудиофайлы со следующими кодировками:

  • PCM_S16LE
    • PCM signed 16bit little-endian, с заголовком WAV или без.
    • Частота дискретизации – от 8 до 96 кГц. Если без заголовка, то параметр sample_rate – обязательный.
    • Максимальное количество каналов – 8.
    • Значение Content-Type – audio/x-pcm;bit=16;rate=XXX.
  • OPUS
    • Opus в контейнере ogg.
    • Параметр sample_rate – необязательный.
    • Поддерживается только одноканальный звук.
    • Значение Content-Type – audio/ogg;codecs=opus.
  • MP3
    • MP3 (кроме MPEG2.5).
    • Параметр sample_rate – необязательный.
    • Максимальное количество каналов – 2.
    • Значение Content-Type – audio/mpeg.
  • FLAC
    • FLAC
    • Параметр sample_rate – необязательный.
    • Максимальное количество каналов – 8.
    • Значение Content-Type – audio/flac.
  • ALAW
    • G.711 A-law, с заголовком WAV или без.
    • Частота дискретизации – от 8 до 96 кГц. Если без заголовка, то параметр sample_rate – обязательный.
    • Максимальное количество каналов – 8.
    • Значение Content-Type – audio/pcma;rate=XXX.
  • MULAW
    • G.711 μ-law, с заголовком WAV или без.
    • Частота дискретизации – от 8 до 96 кГц. Если без заголовка, то параметр sample_rate – обязательный.
    • Максимальное количество каналов – 8.
    • Значение Content-Type – audio/pcmu;rate=XXX.

Акустические модели

Чтобы повысить точность распознавания, укажите акустическую модель, которую должен использовать сервис. Модель должна соответствовать частоте дискретизации.

Поддерживаемые модели:

  • general – общая модель, для звука 16 кГц и больше. Рекомендуем начать с нее.
  • callcenter – модель, предназначенная для телефонии. Частота – меньше 16 кГц.

Как получить текст из аудио

Для полноценной работы с распознаванием речи необходимо клиентское приложение. При его разработке используйте описание API для распознавания речи. Клиентское приложение общается с сервисом SmartSpeech. Например, для потокового распознавания (gRPC) процесс в зависимости от настроек выглядит следующим образом:

  1. Приложение отправляет gRPC-запрос к методу Recognize сервиса SmartSpeech. В сообщениях рекомендуется отправлять следующие опции распознавания:
    • В заголовке — информация для аутентификации.
    • В первом сообщении — сообщение RecognitionOptions с описанием параметров распознавания. – В последующих сообщениях — чанки звука для распознавания.
  2. Аудиопоток передается в сообщениях RecognitionRequest.audio_chunk.
  3. В ответ приходят сообщения RecognitionResponse, содержащие нормализованный и ненормализованный текст в полях Hypothesis.normalized_text и Hypothesis.text.

Примеры клиентских приложений вы можете найти в архиве.

Как улучшить распознавание

Общие рекомендации

  • Выбирайте акустическую модель, которая подходит для вашего аудио. Например, для распознавания телефонных разговоров используйте callcenter, а general лучше всего распознает запросы к виртуальному ассистенту.
  • Убедитесь, что в запросе верно указана кодировка аудиофайла.
  • Если при асинхронном распознавании пришел пустой ответ, проверьте, что вы корректно загрузили файл для распознавания. Если вы загружаете файл с компьютера, добавьте в запрос @:
@./audio.pcm
  • Если вы получили ошибку 8 ResourceExhausted при распознавании через gRPC или 429 Too Many Requests при распознавании через HTTP, значит вы превысили лимит запросов. Напишите нам на SmartSpeech@sberbank.ru для увеличения лимита.
  • Если вы получили много ошибок в результатах распознавания, пожалуйста, напишите нам на SmartSpeech@sberbank.ru. Приложите к письму аудиофайл, результаты распознавания, текст запроса и request-id. Также укажите в письме тип ошибок:
    • Удаления — многие слова не распознаны.
    • Замены — многие слова распознаны неверно.
    • Вставки — в результатах распознавания много лишних слов, которых не было в аудио.

Хинты

Распознавание речи можно сильно улучшить использованием хинтов.

Хинты — это одноразовые подсказки для сервиса распознавания речи, помогающие правильно понять речь пользователя в определенный момент времени. Например, когда приложение ожидает от пользователя конкретный ответ, этот ответ заранее придет в сервис в виде хинтов.

Подсказка работает только для следующего ответа пользователя. После использования хинтов процесс распознавания речи пользователя возвращается к ее обработке без подсказок.

Подробнее об использовании хинтов вы можете прочитать в статье Хинты.

Добавить хинты вы можете при потоковом и асинхронном распознавании.

Обновлено 23 мая 2022

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней