Назад в библиотеку

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

Автор: А. А. Топорин.

Источник: Журнал Вестник науки и образования, 2020

Аннотация: статья посвящена созданию подсистемы голосового управления интеллектуальной системы управления движением автономного мобильного робота. В работе рассматриваются известные решения в области построения подобных подсистем. Предлагается структура подсистемы голосового управления на базе системы распознавания речи CMU Sphinx. В заключении представлено исследование подсистемы голосового управления, заключающееся в определении точности распознавания команд.

Ключевые слова: мобильные роботы, распознавание речи, CMU Sphinx, голосовое управление.

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

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

Рассмотрим основные системы распознавания речи, которые доступны на рынке:

1) Voice Recognition Module (VRM) v3.1 является функционально законченным (автономным) устройством, выполняющим функции распознавания и обработки речи. Это компактная и простая в использовании плата для распознавания речи (рисунок 1), использующая метод динамического программирования. Для начала работы с данным устройством, требуется сначала обучить его, то есть записать набор команд. Плата позволяет хранить до 80 голосовых команд, длительностью 1500 миллисекунд [1]. Недостатком данного модуля является его ограниченность в размере словаря. В каждый момент времени возможно использование только семи команд из восьмидесяти.

pic1

Рисунок 1 – Плата распознавания VRM v3.1


2) Другим решением для создания системы голосового управления является использование программных систем распознавания речи. Их главное отличие от автономных состоит в том, что данные системы являются программным обеспечением, а не отдельным, законченным устройством. В качестве примера можно привести технологию распознавания речи Yandex Speech Kit – это комплекс речевых технологий Яндекса, который включает распознавание и синтез речи, голосовую активацию и выделение смысловых объектов в произносимом тексте [2].

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

3) Еще одним программным продуктом является CMUSphinx – открытый бесплатный инструментарий для создания систем распознавания речи [3]. CMU Sphinx сейчас является крупнейшим проектом по распознаванию человеческой речи. К основным преимуществам данного проекта можно отнести его работу без доступа к сети Интернет, дикторонезависимость, возможность создания своего собственного словаря, а также грамматики (последовательность слов, образующих необходимые команды). Недостатком является сложность установки и русификация акустической модели. Также важным фактором, влияющим на качество распознавания, является правильность написания транскрипции слов.

Разработка и исследование подсистемы голосового управления. В качестве инструмента распознавания было принято решение использовать CMUSphinx, обладающего всеми необходимыми для данной работы характеристиками. Для создания системы голосового управления в CMUSphinx предусмотрен более «легковесный» движок распознавания речи PocketSphinx, который можно использовать, например, на одноплатном компьютере Raspberry Pi.

Разработка подсистемы голосового управления начинается с создания словаря распознавания. Чтобы понять, какие слова необходимо добавлять в словарь, нужно проанализировать работу мобильного робота. Робот способен работать в двух режимах: ручной и автоматический. Автоматический режим подразумевает движение робота в неизвестной среде с препятствиями к различным целевым точкам. Ручной режим позволяет оператору вручную управлять движением мобильного робота.

Разработка словаря начинается с создания файла с расширением *txt с перечислением всех возможных слов, которые могут встречаться в подаваемых командах. Наш словарь состоит из 44 слов. Пример слов, составляющих словарь:

  • Стоп;
  • Остановись;
  • Стоять;
  • Налево;
  • Автоматический;
  • Режим;
  • Робот.

Так как движок PocketSphinx является зарубежной разработкой, то процесс распознавания происходит через латинскую транскрипцию. Для работы с русским словарем необходимо обработать созданный файл и каждому слову поставить в соответствие слово, записанное латиницей. Это можно сделать вручную по определенным правилам перевода или использовать готовые скрипты, которые преобразуют созданный нами словарь в словарь, подходящий для работы с движком распознавания. Пример словаря после обработки представлен ниже:

  • Стоять stojatt;
  • Стой stooj;
  • Автоматический avtomattiichjeskij;
  • Режим rrezhiim;
  • Включить vklluchiitt.

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

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

Это можно сделать путем создания файла грамматики JSpeech Grammar [4], в котором описываются все возможные команды, которые могут быть сказаны оператором. Пример файла для данной работы представлен на рисунке 2.

pic2

Рисунок 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, скорректировав транскрипцию русских слов в словаре, а также используя микрофоны с шумоподавлением.

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

1. Introduction To Voice Recognition With Elechouse V3 and Arduino. [Электронный ресурс]. – Режим доступа: Voice Recognition With Elechouse V3 and Arduino (дата обращения: 28.06.2020).
2. Речевые технологии Speech Kit. [Электронный ресурс]. – Режим доступа: Speech Kit (дата обращения: 28.06.2020).
3. Overview of the CMUSphinx toolkit. [Электронный ресурс]. – Режим доступа: CMUSphinx toolkit (дата обращения: 29.06.2020).
4. JSpeech Grammar Format. [Электронный ресурс]. – Режим доступа: Grammar Format (дата обращения: 05.07.2020).