2.3 Разработка прототипа
Для прототипа данной системы, кроме Raspberry Pi? потребуется микрофон, который будет принимать звуковые сигналы для распознавания. Основываясь на том, что на данной плате нет отдельного аудиовхода, было решено использовать USB-микрофон eBerry с возможностью изменения чувствительности, что может уменьшить количество ошибочных срабатываний, тем самым повышая точность распознавания.
Рисунок 13 - USB-микрофон eBerry
Для иллюстрации работы прототипа будет использован шаговый двигатель 28BYJJ-48 является широко используемым шаговым двигателем, который преобразует электрические импульсы в дискретное механическое вращение. Двигатель состоит из 4 катушек, которые образуют кольцо вокруг ротора. Эти катушки известны как статор, так как они стационарны и стационарны. Каждая катушка рассчитана на +5 В, что позволяет легко управлять ею с помощью любого микроконтроллера, например, Raspberry.
Рисунок 14 - Шаговый двигатель 28BYJJ-48
ULN2003 является одной из наиболее распространенных ИС (интегральных схем) для управления приводом двигателя, которая содержит массив из 7 пар транзисторов Дарлингтона, каждый из которых способен управлять нагрузками до 500мА и 50В. По сути, пара Дарлингтонских транзисторов представляет собой пару транзисторов, где второй транзистор усиливает выходной ток первого транзистора. Как показано на схеме ниже, плата драйвера ULN2003 состоит из ULN2003, припаянной к плате, вместе с резисторами, конденсаторами, которые помогают создать схему, которая принимает импульсы от контроллера и преобразует их в движение шагового двигателя.
Рисунок 15 - Схема подключения ULN2003 к двигателю
На рисунке 12 отображена схематичная 3D модель макета, выполненная в программе Fusion 360.
Рисунок 16 - 3D-схема макета
Для выполнения экспериментальной части с помощью программы DipTrace была собрана принципиальная схема прототипа.
Рисунок 17 - Принципиальная схема прототипа в DipTrace
2.4 Система распознавания речи CMU PocketSphinx
Основываясь на результатах анализа (приведенного в главе 1.5), для данной работы была выбрана система СMU Sphinx версии 5prealpha. Написанная на языке программирования С, PocketSphix (разработанная для ARM процессоров) имеет самую быструю скорость распознавания среди подобных решений с открытым кодом. Для извлечения признаков система использует Мел-кепстральные коэффициенты (MFCC), акустическое моделирование происходит с использованием улучшенного алгоритма НММ. Так же данная система позволяет использовать программное шумоподавление и настроить ключевое слово, которое будет переводить программу из фонового режима в активный, тем самым позволяя исключить ложные срабатывания.
2.5 Разработка алгоритма функционирования системы
Рисунок 16 - Алгоритм функционирования системы голосового управления
Рисунок 16 представляет собой разработанный алгоритм функционирования системы распознавания речи, с помощью которого можно проектировать интеграцию в различные лифтовые системы.
GPIO - интерфейсы ввода, вывода на Raspberry Pi 3, через которые подаётся управляющий сигнал.
3. Экспериментальная часть
Подготовка ПО и настройка Raspberry Pi 3
Одноплатный компьютер на основе микроархитектуры ARM Cortex-A53 поддерживает различные операционные системы (Debian, Ubuntu, Android, Windows 10 IOT и другие), однако самой стабильной и наилучше адаптированной к этой микроархитектуре является Raspbian. Для её установки требуется записать образ на карту памяти (MicroSD). Для беспроводного взаимодействия с устройством настраиваем протоколы SSH и VNC, которые позволят нам подключиться к Raspberry Pi3 через Wi-Fi адаптер. VNC - это графическая система совместного использования рабочего стола, использующая протокол Remote Frame Buffer Protocol (RFB) для удаленного управления другим компьютером. Он передает события с клавиатуры и мыши с одного компьютера на другой, передавая обновления графического экрана обратно в другом направлении по сети.
Следующим шагом является установка пакета исходного кода Spinxbase и утилиты для распознавания речи PocketSphinx:
Для распознавания требуется акустическая языковая модель, статистическая языковая модель и словарь. Данная система, в стандартной версии, использует английскую языковую модель, однако, благодаря тому, что этот проект распространяется с открытым исходным кодом, существует возможность встраивать альтернативные фонетические модели, в то числе и русского языка. В любом языке, помимо фонетики, существует ещё грамматика, позволяющая лучше структурировать речь. В процессе распознавания речи применение грамматических правил позволяет отсекать лишние слова, упрощать работу программы и повышать процент верных результатов. Так как для управления лифтом отсутствует необходимость создавать большой словарь и есть возможность использовать заранее продуманную структуру предложений, то в данному случае можно воспользоваться Java Speech Grammar Format (JSGF). Это BNF-формат, платформенно-независимое и не зависящее от производителя текстовое представление грамматики для использования при распознавании речи. Грамматическая конструкция, построенная для управления лифтом, проиллюстрирована в приложении 2.
Макет прототипа устройства
Макет устройства для голосового управления лифтом выполнен на базе одноплатного микрокомпьютера Raspberry Pi 3 c архитектурой ARM Cortex A53. Положительными сторонами данного микрокомпьютера является совокупность малой стоимости, достаточной производительности и энергоэффективности, а также компактное размещение всех компонентов на плате, что позволило при малых габаритах использовать различные средства коммуникации (Bluetooth, Wi-Fi, Ethernet). Большая оперативная память и загрузка полноценной *Unix подобной операционной системы, позволяет использовать различные сервисы и не ограничивать программы малой вычислительной мощностью и объёмом памяти. *Unix подобные системы отличаются своей стабильной и бесперебойной работой, что позволяет использовать её даже в сложных устройствах. Так как возможности испытания в реальных условиях нет, было решено создать макет прототипа системы голосового управление лифтом.
Как уже было описано в предыдущих главах, для распознавания голосовых команд мы будем использовать утилиту PocketSphinx, которая будет анализировать голосовые сигналы, полученные с микрофона. C помощью VNC подключения можно будет увидеть результаты распознавания. Далее в зависимости от распознанного этажа, через схему управления ULN2003A будет запускаться шаговый мотор. Питание микрофона, интегральной схемы управления и двигателя осуществляется с Raspberry Pi3, которая в свою очередь питается через microUSB разъём от аккумулятора (на выходе которого 2.4 А и 5В).
Тестирование системы распознавания
Для определения точности распознавания данной системы в реальных условиях были проведены испытательные тесты. Словарь содержал в себе акустические модели цифр от 1 до 9, а также слов «здравствуй», «привет», «пожалуйста».
Тестирования происходило в офисе средней зашумленности (около 55 Дб), спикер находился в непосредственной близости от микрофона. Результаты распознавания с использованием ключевой фразы и без неё представлены в таблице 2 и 3. В ходе тестов не было выявлено явных различий успешности распознавания для разных спикеров, что подтверждает возможность использовать утилиту PocketSpinx для распознавания в устройствах общественного использования, в данном случае в лифте.
Таблица 2 - Результаты распознавания без ключевой фразы и грамматики
|
Количество правильных распознаваний |
Количество неверных распознан |
Количество ложных срабатываний |
Скорость распознавания, с |
|
|
32 |
13 |
6 |
0,5-0,6 |
Таблица 3 - Результаты при использованиях грамматики и ключевой фразы
|
Количество правильных распознаваний |
Количество неверных распознан |
Количество ложных срабатываний |
Скорость распознавания, с |
|
|
40 |
8 |
3 |
0,7-0,9 |
Заключение
Шаг за шагом технология распознавания речи внедряется в нашу повседневную жизнь, с каждом разом улучшая точность, интуитивность и простоту использования. Мощные и малогабаритные электронные платы позволяют использовать эти систему уже практически в любой области, повышая при этом качество жизни и степень автоматизации устройств. Широкий рынок различных качественных и недорогих электронных компонентов, а также программное обеспечение с открытым кодом дают возможность конструировать и интегрировать системы распознавания голосовых команд без крупного бюджета и с привлечением отечественных специалистов, что способствует некоторой независимости от зарубежных компаний производителей и интеграторов.
В данной выпускной квалификационной работе содержится аналитический обзор технических статей, маркетинговых исследований и специализированной литературы. Анализ подобного объёма необходим для полноценного охвата предложенной темы, чтобы сформулировать точное цели и задачи, необходимые для проектирования.
Исследование аналогичных решений, а также современных систем распознавания, позволило найти наиболее подходящие для конкретных ситуаций способы взаимодействия с лифтом и подобрать оптимальный вариант. Таким образом, в работе было решено использовать одноплатный микрокомпьютер Raspberry Pi 3 в связке с утилитой распознавания речи Pocketspinx.
Испытания подобной системы в настоящем лифте без проведение полноценного тестирования не представляется возможным, поэтому было решено смоделировать систему в 3D в программе Fusion 360, после чего собрать физический прототип с шаговым двигателем.
В будущем систему можно модернизировать, расширяя и дополняя алгоритм, повышающие безопасность использования и удобство. Введение датчика движения поможет включать алгоритм распознавания в наиболее подходящий момент. Также возможно усовершенствование в области шумоподавления (т. к. лифт является устройством с повышенной зашумленностью), например, использую два микрофона, выделяя на одном из них шум, который нужно вырезать из голосовых данных, уменьшая тем самым количество лишних распознаваний.
1. Montanaro L. et al. A Touchless Human-machine Interface for the Control of an Elevator //RTA-CSIT. - 2016. - С. 58-65. Доступен: http://ceur-ws.org/Vol-1746/paper-10.pdf
2. Карпов А. А., Ронжин А. А., Ли И. В. SIRIUS система дикторонезависимого распознавания слитной русской речи //Известия Южного федерального университета. Технические науки. - 2005. - Т. 54. - №. 10. Доступен: https://cyberleninka.ru/article/v/sirius-sistema-diktoronezavisimogo-raspoznavaniya-slitnoy-russkoy-rechi
3. Зубань Ю. А., Скляров И. В., Зубань Ю. О. Система распознавания голосовых команд. - 2007. Доступен:
http://r250.sudu.edu.ua/bitstream/12345679/1812/1/22_Zuban_Sklyarov.pdf
4. Pawar P. A. et al Voice operated lift control system using microcontroller. //IRJET. - 2018.
Доступен: https://www.researchpublish.com/download.php/file/Voice_Initialized_Elevator-2996.pdf
5. Rynaski R. F., Bogli C. Voice communication for elevator : США. - 1994. Доступен: https://patentimages.storage.googleapis.com/3a/f7/2d/fe080f97f1b755/US5345046.pdf
6. Montanaro L. et al. A Touchless Human-machine Interface for the Control of an Elevator //RTA-CSIT. - 2016. - С. 58-65. Доступен: http://ceur-ws.org/Vol-1746/paper-10.pdf
7. В. Беленко, П. В. Балакшин. Сравнительный анализ систем распознавания речи с открытым языком// Международный научно-исследовательский журнал. -- 2017. -- № 04 (58) Часть 4. -- С. 13--18. -- URL: https://research-journal.org/technical/sravnitelnyj-analiz-sistem-raspoznavaniya-rechi-s-otkrytym-kodom/ (дата обращения: 14.05.2019. )