Научная статья на тему 'ГОЛОСОВОЙ ПОМОЩНИК ДЛЯ УПРАВЛЕНИЯ ОПЕРАЦИОННОЙ СИСТЕМОЙ'

ГОЛОСОВОЙ ПОМОЩНИК ДЛЯ УПРАВЛЕНИЯ ОПЕРАЦИОННОЙ СИСТЕМОЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
290
47
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГОЛОСОВОЙ ПОМОЩНИК / РАСПОЗНАНИЕ РЕЧИ / РАСПОЗНАНИЕ КОМАНДЫ / ВЫПОЛНЕНИЕ КОМАНДЫ / ГЕНЕРАЦИЯ РЕЧИ / РАССТОЯНИЕ ЛЕВЕНШТЕЙНА / ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Скочко П.С., Барабанов В.Ф., Гребенникова Н.И., Кенин С.Л.

Рассмотрен широкий спектр применения голосового помощника. В последнее время большое распространение получили интеллектуальные системы, построенные на основе алгоритма распознавания речи, что обусловлено их функциональностью, простотой и удобством применения, а также широким диапазоном сфер, где возможно их применение. Востребованность таких систем привела к тому, что специалисты по речевым технологиям, проводя исследования, стараются создать концептуально новые алгоритмы для расширения функциональных возможностей. В статье представлены алгоритм работы и модульная структура программного комплекса голосового помощника. Определены средства программной реализации голосового помощника (язык программирования Python, для считывания звука с микрофона использована библиотека pyAudio, для расшифровки речи использована библиотека SpeechRecognition, для расшифровки текста использован механизм нечеткого сравнения строк Fuzzywuzzy, для генерации речи использована технология text-to-speech библиотеки PyTTSx3). Для сравнения строк в работе применен распространенный алгоритм - расстояние Левенштейна. Основная идея алгоритма заключается в подсчете модуля разности двух последовательностей символов. С использованием выбранных средств реализации разработан голосовой помощник для пользователя операционной системой Windows с первичным набором демонстрационных функций

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Скочко П.С., Барабанов В.Ф., Гребенникова Н.И., Кенин С.Л.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

VOICE ASSISTANT TO CONTROL AN OPERATING SYSTEM

We considered a wide range of applications of the voice assistant. Recently, intelligent systems based on a speech recognition algorithm have become widespread, due to their functionality, simplicity and ease of use, as well as a wide range of areas where they can be used. The demand for such systems has led to the fact that speech technology specialists, conducting research, are trying to create conceptually new algorithms to expand functionality. Here we present the algorithm of the work and the modular structure of the software package of a voice assistant. The means of software implementation of the voice assistant are defined (Python programming language, the PyAudio library is used to read sound from the microphone, the SpeechRecognition library is used to decrypt speech, the Fuzzywuzzy fuzzy string comparison mechanism is used to encrypt text, the text-to-speech technology of the PyTTSx3 library is used to generate speech). To compare the lines in the work, a common algorithm is used - the Levenshtein distance. The main idea of the algorithm is to calculate the modulus of the difference between two sequences of characters. Using the selected implementation tools, a voice assistant has been developed for the user of the Windows operating system with a primary set of demonstration functions

Текст научной работы на тему «ГОЛОСОВОЙ ПОМОЩНИК ДЛЯ УПРАВЛЕНИЯ ОПЕРАЦИОННОЙ СИСТЕМОЙ»

DOI 10.36622/VSTU.2022.18.2.002 УДК 004.5

ГОЛОСОВОЙ ПОМОЩНИК ДЛЯ УПРАВЛЕНИЯ ОПЕРАЦИОННОЙ СИСТЕМОЙ

П.С. Скочко1, В.Ф. Барабанов1, Н.И. Гребенникова1, С.Л. Кенин2

воронежский государственный технический университет, г. Воронеж, Россия 2ООО «Атос Айти Солюшенс Энд Сервисез», г. Воронеж, Россия

Аннотация: рассмотрен широкий спектр применения голосового помощника. В последнее время большое распространение получили интеллектуальные системы, построенные на основе алгоритма распознавания речи, что обусловлено их функциональностью, простотой и удобством применения, а также широким диапазоном сфер, где возможно их применение. Востребованность таких систем привела к тому, что специалисты по речевым технологиям, проводя исследования, стараются создать концептуально новые алгоритмы для расширения функциональных возможностей. В статье представлены алгоритм работы и модульная структура программного комплекса голосового помощника. Определены средства программной реализации голосового помощника (язык программирования Python, для считывания звука с микрофона использована библиотека pyAudio, для расшифровки речи использована библиотека SpeechRecognition, для расшифровки текста использован механизм нечеткого сравнения строк Fuzzywuzzy, для генерации речи использована технология text-to-speech библиотеки PyTTSx3). Для сравнения строк в работе применен распространенный алгоритм - расстояние Левенштейна. Основная идея алгоритма заключается в подсчете модуля разности двух последовательностей символов. С использованием выбранных средств реализации разработан голосовой помощник для пользователя операционной системой Windows с первичным набором демонстрационных функций

Ключевые слова: голосовой помощник, распознание речи, распознание команды, выполнение команды, генерация речи, расстояние Левенштейна, операционная система Windows, искусственный интеллект

Введение

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

Ниже приведен перечень основных направлений развития голосовых помощников:

- "очеловечивание" роботов: необходимо учесть акценты, сленг, слова-паразиты, идиомы и прочие вещи, делающие нашу речь "живой";

- распознавание речи. Задача по улучшению средств распознавания речи все так же актуальна;

- кастомизация помощника. Создание голосовых профилей (новые имена, голоса, уникальные ответы);

- внедрение в новые сферы и девайсы. В данный момент около 90% всех помощников используются на смартфонах, порядка 9% - на компьютерах. Также ведутся работы по внедрению голосовых помощников в автомобили, «умные дома», бытовую технику и так далее;

- новое применение. На данном этапе развития основные сферы применения голосовых помощников - управление фонотекой (Алиса), поиск информации в интернете (GoogleVoiceAssistant), онлайн-шоппинг

(А1еха).

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

Модульная структура программного комплекса голосового помощника

Классическая схема алгоритма работы голосового помощника устроена следующим образом (рис. 1): все начинается с того, что в программу загружается звуковая дорожка. Она может быть получена с микрофона используемого устройства или же загружена в виде звукового файла. Также очень важно очистить входящий звуковой поток от шума. Преобразование звука в текст происходит с помощью системы распознавания речи. Формирование ответа чаще всего строится на шаблонах поведения. Все реплики голосового помощника определяются заранее и в зависимости от сказанного пользователем, система выбирает тот или

© Скочко П.С., Барабанов В.Ф., Гребенникова Н.И., Кенин С.Л., 2022

иной готовый ответ. И последний шаг - произношение ответа. Так как в данной работе будет выполнен голосовой помощник для управления операционной системой, необходимо было добавить шаг с выполнением команды, пришедшей от пользователя:

1

Считывание звука

2 V

Очистка шума

3 V

Преобразование звука в текст

■ 4 V

Формирование ответа

■В , Выполнение команды

__ ■ в

Ответ

Рис. 1. Схема работы голосового помощника

Исходя из представленной выше схемы работы, можно выделить 4 основных модуля реализуемого программного обеспечения:

- модуль «Распознание речи»;

- модуль «Распознание команды»;

- модуль «Выполнение команды»;

- модуль «Генерация речи».

Средства реализации программного комплекса голосового помощника

После определения схемы работы необходимо выбрать средства реализации. В качестве используемого языка программирования было решено использовать Python.

Первой задачей является считывание и распознавание звукового сигнала. Для считывания звука с микрофона использована библиотека pyAudio.

Библиотеке SpeechRecognition было отдано предпочтение в задаче расшифровки речи. Существуют и другие библиотеки, такие как assemblyai или apiai, но SpeechRecognition выделяется на их фоне простотой использования.

Стоит также учитывать, что считывание и расшифровка текста не всегда будут проходить

идеально точно, что может стать проблемой для идентификации команды пользователя. Решением станет использование механизма нечеткого сравнения строк. Fuzzywuzzy - самый популярный на данный момент пакет, реализующий данный функционал. Данный пакет использует такой довольно распространенный алгоритм - Расстояние Левенштейна. Основная идея алгоритма заключается в подсчете модуля разности двух последовательностей символов. Разность определяется как минимальное количество посимвольных операций (удаление, замена и вставка), необходимых для превращения одной последовательности в другую.

Если к списку разрешённых операций добавить транспозицию (два соседних символа меняются местами), получается расстояние Да-мерау — Левенштейна [6].

Пусть и Б2 - две строки длинной M и N соответственно, тогда расстояние Левенштейна d(S1,S2) можно подсчитать по следующей формуле 52) = 0(М, Ы), при этом:

0,

i,

i = 0,j = 0 j = 0, i > 0 i = 0 ,j > 0

min{

D(i,j - 1) + 1 D(i - 1 ,j) + 1

D(i-1,j-1)+m(S1,S2) }

. (1)

j > 0, i > 0

где m(a,b) равна 1 во всех случаях кроме а = b; min[a, b, с) возвращает наименьший аргумент. Здесь шаг i - это удаление (D) из первой строки, j - вставка (I) в первую строку, а шаг по обоим индексам символизирует замену символа (R) или отсутствие изменений (M).

Очевидно, справедливы следующие утверждения:

d(S1,S2)> Н^ЫМ d(S1,S2) < maxflsjj^l) d(S1,S2) = 0 ~ Si = S2

(2)

(3)

(4)

Для задачи генерации речи использована технология text-to-speech. Одним из возможных решений является библиотека PyTTSx3. Основное ее преимущество в том, что она крос-сплатформенная и использует различные системы синтеза речи в зависимости от текущей операционной системы:

- SAPI5 для Windows;

- nsss для Mac OS;

- eSpeak для Linux.

Сценарий работы голосового помощника

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

Реализуемый голосовой помощник будет прослушивать и анализировать поступающий с

микрофона звук в фоновом режиме. Для его активации необходимо произнести кодовое слово и после этого команду. В нашем случае кодовое слово - «Серега». Библиотека команд представляет собой список структур типа ключ - значение. В качестве ключа будет выступать команда, а в качестве значения - список возможных ее активаций. Пример такой структуры данных представлен ниже:

commands = {

"name": ('cepera', 'серег'), "command": {

"current_time": ('текущее Еремя','сейчас Еремени1,'который час', 'Еремени', 'сколько времени'), "current_weather": ('какая погода','какая сейчас погода','что по погоде')

}

}

Рис. 2. Структура данных библиотеки команд

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

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

Рис. 3. Сценарий работы голосового помощника

Заключение

В данной работе рассмотрена схема работы типичного голосового помощника, на основе которой был спроектирован алгоритм работы голосового помощника для пользователя операционной системой Windows. Были проанализированы и выбраны средства реализации каждого из модулей, на базе которых разработан голосовой помощник с первичным набором демонстрационных функций.

Литература

1. Левенштейн В.И. Двоичные коды с исправлением выпадений, вставок и замещений символов. Доклады Академий Наук СССР, 1965.

2. Pyttsx3 2.90. URL: https://pypi.org/project/pyttsx3/

3. PyAudio 0.2.11. URL: https://pypi.org/project/PyAudio/

4. SpeechRecognition 3.8.1. URL: https://pypi.org/project/SpeechRecognition/

5. fuzzywuzzy 0.18.0. URL: https://pypi.org/project/fuzzywuzzy/

6. Расстояние Левенштейна. URL:

https://ru.wikipedia.org/wiki/Расстояние_Левенштейна

7. Расстояние Левенштейна для поиска отпечаток в данных клиента. URL: https://vc.ru/newtechaudit/129654-rasstoyanie-levenshteyna-dlya-poiska-opechatok-v-dannyh-klienta

Поступила 20.01.2022; принята к публикации 18.04.2022 Информация об авторах

Скочко Павел Сергеевич - аспирант, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail:sko4ko.pavel@gmail.com

Барабанов Владимир Федорович - д-р техн. наук, профессор, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail:bvf@list.ru

Гребенникова Наталия Ивановна - канд. техн. наук, доцент, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail:g-naty@yandex.ru

Кенин Сергей Леонидович - канд. техн. наук, руководитель проектов, филиал в г. Воронеж ООО "Атос Айти Солюшенс Энд Сервисез" (394000, Россия, г. Воронеж, пр. Труда, 65), e-mail: sergey.kenin@atos.net

VOICE ASSISTANT TO CONTROL AN OPERATING SYSTEM

P.S. Stochko1, V.F. Barabanov1, N.I. Grebennikova1, S.L. Kenin2

1Voronezh State Technical University, Voronezh, Russia 2ATOS, Voronezh, Russia

Abstract: we considered a wide range of applications of the voice assistant. Recently, intelligent systems based on a speech recognition algorithm have become widespread, due to their functionality, simplicity and ease of use, as well as a wide range of areas where they can be used. The demand for such systems has led to the fact that speech technology specialists, conducting research, are trying to create conceptually new algorithms to expand functionality. Here we present the algorithm of the work and the modular structure of the software package of a voice assistant. The means of software implementation of the voice assistant are defined (Python programming language, the PyAudio library is used to read sound from the microphone, the SpeechRecognition library is used to decrypt speech, the Fuzzywuzzy fuzzy string comparison mechanism is used to encrypt text, the text-to-speech technology of the PyTTSx3 library is used to generate speech). To compare the lines in the work, a common algorithm is used - the Levenshtein distance. The main idea of the algorithm is to calculate the modulus of the difference between two sequences of characters. Using the selected implementation tools, a voice assistant has been developed for the user of the Windows operating system with a primary set of demonstration functions

Key words: voice assistant, speech recognition, command recognition, command execution, speech generation, Le-venshtein distance, Windows operating system, artificial intelligence

References

1. Levenstein V.I. "Binary codes with correction of dropouts, inserts and substitutions of characters", Reports of the USSR Academis of Sciences (Doklady Akademiy NaukSSSR), 1965

2. Pyttsx3 2.90, available at: https://pypi.org/project/pyttsx3/

3. PyAudio 0.2.11, available at: https://pypi.org/project/PyAudio/

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Speech Recognition 3.8.1, available at: https://pypi.org/project/SpeechRecognition/

5. fuzzy fuzzy 0.18.0, available at: https://pypi.org/project/fuzzywuzzy/

6. Levenshtein distance, available at: https://ru.wikipedia.org/wiki/Levenshtein Distance

7. Levenshtein distance to search for fingerprints in customer data, available at: https://vc.ru/newtechaudit/129654-rasstoyanie-levenshteyna-dlya-poiska-opechatok-v-dannyh-klienta

Submitted 20.01.2022; revised 18.04.2022

Information about the authors

Pavel S. Skochko, Graduate student, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail:sko4ko.pavel@gmail.com

Vladimir F. Barabanov, Dr. Sc. (Technical), Professor, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: bvf@list.ru

Nataliya I. Grebennikova, Cand. Sc. (Technical), Associate Professor, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: g-naty@yandex.ru

Sergey L. Kenin, Cand. Sc. (Technical), ATOS (Voronezh) (65, prospekt Truda, Voronezh 394000, Russia), e-mail: sergey.kenin@atos.net

i Надоели баннеры? Вы всегда можете отключить рекламу.