Распознавание речи с использованием алгоритмов глубокого обучения
|
Введение 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. Использование сети Sphinx; 42
Глава 4. Интерфейс сервиса распознавания речи 44
4.1. Телеграм 44
4.2. VPN 48
Выводы 52
Заключение 53
Список литературы 54
Приложение 1. Схема работы разработанного сервиса для распознавания речи 59
Постановка задачи 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. Использование сети Sphinx; 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)).
Тем не менее, человечество всегда стремилось к более простому взаимодействию с техникой, потому что естественное, языковое общение представляется нам самым удобным и привычным. Главная задача речевого интерфейса заключается в понимании человеческой речи и правильном на неё реагировании. Таким образом, необходимо обучить машину понимать без посредника язык, на котором общаются люди, то есть создать алгоритм распознавания звуковых сигналов речи. Этим и должна заниматься технология распознавания речи.
В наши дни любой человек использует такой интерфейс в своей повседневной жизни. Обычным примером являются такие приложения как голосовое управление рабочим столом, разнообразные автомобильные устройства, даже «умные» дома. Также в нашем ежедневном обиходе используются речевые транскрипции, субтитры, переводы и изучение языка, голосовые поиск и помощники.
В данной работе сделан акцент не только на распознавании речи, в частности отдельных речевых команд, но и на их последующем преобразовании в текст, т.к. в современном мире человек все чаще использует для общения голосовые сообщения, что является более быстрой формой коммуникации. Тем не менее, прослушать ответ в таком формате не всегда представляется возможным и удобным. Это делает разработку системы преобразования речи в текст, интегрированной в популярные мессенджеры актуальной и востребованной задачей.
Данная система состоит из трех основных компонент: (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-соединение в данном случае поддерживает бесперебойную работу бота и дополнительное шифрование сообщений.
В заключение следует отметить, что в течение всего времени разработки представленного сервиса велась запись каждого используемого аудиофайла, создавая собственную базу, которая может послужить для создания новой акустической модели и последующего развития данного проекта.
В ходе работы был подобран и исследован широкий круг информационных источников, были обозначены и выделены основные методы для достижения поставленных в работе целей - комплекс программ CMUSphinx, на основе скрытых марковских моделей и нейронных сетей. Из анализа качества распознавания (см. Таблицу 1) следует, что используемые в Sphinx методы Баума-Велша и Витерби успешно применяются к решению задач распознавания раздельной речи.
Обученная через Sphinxtrain модель работает с точностью ~ 60%. Т.к. это показатель точности распознавания отдельно взятых слов, очевидно, что качество распознавания слитной речи, предложений будет еще ниже, т.к. отсутствует необходимая по величине база для обучения. В связи с этим, за основу был взят готовый словарь CMUDict и проведена его адаптация - обновление списка слов.
С помощью связки созданных telegram-бота и HTTP-сервера стало возможным и удобным отправка и пересылка аудиосообщений для их последующего распознавания. VPN-соединение в данном случае поддерживает бесперебойную работу бота и дополнительное шифрование сообщений.
В заключение следует отметить, что в течение всего времени разработки представленного сервиса велась запись каждого используемого аудиофайла, создавая собственную базу, которая может послужить для создания новой акустической модели и последующего развития данного проекта.



