Выпуск #3/2021
Е.Ряполова, М.Студянникова, А.Преснов
РАЗРАБОТКА ЗАЩИЩЕННОГО МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ СЕРВИСА IPTV
РАЗРАБОТКА ЗАЩИЩЕННОГО МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ СЕРВИСА IPTV
Просмотры: 1507
DOI: 10.22184/2070-8963.2021.95.3.24.31
Представлены результаты разработки защищенного мобильного приложения для сервиса IPTV с голосовым управлением. Проведен выбор разработки среды программирования и сравнительный анализ алгоритмов нечеткого поиска, в результате чего был выбран алгоритм Левенштейна. Разработаны структура мобильного приложения, удобный и понятный интерфейс и мобильное приложение с голосовым управлением. Выполнено проектирование модуля голосового распознавания с использованием алгоритма Левенштейна.
Представлены результаты разработки защищенного мобильного приложения для сервиса IPTV с голосовым управлением. Проведен выбор разработки среды программирования и сравнительный анализ алгоритмов нечеткого поиска, в результате чего был выбран алгоритм Левенштейна. Разработаны структура мобильного приложения, удобный и понятный интерфейс и мобильное приложение с голосовым управлением. Выполнено проектирование модуля голосового распознавания с использованием алгоритма Левенштейна.
Теги: iptv levenshtein algorithm protected mobile application алгоритм левенштейна защищенное мобильное приложение
РАЗРАБОТКА ЗАЩИЩЕННОГО МОБИЛЬНОГО ПРИЛОЖЕНИЯ для сервиса IPTV
Е.Ряполова, к.пед.н., доцент Оренбургского филиала ПГУТИ / ananeva_ei@mail.ru,
М.Студянникова, к.пед.н., доцент ОФ ПГУТИ / studyannikovam@mail.ru,
А.Преснов, к.пед.н., доцент ОФ ПГУТИ / presnov.aleksey@mail.ru
УДК 004.4, DOI: 10.22184/2070-8963.2021.95.3.24.31
Представлены результаты разработки защищенного мобильного приложения для сервиса IPTV с голосовым управлением. Проведены выбор разработки среды программирования и сравнительный анализ алгоритмов нечеткого поиска, в результате чего был выбран алгоритм Левенштейна. Разработаны структура мобильного приложения, удобный и понятный интерфейс и мобильное приложение с голосовым управлением. Выполнено проектирование модуля голосового распознавания с использованием алгоритма Левенштейна.
Голосовое управление широко распространено в современных технологиях и находит сегодня применение практически во всех областях. Такое управление техникой позволяет значительно упросить жизнь как обычным людям, так и людям с ограниченными возможностями. Управление смартфоном при помощи голоса дает существенное преимущество для сокращения времени на выполнение таких задач, как изменение текста напоминания, сохранение важного события в календаре, поиск актуальных новостей, предупреждение о погодных ненастьях и многие другие.
Голосовое управление не может существовать без технологии распознавания речи, которое в свою очередь использует новейшие исследования в области искусственного интеллекта. Разработаны базовые этапы в ходе распознавания речи, применимые во многих существующих алгоритмах [1].
Обработка цифрового сигнала начинается с отделения заголовка с информацией об аудиопотоке от основных данных. После этого необходимо выполнить предварительную обработку сигнала, которая включает удаление шума и посторонних сигналов, выходящих за спектр человеческой речи. Такая обработка выполняется с помощью аналоговых или цифровых полосовых фильтров. Затем происходит дробление сигнала на фреймы (небольшие структуры), длина которых обычно составляет 10–30 мс с шагом в 10 мс [2].
Такой подход обеспечивает наложение фреймов, что в свою очередь обеспечивает наиболее точные показатели. Следующий, очень важный, этап − нормирование по амплитуде. Такое приведение показателей снижает влияние внешних факторов, таких как разный уровень громкости, фактическое расстояние до записывающего устройства и т.д.
После этого проводится сложный этап – определение границ фреймов или распознавание отдельных слов. Задача весьма непроста и может быть решена с помощью метода Рабинера – Самбура или аппарата вейвлет-преобразований, в частности быстрого вейвлет-преобразования Добеши [3], или самым простым методом – анализом энтропии фреймов.
На этом этапе базовый алгоритм заканчивается и приходит время анализа звукового сигнала, выявления численных характеристик и, в конце концов, сравнения с лексикографическим словарем. Алгоритмы анализа применяются самые разные: самообучающиеся нейронные сети, Deep Learning, скрытые марковские модели и др.
Проведенное исследование показало, насколько популярны голосовые помощники. Уже в 2015 году, согласно данным MindMeld [4], количество голосовых запросов составило 50 млрд в месяц и до сих пор растет со стремительной скоростью. В 2016 году Google объявила, что около 20% запросов в поисковой системе сделаны голосом. А на 2020 год голосовой помощник от компании Google работал более чем на 400 млн устройств по всему миру.
В 2019 году эта корпорация заказала проведение исследования, которое было направлено на изучение использования голосовых помощников. Им занималась компания Northstar Research. В исследовании приняли участие подростки 13–17 лет (400 человек) и взрослые – старше 18 лет (1000 человек). Компанию больше всего интересовало два вопроса: "Когда люди чаще всего используют голосового ассистента?" и "Для чего люди используют голосового ассистента?". Результаты исследования представлены в табл.1.
Согласно результатам исследования, среди подростков практически в равной степени преобладает использование голосового ассистента с друзьями и при просмотре телевизора. Но для взрослых можно наблюдать преобладание использования ассистента при просмотре телевизора. Такую статистику можно объяснить высокой популярностью телесмотрения, поскольку это один из самых распространенных методов отдыха в рабочие будни как среди подростков, так и среди взрослых.
Согласно данным табл.1, несложно понять, что взрослые задают более практичные вопросы, а подростки изучают все аспекты, при этом треть из них использует голосовых ассистентов для получения помощи при выполнении домашней работы.
Компания PWC в 2019 году также провела исследование в области голосового управления, результатом которого было распределение голосового поиска между устройствами [5]. Так же как и в предыдущем исследовании, участникам опроса был предоставлен список устройств, и они выбирали, на каких пользуются голосовым управлением наиболее часто. Результаты представлены в табл.2.
По результатам исследования самое большое количество голосовых помощников принадлежит смартфонам, но не стоит упускать из внимания и другие устройства – второе место делят между собой гаджеты, отличающиеся размерами, но имеющие те же операционные системы, что и смартфоны – планшеты, ноутбуки, персональные компьютеры.
Еще одно значимое исследование провела компания Microsoft. Его целью было выявить наиболее популярные голосовые помощники [6]. Результаты исследования представлены в табл.3.
Обращаясь к табл.3, можно заметить, что сумма результатов превосходит 100%. Это объясняется тем, что люди имеют возможность пользоваться сразу несколькими голосовыми ассистентами. Первое место делят голосовые помощники Siri и Google Assistant.
Голосовое управление набирает обороты, ассистенты совершенствуются, а производители борются за первенство на рынке, стараясь добавить как можно больше уникальных функций. В декабре 2019 года специалисты компании Loup Ventures провели тестирование популярных голосовых ассистентов [7] в умных колонках. В ходе тестирования голосовым помощникам было задано 800 вопросов из пяти категорий: команды, навигация, информационные, коммерческие и локальные.
Согласно результатам тестирования, на первом месте оказался Google Assistant (Google Home). По данным тестирующих специалистов, голосовой помощник верно распознал 100% вопросов, а доля правильных ответов составила 87,9%. Показатели голосового помощника от Apple – Home Pod (Siri): 99,6% и 74,6% соответственно. Результаты Amazon Echo (Alexa): 99% и 72,5%, Cortana − 99,4% и 63,4%.
Также нельзя не заметить, что некоторые ассистенты более развиты в одних областях, нежели в других. К примеру, Alexa хорошо отвечает на вопросы из информационной области (91% правильных ответов) и намного хуже из коммерческой (52% правильных ответов). Следует отметить, что с задачами из коммерческой области хорошо справляется только Google Assistant. В целом, распознавание речи голосовыми ассистентами все еще неидеально, но уже имеет очень хороший уровень.
С каждым обновлением синтезирование речи становится все качественнее, более похожим на естественную речь, а набор функций все шире. В будущем не исключено, что голосовые ассистенты будут распознавать эмоции, подстраивая алгоритм работы под настроение пользователя.
Рассмотрим разработку алгоритма модуля голосового управления, она начинается с первого этапа – разработки пользовательского интерфейса. В табл.4 представлены случаи, в которых модуль при взаимодействии с пользователем требует реального отклика.
Простейший пользовательский интерфейс полностью охватывает все возможные взаимодействия, необходимые для управления модулем голосового распознавания аудиотекста. После того как аудиопоток, произнесенный пользователем, будет трансформирован в текст, работа над голосовой командой передается нижеописанному алгоритму, задача которого − выделить из текстового запроса команды разных уровней и выполнить запрошенное действие.
Перед началом запуска алгоритма распознавания необходимо выполнить подготовительные действия, которые заключаются в удалении ненужных для распознавания слов (с учетом предметной области), к примеру: "привет", "здравствуй", "пожалуйста", "канал", "телеканал", "информация о", "передача" и т. д., а так же их модификаций.
Дальнейшую работу алгоритма можно представить в виде нескольких уровней распознавания команд, где на каждом из уровней представлен ассоциативный массив возможных вариаций ключевых слов и выделение общего правила. На последнем уровне расположены данные, благодаря которым в системе запускается результирующий поиск по внутренним данным.
В текущем алгоритме существуют два уровня распознавания ключевых слов. На первом уровне происходит распознавание действия по правилам, описанным ниже. Если на первом уровне распознавание не дало результата, то по умолчанию за ключевое слово принимается действие "открыть". На втором уровне происходит распознавание навигационного пункта, к примеру: настройки, категории, поиск и т. д. После двух уровней распознавания, если текущая текстовая строка еще не пустая, то результат переходит к алгоритму повышения достоверности распознавания. В противном случае дальнейшее распознавание невозможно и команда принята как ошибочная.
Если по результату голосового запроса пользователя система выдаст несколько ответов, удовлетворяющих требованиям, корректным поведением будет открытие нового экрана, в заголовке которого указано "Результат голосового поиска", а на экране пользователю предоставлен результирующий список с возможностью выбора.
Далее ожидается действие пользователя, после чего активируется уже ранее описанная логика программы. На первом уровне происходит выделение первичного действия – глагола. Поскольку при голосовом распознавании могут быть допущены ошибки и входящее слово видоизменено, то следует определять неизменяемую часть и осуществлять поиск по включению этой части слова во входящей строке. Определение зарезервированных ключевых слов (табл.5) происходит путем изучения возможных запросов ввиду специфики области применения.
На втором уровне происходит выделение направления действия – существительного. Распознавание вхождения происходит тем же способом, что и на предыдущем уровне, с учетом возможных ошибок.
После прохождения вышеописанных преобразований остаток команды принимается в качестве названия телеканала, программы передач или названия фильма. Поскольку эти параметры чаще всего не заданы в точности как предоставляет EGP, поиск на соответствие реализовывается с помощью алгоритма нечеткого поиска. Результаты проведенного сравнительного анализа алгоритмов нечеткого поиска представлены в табл.6.
Согласно полученным результатам, наиболее подходящим алгоритмом для локальной задачи поиска является "Расстояние Левенштейна". Недостаток, на который стоит обратить внимание, − отсутствие учета порядка слов, но ввиду специфики применяемой области этот недостаток не играет большой роли, поскольку большинство каналов состоит из одного слова и имеет общеизвестные названия. Для оптимизации алгоритма, решающего поставленную задачу, можно ввести следующие правила, сокращающие варианты применения алгоритма нечеткого поиска:
Все методы, используемые в библиотеке, являются асинхронными, позволяя приложению работать в основном потоке в момент использования методов распознавания. В табл.7 описаны методы статического доступа к API.
Исходя из описанных методов реализуется интуитивно понятный пользователю интерфейс управления библиотекой. Кроме того, методы библиотеки тесно связаны с событиями, происходящими при вызове методов. Они позволяют переопределить действие при вызове метода библиотеки, в связи с чем появляется возможность программирования библиотеки под конкретную задачу.
При помощи обратных вызовов – событий, легко обрабатывать некорректное поведение, к примеру, возникшие в ходе распознавания ошибки, или корректировать поведение методов. Например, останавливать распознавание речи не по нажатию на кнопку, а при помощи отслеживания вызова события on Speech Recognized. Таким образом, как только в течение определенного времени прекратятся обратные вызовы, можно считать, что пользователь закончил произносить команду и необходимо остановить распознавание и начать обрабатывать результат.
Для разработки модуля голосового управления были использованы следующие IDE:
В режиме debug приложение представляет собой веб-оболочку, кроме того, на разных версиях операционных систем возможно разное поведение. Именно поэтому использовались следующие устройства для отладки программного кода:
Модуль голосового управления спроектирован таким образом, что его можно легко подключать в произвольную часть приложения. Это дает дополнительную гибкость всей системе. Рассмотрим основные возможности модуля голосового управления:
голосовое управление мобильным приложением доступно только в том случае, если пользователь дал согласие на использование микрофона приложением. В противном случае данная возможность недоступна. Если согласие пользователя получено, на некоторых страницах приложения внизу экрана доступен значок микрофона;
при нажатии на иконку с изображением микрофона запустится распознавание голоса, при этом необходимо произнести команду. Если команда не будет распознана в течение 7 с (пользователь не произнесет команду), голосовое распознавание будет завершено и интерфейс автоматически вернется в исходное состояние. Если команда распознана и результат поиска имеет несколько вариантов, то пользователю будет раскрыт список, предоставляющий возможность сделать выбор. Если команда распознана и результат поиска однозначен – приложение точно выполнит команду. Если поиск по команде не дал результатов, то приложение выведет соответствующее сообщение. Если команда произнесена неверно, то есть алгоритм не выделил ключевых фраз, то приложение выведет соответствующее сообщение;
для удобства пользователя разработана дополнительная возможность управления встроенным голосовым помощником: если иконка для запуска распознавания речи мешает пользователю, или пользователь не использует внутреннее распознавание речи – существует возможность скрыть распознавание при помощи локальных настроек в пункте "настройки" приложения. Если же модуль подключен в настройках, то пользователь на определенных экранах увидит иконку с микрофоном – что является исходной точкой для запуска алгоритма.
Одним из самых эффективных методов оценки безопасности проектов является pentest (тестирование на проникновение). Эффективность базируется на осуществлении искусственных испытаний на проникновение, то есть моделируются атаки злоумышленников. Открытый проект обеспечения безопасности OWASP Mobile Security Project формирует топ-10 уязвимостей для мобильных платформ [8]. Пять первых по значимости из них представлены в табл.8.
Таким образом, для разработанного мобильного приложения был проведен pentest с целью выявления критических уязвимостей и последующей защиты приложения. Для его осуществления был использован ряд утилит. Анализ современных голосовых помощников позволил определить четкие границы в тенденции развития технологии распознавания речи, в том числе определить перспективные направления, оценить функциональность алгоритмов распознавания, выявить наиболее уязвимые направления и векторы атак злоумышленников. Согласно научно-информационным источникам в области кибербезопасности на текущий момент защита от атак с использованием уязвимостей в голосовых помощниках не реализована в полной мере и находится в стадии активной разработки.
С учетом проведенных исследований осуществлен выбор наиболее защищенных технологий в изученной области и выполнено проектирование модуля голосового распознавания с использованием предложенных мер защиты. Опираясь на требования к модулю голосового управления, выдвинутые компанией Microimpuls, мобильное приложение разрабатывалось на платформе React Native от компании Facebook сразу для двух операционных систем − iOS и Android − с использованием встроенных мер защиты на уровне ОС.
В ходе исследований технических алгоритмов обработки голосовых команд проведен сравнительный анализ алгоритмов нечеткого поиска, в результате чего был выбран алгоритм Левенштейна, главным достоинством которого является небольшая вычислительная сложность, что играет колоссальную роль при реализации функционала на мобильных устройствах. Кроме того, для уменьшения нагрузки на устройства были применены оптимизационные методы.
ЛИТЕРАТУРА
Клюев Л. Открытые проблемы в области распознавания речи. Лекция в Яндексе // Блог компании Яндекс: Алгоритмы, Машинное обучение [Электронный ресурс]. URL: https://habr.com/ru/company/yandex/blog/337572/ (дата обращения: 14.09.2020).
Фролов Г.О. Применение вейвлет-преобразования в задачах идентификации по голосу // Современные научные исследования и инновации. 2013. № 5 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2013/05/24295 (дата обращения: 27.09.2020).
Ермоленко Т.В., Жук А.В. Классификация фреймов речевого сигнала в задачах дикторонезависимого распознавания речи // Искусственный интеллект. 2011. № 4. С. 87–95.
Young W. LSA16: Impact of Virtual Assistants & A.I. on Search // The official voice of the Local Search Association. [Электронный ресурс]. URL: https://www.lsainsider.com/lsa16-impact-of-virtual-assistants-a-i-onsearch/archives#sthash.NZRP 0LQ0.dpbs (дата обращения: 27.10.2020).
McCaffrey M. et al. Prepare for the voice revolution. An in-depth look at consumer adoption and usage of voice assistants, and how companies can earn their trust—and their business // 2017 – Thu Nov 28 10:44:21 UTC 2019 PwC. [Электронный ресурс]. URL: https://www.pwc.com/us/en/services/consulting/library/consumer-intelligenceseries/voice-assistants.html (дата обращения: 01.11.2020).
Остапенко А. Названы самые популярные голосовые помощники // www.dgl.ru [Электронный ресурс]. URL: https://www.dgl.ru/news/nazvany-samye-populyarnye-golosovyepomoshhniki_15386.html (дата обращения: 06.11.2020).
Munster G., Thompson W. Annual Smart Speaker IQ Test // 2019. Loup Ventures, LLC. [Электронный ресурс]. URL: https://loupventures.com/annual-smart-speaker-iq-test/?utm_source=ixbtcom (дата обращения: 15.11.2020).
McCamon M. et al. OWASP Mobile Security Project // [Электронный ресурс]. URL: https://www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Top_ 10_Mobile_Risks (дата обращения: 16.11.2020).
Е.Ряполова, к.пед.н., доцент Оренбургского филиала ПГУТИ / ananeva_ei@mail.ru,
М.Студянникова, к.пед.н., доцент ОФ ПГУТИ / studyannikovam@mail.ru,
А.Преснов, к.пед.н., доцент ОФ ПГУТИ / presnov.aleksey@mail.ru
УДК 004.4, DOI: 10.22184/2070-8963.2021.95.3.24.31
Представлены результаты разработки защищенного мобильного приложения для сервиса IPTV с голосовым управлением. Проведены выбор разработки среды программирования и сравнительный анализ алгоритмов нечеткого поиска, в результате чего был выбран алгоритм Левенштейна. Разработаны структура мобильного приложения, удобный и понятный интерфейс и мобильное приложение с голосовым управлением. Выполнено проектирование модуля голосового распознавания с использованием алгоритма Левенштейна.
Голосовое управление широко распространено в современных технологиях и находит сегодня применение практически во всех областях. Такое управление техникой позволяет значительно упросить жизнь как обычным людям, так и людям с ограниченными возможностями. Управление смартфоном при помощи голоса дает существенное преимущество для сокращения времени на выполнение таких задач, как изменение текста напоминания, сохранение важного события в календаре, поиск актуальных новостей, предупреждение о погодных ненастьях и многие другие.
Голосовое управление не может существовать без технологии распознавания речи, которое в свою очередь использует новейшие исследования в области искусственного интеллекта. Разработаны базовые этапы в ходе распознавания речи, применимые во многих существующих алгоритмах [1].
Обработка цифрового сигнала начинается с отделения заголовка с информацией об аудиопотоке от основных данных. После этого необходимо выполнить предварительную обработку сигнала, которая включает удаление шума и посторонних сигналов, выходящих за спектр человеческой речи. Такая обработка выполняется с помощью аналоговых или цифровых полосовых фильтров. Затем происходит дробление сигнала на фреймы (небольшие структуры), длина которых обычно составляет 10–30 мс с шагом в 10 мс [2].
Такой подход обеспечивает наложение фреймов, что в свою очередь обеспечивает наиболее точные показатели. Следующий, очень важный, этап − нормирование по амплитуде. Такое приведение показателей снижает влияние внешних факторов, таких как разный уровень громкости, фактическое расстояние до записывающего устройства и т.д.
После этого проводится сложный этап – определение границ фреймов или распознавание отдельных слов. Задача весьма непроста и может быть решена с помощью метода Рабинера – Самбура или аппарата вейвлет-преобразований, в частности быстрого вейвлет-преобразования Добеши [3], или самым простым методом – анализом энтропии фреймов.
На этом этапе базовый алгоритм заканчивается и приходит время анализа звукового сигнала, выявления численных характеристик и, в конце концов, сравнения с лексикографическим словарем. Алгоритмы анализа применяются самые разные: самообучающиеся нейронные сети, Deep Learning, скрытые марковские модели и др.
Проведенное исследование показало, насколько популярны голосовые помощники. Уже в 2015 году, согласно данным MindMeld [4], количество голосовых запросов составило 50 млрд в месяц и до сих пор растет со стремительной скоростью. В 2016 году Google объявила, что около 20% запросов в поисковой системе сделаны голосом. А на 2020 год голосовой помощник от компании Google работал более чем на 400 млн устройств по всему миру.
В 2019 году эта корпорация заказала проведение исследования, которое было направлено на изучение использования голосовых помощников. Им занималась компания Northstar Research. В исследовании приняли участие подростки 13–17 лет (400 человек) и взрослые – старше 18 лет (1000 человек). Компанию больше всего интересовало два вопроса: "Когда люди чаще всего используют голосового ассистента?" и "Для чего люди используют голосового ассистента?". Результаты исследования представлены в табл.1.
Согласно результатам исследования, среди подростков практически в равной степени преобладает использование голосового ассистента с друзьями и при просмотре телевизора. Но для взрослых можно наблюдать преобладание использования ассистента при просмотре телевизора. Такую статистику можно объяснить высокой популярностью телесмотрения, поскольку это один из самых распространенных методов отдыха в рабочие будни как среди подростков, так и среди взрослых.
Согласно данным табл.1, несложно понять, что взрослые задают более практичные вопросы, а подростки изучают все аспекты, при этом треть из них использует голосовых ассистентов для получения помощи при выполнении домашней работы.
Компания PWC в 2019 году также провела исследование в области голосового управления, результатом которого было распределение голосового поиска между устройствами [5]. Так же как и в предыдущем исследовании, участникам опроса был предоставлен список устройств, и они выбирали, на каких пользуются голосовым управлением наиболее часто. Результаты представлены в табл.2.
По результатам исследования самое большое количество голосовых помощников принадлежит смартфонам, но не стоит упускать из внимания и другие устройства – второе место делят между собой гаджеты, отличающиеся размерами, но имеющие те же операционные системы, что и смартфоны – планшеты, ноутбуки, персональные компьютеры.
Еще одно значимое исследование провела компания Microsoft. Его целью было выявить наиболее популярные голосовые помощники [6]. Результаты исследования представлены в табл.3.
Обращаясь к табл.3, можно заметить, что сумма результатов превосходит 100%. Это объясняется тем, что люди имеют возможность пользоваться сразу несколькими голосовыми ассистентами. Первое место делят голосовые помощники Siri и Google Assistant.
Голосовое управление набирает обороты, ассистенты совершенствуются, а производители борются за первенство на рынке, стараясь добавить как можно больше уникальных функций. В декабре 2019 года специалисты компании Loup Ventures провели тестирование популярных голосовых ассистентов [7] в умных колонках. В ходе тестирования голосовым помощникам было задано 800 вопросов из пяти категорий: команды, навигация, информационные, коммерческие и локальные.
Согласно результатам тестирования, на первом месте оказался Google Assistant (Google Home). По данным тестирующих специалистов, голосовой помощник верно распознал 100% вопросов, а доля правильных ответов составила 87,9%. Показатели голосового помощника от Apple – Home Pod (Siri): 99,6% и 74,6% соответственно. Результаты Amazon Echo (Alexa): 99% и 72,5%, Cortana − 99,4% и 63,4%.
Также нельзя не заметить, что некоторые ассистенты более развиты в одних областях, нежели в других. К примеру, Alexa хорошо отвечает на вопросы из информационной области (91% правильных ответов) и намного хуже из коммерческой (52% правильных ответов). Следует отметить, что с задачами из коммерческой области хорошо справляется только Google Assistant. В целом, распознавание речи голосовыми ассистентами все еще неидеально, но уже имеет очень хороший уровень.
С каждым обновлением синтезирование речи становится все качественнее, более похожим на естественную речь, а набор функций все шире. В будущем не исключено, что голосовые ассистенты будут распознавать эмоции, подстраивая алгоритм работы под настроение пользователя.
Рассмотрим разработку алгоритма модуля голосового управления, она начинается с первого этапа – разработки пользовательского интерфейса. В табл.4 представлены случаи, в которых модуль при взаимодействии с пользователем требует реального отклика.
Простейший пользовательский интерфейс полностью охватывает все возможные взаимодействия, необходимые для управления модулем голосового распознавания аудиотекста. После того как аудиопоток, произнесенный пользователем, будет трансформирован в текст, работа над голосовой командой передается нижеописанному алгоритму, задача которого − выделить из текстового запроса команды разных уровней и выполнить запрошенное действие.
Перед началом запуска алгоритма распознавания необходимо выполнить подготовительные действия, которые заключаются в удалении ненужных для распознавания слов (с учетом предметной области), к примеру: "привет", "здравствуй", "пожалуйста", "канал", "телеканал", "информация о", "передача" и т. д., а так же их модификаций.
Дальнейшую работу алгоритма можно представить в виде нескольких уровней распознавания команд, где на каждом из уровней представлен ассоциативный массив возможных вариаций ключевых слов и выделение общего правила. На последнем уровне расположены данные, благодаря которым в системе запускается результирующий поиск по внутренним данным.
В текущем алгоритме существуют два уровня распознавания ключевых слов. На первом уровне происходит распознавание действия по правилам, описанным ниже. Если на первом уровне распознавание не дало результата, то по умолчанию за ключевое слово принимается действие "открыть". На втором уровне происходит распознавание навигационного пункта, к примеру: настройки, категории, поиск и т. д. После двух уровней распознавания, если текущая текстовая строка еще не пустая, то результат переходит к алгоритму повышения достоверности распознавания. В противном случае дальнейшее распознавание невозможно и команда принята как ошибочная.
Если по результату голосового запроса пользователя система выдаст несколько ответов, удовлетворяющих требованиям, корректным поведением будет открытие нового экрана, в заголовке которого указано "Результат голосового поиска", а на экране пользователю предоставлен результирующий список с возможностью выбора.
Далее ожидается действие пользователя, после чего активируется уже ранее описанная логика программы. На первом уровне происходит выделение первичного действия – глагола. Поскольку при голосовом распознавании могут быть допущены ошибки и входящее слово видоизменено, то следует определять неизменяемую часть и осуществлять поиск по включению этой части слова во входящей строке. Определение зарезервированных ключевых слов (табл.5) происходит путем изучения возможных запросов ввиду специфики области применения.
На втором уровне происходит выделение направления действия – существительного. Распознавание вхождения происходит тем же способом, что и на предыдущем уровне, с учетом возможных ошибок.
После прохождения вышеописанных преобразований остаток команды принимается в качестве названия телеканала, программы передач или названия фильма. Поскольку эти параметры чаще всего не заданы в точности как предоставляет EGP, поиск на соответствие реализовывается с помощью алгоритма нечеткого поиска. Результаты проведенного сравнительного анализа алгоритмов нечеткого поиска представлены в табл.6.
Согласно полученным результатам, наиболее подходящим алгоритмом для локальной задачи поиска является "Расстояние Левенштейна". Недостаток, на который стоит обратить внимание, − отсутствие учета порядка слов, но ввиду специфики применяемой области этот недостаток не играет большой роли, поскольку большинство каналов состоит из одного слова и имеет общеизвестные названия. Для оптимизации алгоритма, решающего поставленную задачу, можно ввести следующие правила, сокращающие варианты применения алгоритма нечеткого поиска:
- длина строки n должна отличаться от длины строки m не более чем на три символа;
- поскольку пользователю будет выведен результат только в том случае, когда значение расстояния k≤3, то можно использовать отсечение Укконена, благодаря чему временная сложность станет равна O(k min(m, n));
- согласно алгоритму на каждой итерации используются исключительно две последние строки матрицы. Это означает, что есть возможность сократить использование памяти до O(min(m, n)), что имеет существенный вес при реализации в мобильном приложении;
- используемое API голосового распознавания имеет обширные возможности. Библиотека react-native-voice стабильно работает с мобильными операционными системами – как с Android, так и с iOS, имея полную совместимость.
Все методы, используемые в библиотеке, являются асинхронными, позволяя приложению работать в основном потоке в момент использования методов распознавания. В табл.7 описаны методы статического доступа к API.
Исходя из описанных методов реализуется интуитивно понятный пользователю интерфейс управления библиотекой. Кроме того, методы библиотеки тесно связаны с событиями, происходящими при вызове методов. Они позволяют переопределить действие при вызове метода библиотеки, в связи с чем появляется возможность программирования библиотеки под конкретную задачу.
При помощи обратных вызовов – событий, легко обрабатывать некорректное поведение, к примеру, возникшие в ходе распознавания ошибки, или корректировать поведение методов. Например, останавливать распознавание речи не по нажатию на кнопку, а при помощи отслеживания вызова события on Speech Recognized. Таким образом, как только в течение определенного времени прекратятся обратные вызовы, можно считать, что пользователь закончил произносить команду и необходимо остановить распознавание и начать обрабатывать результат.
Для разработки модуля голосового управления были использованы следующие IDE:
- Visual Studio Code – необходима для написания кода на языке программирования JavaScript;
- X code – необходима для компиляции проекта для мобильных устройств с операционной системой iOS;
- Android Studio – необходима для компиляции проекта для мобильных устройств с операционной системой Android;
- React-native примечателен тем, что после сборки приложения в режиме release код проекта, написанный на JavaScript, компилируется в нативный код для операционной системы устройства.
В режиме debug приложение представляет собой веб-оболочку, кроме того, на разных версиях операционных систем возможно разное поведение. Именно поэтому использовались следующие устройства для отладки программного кода:
- Genymotion – эмулятор устройств с операционной системой Android (имеет совместимость с IDE Android Studio);
- реальные устройства с операционной системой Android: Huawei P 20 Lite, Xiaomi Redmi 7A;
- Apple iOS Simulator – эмулятор устройств с операционной системой iOS (является встроенным в Xcode);
- реальные устройства с операционной системой iOS: iPhone 7, iPhone XR.
Модуль голосового управления спроектирован таким образом, что его можно легко подключать в произвольную часть приложения. Это дает дополнительную гибкость всей системе. Рассмотрим основные возможности модуля голосового управления:
голосовое управление мобильным приложением доступно только в том случае, если пользователь дал согласие на использование микрофона приложением. В противном случае данная возможность недоступна. Если согласие пользователя получено, на некоторых страницах приложения внизу экрана доступен значок микрофона;
при нажатии на иконку с изображением микрофона запустится распознавание голоса, при этом необходимо произнести команду. Если команда не будет распознана в течение 7 с (пользователь не произнесет команду), голосовое распознавание будет завершено и интерфейс автоматически вернется в исходное состояние. Если команда распознана и результат поиска имеет несколько вариантов, то пользователю будет раскрыт список, предоставляющий возможность сделать выбор. Если команда распознана и результат поиска однозначен – приложение точно выполнит команду. Если поиск по команде не дал результатов, то приложение выведет соответствующее сообщение. Если команда произнесена неверно, то есть алгоритм не выделил ключевых фраз, то приложение выведет соответствующее сообщение;
для удобства пользователя разработана дополнительная возможность управления встроенным голосовым помощником: если иконка для запуска распознавания речи мешает пользователю, или пользователь не использует внутреннее распознавание речи – существует возможность скрыть распознавание при помощи локальных настроек в пункте "настройки" приложения. Если же модуль подключен в настройках, то пользователь на определенных экранах увидит иконку с микрофоном – что является исходной точкой для запуска алгоритма.
Одним из самых эффективных методов оценки безопасности проектов является pentest (тестирование на проникновение). Эффективность базируется на осуществлении искусственных испытаний на проникновение, то есть моделируются атаки злоумышленников. Открытый проект обеспечения безопасности OWASP Mobile Security Project формирует топ-10 уязвимостей для мобильных платформ [8]. Пять первых по значимости из них представлены в табл.8.
Таким образом, для разработанного мобильного приложения был проведен pentest с целью выявления критических уязвимостей и последующей защиты приложения. Для его осуществления был использован ряд утилит. Анализ современных голосовых помощников позволил определить четкие границы в тенденции развития технологии распознавания речи, в том числе определить перспективные направления, оценить функциональность алгоритмов распознавания, выявить наиболее уязвимые направления и векторы атак злоумышленников. Согласно научно-информационным источникам в области кибербезопасности на текущий момент защита от атак с использованием уязвимостей в голосовых помощниках не реализована в полной мере и находится в стадии активной разработки.
С учетом проведенных исследований осуществлен выбор наиболее защищенных технологий в изученной области и выполнено проектирование модуля голосового распознавания с использованием предложенных мер защиты. Опираясь на требования к модулю голосового управления, выдвинутые компанией Microimpuls, мобильное приложение разрабатывалось на платформе React Native от компании Facebook сразу для двух операционных систем − iOS и Android − с использованием встроенных мер защиты на уровне ОС.
В ходе исследований технических алгоритмов обработки голосовых команд проведен сравнительный анализ алгоритмов нечеткого поиска, в результате чего был выбран алгоритм Левенштейна, главным достоинством которого является небольшая вычислительная сложность, что играет колоссальную роль при реализации функционала на мобильных устройствах. Кроме того, для уменьшения нагрузки на устройства были применены оптимизационные методы.
ЛИТЕРАТУРА
Клюев Л. Открытые проблемы в области распознавания речи. Лекция в Яндексе // Блог компании Яндекс: Алгоритмы, Машинное обучение [Электронный ресурс]. URL: https://habr.com/ru/company/yandex/blog/337572/ (дата обращения: 14.09.2020).
Фролов Г.О. Применение вейвлет-преобразования в задачах идентификации по голосу // Современные научные исследования и инновации. 2013. № 5 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2013/05/24295 (дата обращения: 27.09.2020).
Ермоленко Т.В., Жук А.В. Классификация фреймов речевого сигнала в задачах дикторонезависимого распознавания речи // Искусственный интеллект. 2011. № 4. С. 87–95.
Young W. LSA16: Impact of Virtual Assistants & A.I. on Search // The official voice of the Local Search Association. [Электронный ресурс]. URL: https://www.lsainsider.com/lsa16-impact-of-virtual-assistants-a-i-onsearch/archives#sthash.NZRP 0LQ0.dpbs (дата обращения: 27.10.2020).
McCaffrey M. et al. Prepare for the voice revolution. An in-depth look at consumer adoption and usage of voice assistants, and how companies can earn their trust—and their business // 2017 – Thu Nov 28 10:44:21 UTC 2019 PwC. [Электронный ресурс]. URL: https://www.pwc.com/us/en/services/consulting/library/consumer-intelligenceseries/voice-assistants.html (дата обращения: 01.11.2020).
Остапенко А. Названы самые популярные голосовые помощники // www.dgl.ru [Электронный ресурс]. URL: https://www.dgl.ru/news/nazvany-samye-populyarnye-golosovyepomoshhniki_15386.html (дата обращения: 06.11.2020).
Munster G., Thompson W. Annual Smart Speaker IQ Test // 2019. Loup Ventures, LLC. [Электронный ресурс]. URL: https://loupventures.com/annual-smart-speaker-iq-test/?utm_source=ixbtcom (дата обращения: 15.11.2020).
McCamon M. et al. OWASP Mobile Security Project // [Электронный ресурс]. URL: https://www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Top_ 10_Mobile_Risks (дата обращения: 16.11.2020).
Отзывы читателей