Распознавание речи с использованием алгоритмов глубокого обучения
Выпускная работа посвящена созданию сервиса по распознаванию речи, в частности отдельных речевых команд, и их последующем преобразовании в текст. Данный сервис состоит из трех основных компонент: сервера для обработки и хранения данных, модуля, отвечающего за распознавание речи, интерфейса для взаимодействия пользователя (на примере мессенджера Telegram) и блока распознавания. В первую очередь сервер с помощью набора программ FFmpeg преобразовывает аудиодорожку в необходимый для дальнейшей работы формат, сохраняет данные и отправляет файл в сервис распознавания речи. Далее происходит конвертирование голосового сообщения в текстовое с помощью системы распознавания CMUSphinx, в основе которой лежит комбинация марковских моделей (метод Баума-Велша и алгоритм Витерби) и нейросетевых методов. Заключительным этапом является отправка полученного результата telegram-боту, который выступает связующим элементом между пользовательским интерфейсом и созданным сервисом преобразования. Создание и настройка взаимодействия подсистем между собой, а также выбор и реализация соответствующих технологий и алгоритмов, учитывающих особенности последующего использования сервиса, представляют собой основную цель данной работы. В результате выполнения выпускной квалификационной работы был разработан сервис по распознаванию речи с возможностью в будущем интегрировать его в другие мессенджеры и социальные сети (как популярные, так и созданные в рамках одной компании) без временного отключения в уже существующих проектах.
Введение ……………………………………………………………………………………………………. 3
Постановка задачи……………………………………………………………………………………… 6
Обзор литературы………………………………………………………………………………………. 7
Глава 1. История технологии распознавания речи …………………………………….. 11
Глава 2. Серверное приложение ……………………………………………………………….. 14
2.1. Основные типы запросов HTTP протокола ………………………………………. 14
2.2. Реализация веб-сервера для распознавания аудио данных ……………….. 16
Глава 3. Модуль распознавания речи ………………………………………………………… 19
3.1. Существующие системы распознавания речи ………………………………… 19
3.2. Метрики качества распознавания речи ………………………………………….. 20
3.3. CMUSphinx …………………………………………………………………………………… 22
3.4. Математический аппарат CMUSphinx …………………………………………… 23
3.4.1. Алгоритм Баума-Велша …………………………………………………………… 26
3.4.2. Алгоритм Витерби ………………………………………………………………….. 28
3.4.3. Нейронные сети ………………………………………………………………………. 30
3.5. Настройка Sphinx ………………………………………………………………………….. 35
3.5.1. Обучение акустической модели с помощью Sphnixtrain …………… 36
3.5.2. Адаптация акустической модели с помощью инструмента g2p … 39
3.6. Использование сети Sphinх …………………………………………………………… 42
Глава 4. Интерфейс сервиса распознавания речи ………………………………………. 44
4.1. Телеграм …………………………………………………………………………………………. 44
4.2. VPN ………………………………………………………………………………………………… 48
Выводы ……………………………………………………………………………………………………. 52
Заключение ……………………………………………………………………………………………… 53
Список литературы ………………………………………………………………………………….. 54
Приложение 1. Схема работы разработанного сервиса для распознавания
речи …………………………………………………………………………………………………………. 59
Долгое время после изобретения первых ЭВМ [5] одним из наиболее
актуальных вопросов их дальнейшего развития оставался процесс
взаимодействия человека с машиной. Сначала это под силу было только
людям, обладающим специальными знаниями – программистам. Такие
времена продлились до возникновения диалогового интерфейса, когда каждый
пользователь мог самостоятельно адресовать компьютеру с клавиатуры
команду и получать ответ. Разработка и последующее внедрение графического
интерфейса, при использовании которого человеку не требовалось
специальное знание каких-либо команд, повлияло на широкое
распространение персональных компьютеров.
Тем не менее, человечество всегда стремилось к более простому
взаимодействию с техникой, потому что естественное, языковое общение
представляется нам самым удобным и привычным. Главная задача речевого
интерфейса заключается в понимании человеческой речи и правильном на неё
реагировании. Таким образом, необходимо обучить машину понимать без
посредника язык, на котором общаются люди, то есть создать алгоритм
распознавания звуковых сигналов речи. Этим и должна заниматься технология
распознавания речи.
В наши дни любой человек использует такой интерфейс в своей
повседневной жизни. Обычным примером являются такие приложения как
голосовое управление рабочим столом, разнообразные автомобильные
устройства, даже «умные» дома. Также в нашем ежедневном обиходе
используются речевые транскрипции, субтитры, переводы и изучение языка,
голосовые поиск и помощники.
В данной работе сделан акцент не только на распознавании речи, в
частности отдельных речевых команд, но и на их последующем
преобразовании в текст, т.к. в современном мире человек все чаще использует
для общения голосовые сообщения, что является более быстрой формой
коммуникации. Тем не менее, прослушать ответ в таком формате не всегда
представляется возможным и удобным. Это делает разработку системы
преобразования речи в текст, интегрированной в популярные мессенджеры
актуальной и востребованной задачей.
Данная система состоит из трех основных компонент: (1) сервера для
обработки и хранения данных [36, 37], (2) модуля, отвечающего
непосредственно за распознавание речи [3, 9, 42], (3) удобного интерфейса для
взаимодействия пользователя мессенджера (на примере Telegram) и блока
распознавания.
Первый компонент (сервер 1) преобразует аудиодорожку в
необходимый формат [31], сохраняет данные и отправляет преобразованный
файл в следующий модуль (2) – сервис распознавания речи. На данном этапе
происходит конвертирование голосового сообщения в текстовое. Последний
компонент (3) является связующим элементом между пользовательским
интерфейсом и созданным сервисом преобразования. Разделение приложения
на 2 отдельных модуля является необходимым, поскольку позволяет
интегрировать сервис распознавания в другие мессенджеры и социальные сети
(как популярные, так и созданные в рамках одной компании) без временного
отключения сервиса в уже существующих проектах.
Создание и настройка взаимодействия подсистем (1)-(3) между собой, а
также выбор и реализация соответствующих технологий и алгоритмов,
учитывающих особенности последующего использования данного сервиса,
представляют собой основную цель данной работы.
В представленной работе исследуются известные на сегодняшний день
методы и технологии распознавания речи [2, 5, 46, 50], а также
рассматриваются существующие программные и технические решения. В
частности, в разделе, посвященном обзору литературы, рассматриваются
различные методы решения поставленных задач на каждом из этапов
разработки и обосновывается их выбор. Первая глава содержит краткое
описание истории развития технологии распознавания речи. Вторая глава
посвящена описанию принципов работы серверного приложения и его
реализации (подсистемы (1)). В третьей главе проведен сравнительный анализ
основных систем распознавания речи, и как следствие сделан выбор в пользу
сервиса Sphinx [12, 15]: описан его математический аппарат [18, 24, 26-27] и
поэтапно изложены шаги интеграции данного сервиса в разработанное
приложение (подсистема (2)). В последней главе описано создание бота в
качестве связующего элемента между пользователем и сервисом
распознавания (подсистемы (3)).
В результате выполнения выпускной квалификационной работы был
разработан сервис по распознаванию речи с возможностью его внедрения в
будущем в другие приложения и социальные сети. Разработка сервиса
производилось на ПК с процессором Intel® Core™ i5 3330 (3.0GHz, 4 ядра, 4
потока), видеокартой Radeon™ RX 480 (4 ГБ), ОЗУ 16 Гб.
В ходе работы был подобран и исследован широкий круг
информационных источников, были обозначены и выделены основные
методы для достижения поставленных в работе целей – комплекс программ
CMUSphinx, на основе скрытых марковских моделей и нейронных сетей. Из
анализа качества распознавания (см. Таблицу 1) следует, что используемые в
Sphinx методы Баума-Велша и Витерби успешно применяются к решению
задач распознавания раздельной речи.
Обученная через Sphinxtrain модель работает с точностью ~ 60%. Т.к. это
показатель точности распознавания отдельно взятых слов, очевидно, что
качество распознавания слитной речи, предложений будет еще ниже, т.к.
отсутствует необходимая по величине база для обучения. В связи с этим, за
основу был взят готовый словарь CMUDict и проведена его адаптация –
обновление списка слов.
С помощью связки созданных telegram-бота и HTTP-сервера стало
возможным и удобным отправка и пересылка аудиосообщений для их
последующего распознавания. VPN-соединение в данном случае
поддерживает бесперебойную работу бота и дополнительное шифрование
сообщений.
В заключение следует отметить, что в течение всего времени разработки
представленного сервиса велась запись каждого используемого аудиофайла,
создавая собственную базу, которая может послужить для создания новой
акустической модели и последующего развития данного проекта.
1. Ryzhikov I. S. About multiagent system applications for speech recognition problem
// Сибирский журнал науки и технологий. 2012. №4 (44)
2. Фролов, А. В. Синтез и распознавание речи. Современные решения. /
[Электронный ресурс] URL: http://www.frolov-lib.ru/books/hi/ch01.html
3. Мещеряков, Р. В. Структура систем синтеза и распознавания речи. // Известия
Томского политехнического университета. Т.315, №5. – 2009. – С. 121-126.
4. Алимурадов, А. К. Обзор и классификация методов обработки речевых
сигналов в системах распознавания речи. / А.К. Алимурадов и [др]. //
Измерение. Мониторинг. Управление. Контроль. – 2015, №2. – С. 27-35
5. Титов Ю. Н. Современные технологии распознавания речи // Вестник
российских университетов. Математика. 2006. №4.
6. Данков Н.И. Исследование возможностей нейросетевых технологий в области
идентификации голоса // Экономика и качество систем связи. 2018. №3
7. Гапочкин, В. A. Нейронные сети в системах распознавания речи. /
В.А.Гапочкин // “Science time”. – 2014, № 1. – С. 29-36
8. Карпов Алексей Анатольевич, Кипяткова Ирина Сергеевна Методология
оцениванияработысистемавтоматическогораспознаванияречи//
Приборостроение. 2012. №11
9. Гусев М.Н. Система распознавания речи: основные модели и алгоритмы / М.Н.
Гусев, В.М. Дегтярев. – СПб.: Знак, 2013. – 128 с.
10. Беленко М.В., Балакшин П.В. Cравнительный анализ систем распознавания
речи с открытым кодом // МНИЖ. 2017. №4-4 (58)
11. Алексеев И. В., Митрохин М. А., Кольчугина Е. А. Программное средство
оценки эффективности технологий распознавания речи // Известия ВУЗов.
Поволжский регион. Технические науки. 2018. №3 (47).
12. CMUSphinx Tutorial for Developers // GitHub. [Электронный ресурс] URL:
https://cmusphinx.github. io/wiki/tutorialconcepts/
13. Speech and Machine Learning // Mozilla Research. [Электронный ресурс] URL:
https://research.mozilla.org/ machine-learning/
14. Распознавание речи. Документация SpeechKit Mobile SDK / Yandex.
[Электронныйресурс]URL:
https://tech.yandex.ru/speechkit/mobilesdk/doc/common/speechkit-common-asr-
overview-technology-docpage/
15. Система распознавания речи CMU Sphinx. [Электронный ресурс] URL: http://
cmusphinx.sourceforge.net/
16. Запрягаев, В. А. Распознавания речевых сигналов. / С. А. Запрягаев, А. Ю.
Коновалов //Вестник ВГУ. – 2009. №2. – С. 39 – 48
17. Блох, Джошуа Java: эффективное программирование, 3-е изд.: Пер. с англ. —
СПб. : ООО “Диалектика”, 2019. — 464 с
18. Маковкин К. А. Гибридные модели: скрытые марковские модели и нейронные
сети, их применение в системах распознавания речи // Модели, методы,
алгоритмыиархитектурысистемраспознаванияречи:Изд-во
«Вычислительный центр им. А. А. Дородницына РАН», – М.: 2006. – С.40-95
19. Гефке, Д. А. Применения скрытых марковских моделей для распознавания
звуковых последовательностей. / Д.А. Гефке, П. М. Зацепин. // Известия
Алтайского государственного университета. – 2012. – С. 72-76
20. Julius Tutorial [Электронный ресурс] URL: https://julius.osdn.jp/en_index.php
21. Меденников, И. П. Двухэтапный алгоритм инициализации обучения
акустических моделей на основе глубоких нейронных сетей / И. П.
Меденников // Научно-технический вестник информационных технологий,
механики и оптики. — 2016. — Т. 16., № 2. — С. 379–381
22. Prudnikov, A. Improving Acoustic Models For Russian Spontaneous Speech
Recognition / A. Prudnikov, I. Medennikov, V. Mendelev, M. Korenevsky, Y.
Khokhlov // Speech and Computer, Lecture Notes in Computer Science. — 2015.
— Vol. 9319. — P. 234–242
23. Рабинер Л. Р. Скрытые Марковские модели и их применение в избранных
Последние выполненные заказы
Хочешь уникальную работу?
Больше 3 000 экспертов уже готовы начать работу над твоим проектом!