Как работают системы распознавания речи

Статья подготовлена компанией Clarity Speech
Системы распознавания речи базируются на двух основных архитектурах - гибридной и end2end.
Основные архитектуры

Задача распознавания речи решается уже не первый десяток лет, но качественный уровень был достигнут только в последние годы.
Можно выделить два основных подхода к распознаванию речи - гибридный (классический) и end2end. Особенностью гибридного подхода является отдельное использование акустической и лингвистической модели. Подход end2end появился несколько лет назад и основывается на нейросетевых архитектурах, позволяющих переводить непосредственно одну последовательность в другую. А именно, последовательность звуков в последовательность букв.
Общая схема построения систем по распознаванию речи
Классический (гибридный) подход основывается на акустической модели, представляющей из себя классификатор фонем/трифонов и вероятностной языковой модели
Гибридная модель

Исторически, для решения задачи распознавания речи применялся подход, где на первом уровне стоял алгоритм акустической модели, который выводил вероятность по фонемам/бифонам/трифонам, а затем эта вероятность перемножалась на вероятность встречаемости фонем между собой и слов между собой, которая рассчитывалась языковой моделью на основе статистики встречаемыми звуков и слов.

Предварительная обработка сигнала

Так как анализировать весь сигнал часто не имеет смысла, распространенной практикой является применение VAD - алгоритма по определению участков сигнала, в которых находится речь.

Вход алгоритма может быть разный (даже в виде картинки частотных параметров), но наиболее распространен подход, когда сигнал делят на отрезки (фреймы), иногда с перекрытием и для этих отрезков рассчитываются частотные параметры (MFCC коэффициенты) или дискретное вейвлет-преобразование.

Затем по данным признакам классификатор акустической модели определяет фонемы или их сочетание.
Подход end2end характеризуется тем, что последовательность звуковых параметров переводится непосредственно в последовательность букв/слов.
End2end архитектура

В эпоху глубокого обучения нейронные сети продемонстрировали значительное улучшение задачи распознавания речи. Были применены различные методы, такие как сверточные нейронные сети (CNN), рекуррентные нейронные сети (RNN), и недавно сети Transformer достигли высокой производительности и точности.

Особенностью end2end подхода является то, что нейронная сеть действует как своеобразный переводчик, и как пример цифру 42, она может распознать и как "42" и как "сорок два". Другой особенностью является необходимость больших обучающих выборок (десятки тысяч часов) и более сложная адаптация модели под конкретный кейс.


RNN сети

RNN выполняют вычисления во временной последовательности с момента их текущего скрытого состояния.

Текущее значение в RNN зависит от всех предыдущих скрытых состояний.

В решениях по распознаванию речи, входной сигнал передается через RNN для вычисления скрытых последовательностей. Одним из основных недостатков простой формы RNN является то, что она генерирует следующий вывод только на основе предыдущего контекста. Однако при распознавании речи обычно информация будущего контекста не менее важна, чем информация прошлого контекста. Вот почему вместо использования однонаправленной RNN обычно выбираются двунаправленные RNN (BiRNN) , чтобы устранить этот недостаток. BiRNN обрабатывают входные векторы в обоих направлениях, т.е. вперед и назад, и сохраняют векторы скрытого состояния для каждого направления.
Двунаправленный RNN
CTC

CTC - это целевая функция, которая вычисляет соответствие между входным речевым сигналом и выходной последовательностью слов.
CTC стремится максимизировать общую вероятность правильного выравнивания, чтобы получить правильную последовательность выходных слов. Одним из основных преимуществ CTC является то, что она не требует предварительной сегментации или согласования данных.

Сверточные сети

Сверточные нейронные сети изначально были разработаны для задач компьютерного зрения (CV). В последние годы CNN также широко применяются в области обработки естественного языка (NLP).

Типичная архитектура CNN состоит из нескольких сверточных и объединяющих слоев с полностью связанными уровнями для классификации. Сверточный слой состоит из ядер, для которых выполняется операция свертки с входными данными. Сверточное ядро делит входной сигнал на более мелкие части. Кроме того, операция свертки выполняется путем умножения ядра на соответствующие части ввода, которые находятся в принимающем поле. Сверточные методы можно сгруппировать в одномерные и двухмерные сети соответственно.

2D-CNN строят 2D-карты характеристик из акустического сигнала. Подобно изображениям, они организуют акустические характеристики, то есть характеристики MFCC, на 2-мерной карте характеристик, где одна ось представляет частотную область, а другая - временную область. Напротив, 1D-CNN принимают акустические характеристики непосредственно в качестве входных данных.
Пример сверточной сети (CNN)
Трансформеры

Модели на основе трансформеров, предназначенные для распознавания речи, обычно основаны на архитектуре кодировщика-декодера, аналогичной моделям seq2seq, а именно содержат механизме самовнимания (self attention), в отличие от повторений, принятых в RNN. Самовнимание может уделять "внимание" различным позициям последовательности и извлекать значимые представления. Механизм самовнимания принимает три входа: запросы, значения и ключи.

Для задачи преобразования речи трансформеры преобразуют последовательность речевых признаков в соответствующую последовательность символов. Последовательность признаков, которая длиннее, чем последовательность выходных символов, строится из двумерных спектрограмм с временными и частотными измерениями. Более конкретно, CNN используются для использования структурной локальности спектрограмм и смягчения несоответствия длины за счет шага во времени.
Архитектура трансформера
Conformer

Conformer - это вариант исходного Transformer, который объединяет CNN и преобразователи для моделирования локальных и глобальных речевых зависимостей с использованием более эффективной архитектуры и меньшего количества параметров. Модуль Conformer содержит два уровня прямой связи (FFN), один сверточный слой (CNN) и модуль внимания с несколькими головами (MHA).
Архитектура конформера
Заключение

Существует два основных подхода - гибридный и с использованием end2end нейронных сетей. Качество распознавания state of the art решений с использованием данных подходов приблизительно одинаково и отличается в зависимости от акустических условий. Какой использовать - решать вам.

И для тех кто дочитал до конца у нас есть небольшой бонус - бесплатный бот по распознаванию голосовых сообщений. Теперь не нужно слушать аудио от друзей, достаточно переслать его телеграмм боту clarity и быстро прочитать текст.
Используйте бота Amvera для распознавания голосовых сообщений
Бот @AmVeraSpeechBot - идеальное решение для перевода голосовых сообщений в текст. Перешлите голосовое сообщение или продиктуйте свое, и моментально получите текстовую расшифровку. Текст удобно копировать и пересылать. Используйте распознавание голосовых сообщений и голосовой ввод в боте бесплатно.
Хотите попробовать?
Пожалуйста, оставьте контакты - мы свяжемся с вами как можно быстрее
Контакты
Москва, Пресненская Набережная 10с2