Что Такое Speech-To-Text?

Есть несколько часто используемых аббревиатур:

  • Speech-to-text (STT);
  • Automated Speech Recognition (ASR);

STT / ASR в общем случае это некий набор алгоритмов (в большей степени машинного обучения), которые принимают на вход аудио-файл, а на выход выдают строки текста.

Самыми популярными и адекватными входными аудио-форматами для STT являются:

  • int16 WAV / RAW с частотой дискретизации 16 kHz (16 000 раз в секунду);
  • OPUS в контейнере OGG;

RAW файл отличается от WAV отсутствием заголовка. По сути RAW файл - это просто последовательность целых чисел в бинарной форме. Тут можно верно подметить, что в телефонии как правило используется 8kHz, а основные частоты человеческого голоса лежат сильно ниже 8kHz. Также обратите внимание, что наше АПИ принимает на вход RAW / WAV как в 16 kHz так и в 8 kHz.  

OPUS является самым продвинутым из общедоступных и распространенных унивесальных lossy кодеков для звука (на практике WAV имеет битрейт имеет в районе 256 кбит/c, когда OPUS для речи может эффективно дать в районе 24-32 кбит/c).

Поддержка таких форматов как раз и реализована у нас в АПИ.

Картинка нагло стырена отсюда

Вспомогательные алгоритмы

Пользователи часто об этом не задумываются, но часто рука об руку с STT идут алгоритмы:

  • Разделения аудио на высказывания / поиск речи на аудио;
  • Поиска текста в наборе аудио;
  • Классификации спикеров по полу / примерному возрасту;
  • Диаризации спикеров (разделение одной звуковой дорожки когда говорят два человека);
  • Генерация речи;

Все эти технологии у нас тоже реализованы. Актуальность в современном мире теряет пожалуй только диаризация, т.к. запись в стерео вместо моно стоит ничтожно мало.

Практические критерии полезности системы STT

С практической стороны (как пользователя) вас скорее будут интересовать такие вещи в таком порядке:

  • В первую очередь качество;
  • Скорость работы системы, гибкость опций при деплое, например можно ли задеплоить такую систему on-premise в ваш ДЦ;
  • Если у вас большой объем - масштабируемость системы по железу и эффективность работы;
  • Денормализация выдаваемых строк, т.е. например превращаются ли числа в цифры, что происходит с аббревиатурами и устойчивыми выражениями в языке;
  • Наличие алгоритмов простановки знаков препинания и заглавных букв;

Применимость системы STT

Если вы начинаете думать про пользу, которую вам может принести STT, почитайте статьи у нас на сайте про реальные достижимые метрики качества и учтите ряд моментов:

  • Люди распознают речь все равно сильно лучше алгоритмов в общем случае. Как справляются люди в вашем случае?
  • Есть ли у вас достаточный объем (тысячи, десятки тысяч часов в месяц) или какие-то нетривиальные для людей задачи, чтобы оправдать внедрение системы STT и изменение бизнес-процессов под нее?
  • Допустим речь распознается со 95% точностью. Вы знаете как на основе этого принимать решения? Готовы ли менять бизнес-процессы если мы поможем вам с первым вопросом?