Распознавание речи при помощи нейронных сетей

Speech recognition using neural networks

Постановка проблемы

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

 

Анализ последних исследований и публикаций

Машинный интеллект развивается с невероятной скоростью. Во многих сферах жизни человека. Одной из самых действенных основ машинного интеллекта является искусственные нейронные сети. Которые совершенствуют разные разработчики. В частности, и по распознаванию речи. По данной задаче известно множество научных статей и публикаций.

В статье Ле Нгуен Виен, Панченко Д.П. на основе искусственных нейронных сетей предложена модель распознавания речи и рассмотрен подход обучения нейронной сети с применением генетического алгоритма [1].

 

В статье Воробьева С. А. рассмотрен общий алгоритм распознавания речи. И рассмотрены различные методы распознавания речи такие как нейронные сети, скрытые Марковские модели и другие [2].

В статье Фролова А.В., Фролова Г.В. рассмотрены две методики распознавания речи. Первая методика выделения лексических элементов речи основана на применении вейвлет-преобразований. Вторая методика предполагает использование дискретного преобразования Фурье при помощи нейронной сети, способной к обучению [3].

Понятие искусственной нейронной сети

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

Рисунок 1. Нейронная сеть

 

Нейронные сети можно классифицировать по: характеру обучения, настройки весов, типу входной информации и применяемой модели нейронной сети.  Показано на рисунке 2.

Рисунок 2. Классификация нейронных сетей

Общее описание процесса распознавания речи

Распознавание речи включает в себя два основных этапа: предварительную обработку сигнала и его классификацию. На первом этапе исходный сигнал преобразуется в векторы признаков[1], [2]. А на втором этапе будет произведена классификация, то есть обработка всех признаков и вывод подходящего результата.

Предварительную обработка происходит в следующей последовательности:

·                   Ввод речевого сигнала;

·                   Дробление на фреймы;

·                   Выделения признаков;

·                   Предсказание фонем;

При вводе речевого сигнала получаем звуковую волну, которою и дробим на фреймы (маленькие кусочки). Они идут с некоторым за хлестом. Показано на рисунке 3. Длина фрейма — обычно 25 мс, шаг — 10 мс.

Рисунок 3. Дробление на фреймы

 

После дробления извлекаем из фреймов наиболее важные признаки. Допустим, нам не важен тембр голоса или пол человека. Мы хотим распознавать речь вне зависимости от этих факторов, поэтому извлекаем самые важные признаки. Показано на рисунке 4.

Рисунок 4. Выделения признаков

 

Все полученные данные отправляться в нейронная сеть, и на каждом фрейме она выдает предсказание, распределение вероятностей по фонемам. Нейронная сеть стремиться угадать, какая именно фонема была сказана на том или ином фрейме. Показано на рисунке 5.

Рисунок 5. Предсказание фонем

На втором этапе происходит классификация полученных признаков все полученные данные отправляться в граф декодирования, который получает распределение вероятностей и учитывает языковую модель. Допустим, «Сегодня врачи пили вено» — более вероятно, чем «Сегодня грачи пили вено». Также учитывается произношение слов и выдаются итоговые гипотезы. Показано на рисунке 6.   

Рисунок. 6 Декодирование

Использование нейронных сетей для распознавания речи

Когда люди впервые начали использовать нейронные сети, естественным решением было использовать самое простое: нейронные сетки feed forward. Где Берется фрейм, контекст, сколько-то фреймов слева, сколько-то справа, и предсказываем, какая фонема была сказана на данном фрейме. После чего можно посмотреть на все это как на картинку и применить всю артиллерию, уже использованную для обработки изображений, всевозможные сверточные нейронные сети. Показано на рисунке 7.

Свёрточная нейронная сеть — специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном и нацеленная на эффективное распознавание образов. Показано на рисунке 7.  Данной архитектуре удаётся гораздо точнее распознавать объекты на изображениях, так как, в отличие от многослойного персептрона, учитывается двухмерная топология изображения. При этом свёрточные сети устойчивы к небольшим смещениям, изменениям масштаба и поворотам объектов на входных изображениях. Многие разработчики пользуются именно сверхточными нейронными сетями.

Рисунок. 7 Работа Сверхточной нейронной сети

Рекуррентные нейронные сети.  (Recurrent Neural Network, RNN) – это вид нейронных сетей, в которых имеется обратная связь, то есть связь от логически более удалённого элемента к менее удалённому. Наличие обратных связей позволяет запоминать и воспроизводить целые последовательности реакций на один стимул. С точки зрения программирования в таких сетях появляется аналог циклического выполнения, а с точки зрения систем — такая сеть эквивалентна конечному автомату. Такой вид нейросетей предоставляет, в теории, широкий спектр возможностей по моделированию биологических нейросетей, в частности и в процессе распознавании речи[4].

При обучении на каждом шаге  значение   скрытого слоя рекуррентной нейронной сети вычисляется следующим образом:

  — входной вектор в момент времени;

 — обучаемые параметры рекуррентной нейронной сети [5].

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

Заключение

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

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


 

Список литературы

1. Ле Н. В. Распознавание речи на основе искусственных нейронных сетей / Н. В. Ле, Д.П. Панченко // Технические науки в России и за рубежом: материалы Междунар. науч. конф. (г. Москва, май 2011 г.). — М.: Ваш полиграфический партнер, 2011. — С. 8-11. — URL https://moluch.ru/conf/tech/archive/3/712/ (дата обращения: 11.10.2019).

2. Воробьева С. А. Методы распознавания речи / С. А. Воробьева // Молодой ученый. — 2016. — №26. — С. 136-141. — URL https://moluch.ru/archive/130/36213/ (дата обращения: 11.10.2019).

3. Фролов А.В. Синтез и распознавание речи. Современные решения/ А.В. Фролов, Г.В. Фролов — URL http://www.frolov-lib.ru/books/hi/ch05.html (дата обращения: 11.10.2019).

4. Будыльский Д. В. GRU и LSTM: современные рекуррентные нейронные сети / Д. В. Будыльский // Молодой ученый. — 2015. — №15. — С. 51-54. — URL https://moluch.ru/archive/95/21426/ (дата обращения: 11.10.2019).

5. Тарасов Г.А. Применение рекуррентных нейронных сетей в подсистеме распознавания жестовых предложений для проекта "Сурдотелефон"/ Г.А. Тарасов, Л.И. Воронова // Международный студенческий научный вестник, 2018. — URL https://scienceforum.ru/2018/article/2018005009 (дата обращения: 13.10.2019).