ТЕХНИЧЕСКИЕ НАУКИ
ПОДСИСТЕМА ГОЛОСОВОГО УПРАВЛЕНИЯ СИСТЕМЫ ИНТЕЛЛЕКТУАЛЬНОГО УПРАВЛЕНИЯ МОБИЛЬНЫМ РОБОТОМ Топорин А.А. Email: [email protected]
Топорин Андрей Александрович - магистр, кафедра робототехники и мехатроники, Московский государственный технологический университет «СТАНКИН», г. Москва
Аннотация: статья посвящена созданию подсистемы голосового управления интеллектуальной системы управления движением автономного мобильного робота. В работе рассматриваются известные решения в области построения подобных подсистем. Предлагается структура подсистемы голосового управления на базе системы распознавания речи CMU Sphinx. В заключении представлено исследование подсистемы голосового управления, заключающееся в определении точности распознавания команд.
Ключевые слова: мобильные роботы, распознавание речи, CMU Sphinx, голосовое управление.
VOICE CONTROL SUBSYSTEM OF INTELLIGENT MOBILE ROBOT CONTROL SYSTEM Toporin A.A.
Toporin Andrei Aleksandrovich - Master, DEPARTMENT OF ROBOTICS AND MECHATRONICS, MOSCOW STATE TECHNOLOGICAL UNIVERSITY "STANKIN", MOSCOW
Abstract: the article is devoted to the creation of a voice control subsystem for an intelligent motion control system of an autonomous mobile robot. The article discusses well-known solutions in the field of building such subsystems. The structure of the voice control subsystem based on the CMU Sphinx speech recognition system is proposed. In conclusion, a study of the voice control subsystem is presented, which consists in determining the accuracy of command recognition.
Keywords: mobile robots, speech recognition, CMU Sphinx, voice control.
УДК 004.522
Введение. В настоящее время существует проблема, связанная с упрощением обмена информацией между роботом и человеком-оператором. Одним из решений данной проблемы можно считать создание системы речевого управления. Это позволит людям, не имеющим возможность использовать традиционные средства интерфейса взаимодействовать с роботом, а также снизит утомляемость при работе и сделает ее более увлекательной.
Существуют различные способы создания систем речевого управления. Основные различия заключаются в параметрах их функционирования, таких как: работа без или с доступом к сети Интернет, дикторозависимость, автономность, количество распознаваемых слов и т.д. Также важным фактором является стоимость системы распознавания.
Рассмотрим основные системы распознавания речи, которые доступны на рынке: 1) Voice Recognition Module (VRM) v3.1 является функционально законченным (автономным) устройством, выполняющим функции распознавания и обработки
речи. Это компактная и простая в использовании плата для распознавания речи (рисунок 1), использующая метод динамического программирования. Для начала работы с данным устройством, требуется сначала обучить его, то есть записать набор команд. Плата позволяет хранить до 80 голосовых команд, длительностью 1500 миллисекунд [1]. Недостатком данного модуля является его ограниченность в размере словаря. В каждый момент времени возможно использование только семи команд из восьмидесяти.
Рис. 1. Плата распознавания VRM v3.1
2) Другим решением для создания системы голосового управления является использование программных систем распознавания речи. Их главное отличие от автономных состоит в том, что данные системы являются программным обеспечением, а не отдельным, законченным устройством. В качестве примера можно привести технологию распознавания речи Yandex Speech Kit - это комплекс речевых технологий Яндекса, который включает распознавание и синтез речи, голосовую активацию и выделение смысловых объектов в произносимом тексте [2].
Работа данной системы аналогична работе автономных систем распознавания, однако, она имеет несколько недостатков. Во-первых, использование подобного программного обеспечения требует постоянного или частичного подключения к сети Интернет, и в случае перебоя или отключения сети, весь комплекс может перестать функционировать. Во-вторых, за использование данной технологии, разработчик требует внесения абонентской платы. Это в свою очередь повышает расходы на обслуживание робота. В-третьих, разработчик устанавливает ограничения на количество запросов в сутки.
3) Еще одним программным продуктом является CMUSphinx - открытый бесплатный инструментарий для создания систем распознавания речи [3]. CMU Sphinx сейчас является крупнейшим проектом по распознаванию человеческой речи. К основным преимуществам данного проекта можно отнести его работу без доступа к сети Интернет, дикторонезависимость, возможность создания своего собственного словаря, а также грамматики (последовательность слов, образующих необходимые команды). Недостатком является сложность установки и русификация акустической модели. Также важным фактором, влияющим на качество распознавания, является правильность написания транскрипции слов.
Разработка и исследование подсистемы голосового управления. В качестве инструмента распознавания было принято решение использовать CMUSphinx, обладающего всеми необходимыми для данной работы характеристиками. Для создания системы голосового управления в CMUSphinx предусмотрен более «легковесный» движок распознавания речи PocketSphinx, который можно использовать, например, на одноплатном компьютере Raspberry Pi.
Разработка подсистемы голосового управления начинается с создания словаря распознавания. Чтобы понять, какие слова необходимо добавлять в словарь, нужно проанализировать работу мобильного робота. Робот способен работать в двух режимах: ручной и автоматический. Автоматический режим подразумевает движение
робота в неизвестной среде с препятствиями к различным целевым точкам. Ручной режим позволяет оператору вручную управлять движением мобильного робота.
Разработка словаря начинается с создания файла с расширением *txt с перечислением всех возможных слов, которые могут встречаться в подаваемых командах. Наш словарь состоит из 44 слов. Пример слов, составляющих словарь:
- Стоп;
- Остановись;
- Стоять;
- Налево;
- Автоматический;
- Режим;
- Робот.
Так как движок PocketSphinx является зарубежной разработкой, то процесс распознавания происходит через латинскую транскрипцию. Для работы с русским словарем необходимо обработать созданный файл и каждому слову поставить в соответствие слово, записанное латиницей. Это можно сделать вручную по определенным правилам перевода или использовать готовые скрипты, которые преобразуют созданный нами словарь в словарь, подходящий для работы с движком распознавания. Пример словаря после обработки представлен ниже:
- Стоять s t o ja tt;
- Стой s t oo j;
- Автоматический a v t o m a tt ii ch je s k i j;
- Режим rr e zh ii m;
- Включить v k ll u ch ii tt.
В переведенном слове двойная гласная буква обозначает ударный звук, двойная согласная - мягкую согласную. Остальные буквы образуются по правилам перевода русских букв в латиницу.
Для того чтобы сделать процесс распознавания структурированным, опишем как должны строиться команды (каков должен быть порядок слов в ней). Это необходимо для того, чтобы увеличить процент удачно распознанных фраз. Таким образом, распознавание будет происходить в строгой определенной заранее последовательности, а все, что будет произноситься не по заданному порядку, будет откинуто.
Это можно сделать путем создания файла грамматики JSpeech Grammar [4], в котором описываются все возможные команды, которые могут быть сказаны оператором. Пример файла для данной работы представлен на рисунке 2.
sJSGF Vl.O; grammar PI;
public <cmd> = <actiDn>;
<keyword> = робот | линк;
<stop> = стоп | остановись | стоять | стой;
<onauto> = [включить | включи] автоматический режим | двигайся сам;
<опшап> = [включить | включи] ручной режим | беру управление;
<offauto> = (отключить | выключить | выключи | отключи) автоматический режим;
<offmati> = (отключить | выключить | выключи | отключи) ручной режим;
<test_word s> = (отключить | выключи | включи);
<forwaid> = [двигайся | поезжай] вперед;
<left> = [двигайся | поезжай] налево;
<rleft> = поверни налево;
<utum> = разворот;
<right> = [двигайся | поезжай] направо; <rright> = поверни направо; <back> = [двигайся | поезжай] назад; <little_rotate> = [чуть] (левее | правее);
<taiset> = (поезжай | двигайся) (к точке | по пути) (а | 6 | ц) | точка (а | б | ц) | цель (а |б|ц);
<exit> = (завершить | заверши) (работу | скрипт);
<action> = (<test_words> | <keyword> | <stop> | <onauto> | <onman> | <offauto> | <offmati> | <fonvard> | <left> | <ileft> | <nght> | <mght> | <utum> | <back> | <little_rotate> | <taiget> | <exit> | ещё) | <stop>;
Рис. 2. Пример файла грамматики
Круглые скобки говорят о том, что слово обязательно в произносимой фразе, квадратные - что, слово не обязательно для произношения, а знак вертикальной черты - возможность выбора между элементами в скобках. Основной строкой в данном файле является <action>, которая собирает все возможные варианты фраз в одном потоке. Набор ключевых слов, которые оператор должен произносить перед каждой командой с целью улучшения точности распознавания, записан в блоке <keyword>. В результате было получено 64 команды.
Исследование разработанной подсистемы заключалось в определении точности распознавания. Для этого, последовательно проговаривалась каждая команда из полного списка и в случае успешного распознавания команда помечалась как правильно распознанная. Далее вычислялось отношение числа точно распознанных команд к общему числу команд в системе и умножалось на 100%. Всего было произведено 5 циклов.
Команды в систему распознавания поступали через микрофон, подключенный к одноплатному компьютеру Raspberry Pi через интерфейс USB. При этом оператор находился в непосредственной близости от микрофона.
Результат исследования приведен в таблице 1.
Таблица 1. Результат исследования подсистемы голосового управления
Опыт 1 2 3 4 5
Результат, % 85,94 89,06 84,38 85,94 82,81
Основные результаты и выводы. В результате работы была разработана подсистема голосового управления на базе системы распознавания CMUSphinx. Был описан процесс создания словаря, его преобразование в форму, необходимую для работы алгоритмов распознавания, а также рассмотрен процесс создания файла грамматики, позволяющей оператору произносить только заранее записанные команды.
Исследование разработанной подсистемы показало, что CMUSphinx может быть использован как средство для создания точных систем голосового управления. Средняя точность распознавания по 5 экспериментам составила 85,63%, что можно считать хорошим результатом. Можно попробовать улучшить показатель, изменив настройки алгоритмов распознавания CMUSphinx, скорректировав транскрипцию русских слов в словаре, а также используя микрофоны с шумоподавлением.
Список литературы /References
1. Introduction To Voice Recognition With Elechouse V3 and Arduino. [Электронный ресурс] // instructables.com: Place that lets you explore, document and share your creations. Режим доступа: http:// www.instructables.com/id/Introduction-to-Voice-Recognition-With-Elechouse-V/ (дата обращения: 28.06.2020).
2. Речевые технологии Speech Kit. [Электронный ресурс] // Яндекс разработчикам. Режим доступа: https://cloud.yandex.ru/docs/ speechkit/ (дата обращения: 28.06.2020).
3. Overview of the CMUSphinx toolkit. [Электронный ресурс] // cmusphinx.github.io: Open source speech recognition toolkit resource. Режим доступа: https://cmusphinx.github.io/wiki/tutorialoverview/ (дата обращения: 29.06.2020).
4. JSpeech Grammar Format. [Электронный ресурс] // w3.org: The World Wide Web Consortium (W3C) - International community. Режим доступа: https://www.w3.org/TR/jsgf/ (дата обращения: 5.07.2020).