Методика распознавания речевых команд в школьных информационных системах
Катаев М. Ю., доктор технических наук, профессор кафедры автоматизированных систем управления (АСУ), Томский государственный университет систем управления и радиоэлектроники, г. Томск, профессор кафедры интеллектуальных информационных систем и технологий МФТИ, г. Долгопрудный, kmy@asu.tusur.ru
В статье представлены варианты использования компьютерных звуковых технологий в информационных системах, помогающих решению разного рода задач. Рассмотрены проблемы человеко-машинного взаимодействия, приводящие к необходимости дублировать клавиатурный ввод информации с помощью речевых команд. Показаны преимущества и недостатки речевого интерфейса для организации работы в информационных системах. Особую значимость приобретают системы, которые ориентированы на голоса школьников, особенно начальной школы. Приводится описание методики и программы, реализующей речевой ввод команд с особенностями детских голосов.
голос • распознавание речи • человеко-машинное взаимодействие • информационные системы • программное обеспечение
ВВЕДЕНИЕ
Речь — это естественный способ общения, выражения мыслей большей части людей, и для некоторой группы этот способ выражения мыслей не работает ввиду заболеваний или полученных травм. Развитые в последнее десятилетие технологии позволили дать человеку уверенную возможность общаться с машинами без ввода текста руками на клавиатуре [1]. Для того чтобы реализовать такие технологии, необходимо решить задачу распознавания речи на достаточно высоком уровне точности [2]. Распознавание речи — это технология, которая позволяет общаться с вычислительными машинами на основе понимания основ человеческой речи для идентификации, понимания и соответствующего реагирования. Сущность технологии основана на информации о голосе в виде некоторой цифровой последовательности данных, обработка которых позволяет автоматически понимать человеческую речь. Реализация технологии опирается на междисциплинарные исследования в области акустики, фонетики, лингвистики, теории информации, методов преобразования временных данных, распознавания образов и др. [3].
Последние два десятилетия связаны с бурным развитием компьютерного оборудования, программного обеспечения и информационных технологий, что позволяет решать разнообразные практические задачи, в том числе и распознавания речи. Речь человека представляет собой набор слов, которые связаны между собой смыслом. Распознавание речи включает в себя измерение звуковой волны, предварительную и тематическую обработку, а также анализ преобразования голоса в шаблоны известных слов. Важным качеством систем распознавания речи является не зависящий от произношения пользователя словарный запас. В данной статье приводится описание методики распознавания речи в виде команд в учебных информационных системах школы, вузов и т. д.
РЕЧЬ ЧЕЛОВЕКА
Можно указать несколько типов речи.
1. Изолированные слова (например, команды).
2. Связанные слова (важным аспектом распознавания является длительность паузы между словами, достаточной для того, чтобы слова речи разделить как отдельные).
3. Непрерывная речь (естественная непрерывная речь человека).
4. Спонтанная речь (отличается от естественной лишь только способом произношения, например ответы на вопросы) [4].
Кратко рассмотрим эти типы речи. Формально речь можно представить как некоторый прерывистый процесс, где паузы необходимы для разделения его элементов. Таким образом, изолированное слово является выделением определенными по длительности паузами произнесенного слова с обеих сторон. Распознавание изолированных слов, произнесенных различными людьми, вне зависимости от пола и возраста позволяет реализовать направление, связанное с управлением программными приложениями, приборами. Для любого программного приложения с определенным интерфейсом, наименование функций которого можно представить в виде словаря команд (число которых конечно), состоящих из одного слова. Поэтому управление этим программным приложением можно осуществить через клавиатуру или с помощью голоса, проговаривая необходимые команды. Решение этой задачи связано с одной проблемой, связанной с высокой чувствительностью методов распознавания к фоновому шуму, часто приводящему к пониманию ложно произнесенных слов, которые понимаются словом команды.
Другим элементом речи является система связанных слов, которые состоят из отдельных слов, но временные паузы между словами являются случайными и минимальными. Это приводит к тому, что технологии не всегда могут быть применены к распознаванию изолированных слов такого типа речи. В этом случае приходится разрабатывать технологии, которые основываются на моделях словосочетаний, которые успешно позволяют распознавать отдельные слова, произнесенные связанно. Такой подход позволяет быть использованным не только для произнесения команд, но и для систем голосового набора текста. Более сложный вариант связан с непрерывной речью, когда человек говорит в естественной манере. Технологии распознавания естественной речи самые сложные. Существует тип речи
спонтанный, когда, с одной стороны, это естественная речь, и, с другой стороны, речь не отрепетирована и не всегда соблюдается логическое единство структуры. Одним из проявлений такой речи является применение жаргонов, сокращений, идущих слов вместе и др. Системы спонтанного разговора являются уникальными и не всегда способны понимать смысл разговорного материала.
Рассмотрим некоторые аспекты приведения человеческого голоса от звуковой волны к цифровой форме. Такие программно-технические устройства функционируют в режиме непрерывного конвейера, который преобразует звуковую волну в цифровые сигналы, поступающие от микрофона через звуковую карту на программный модуль распознавания речи. Эти сигналы проходят несколько этапов обработки, где используются различные математические и статистические методы.
На рисунке 1 показаны этапы решения задачи распознавания речи. Сначала выполняется преобразование речи (звуковой волны) в цифровой сигнал в микрофоне. Затем идет этап начальной обработки сигнала, где удаляются шумы и начинается построение звуковых фрагментов, которые идут каждые 15 миллисекунд (этот диапазон времени может меняться), для каждого из которых выполняется извлечение признаков. Далее привлекаются языковые модели, с помощью которых выполняется моделирование изолированных слов, которые сопоставляются с элементами речи во фрагменте. Последний этап связан с распознаванием речи, выделением изолированного набора слов. Отметим, что задачей моделирования является установление параметров модели голоса в соответствии с характеристиками записанного человеческого голоса, на основе которого подбирается требуемый шаблон распознавания речи. Для речи есть несколько вариантов выбора характеристик распознавания: амплитуда, скорость перехода через нуль, спектральные коэффициенты (Фурье, Вэйвлет и т.д.) и др. Шаблоны элементов слов, которые используются при распознавании, представлены функциями времени, охватывающими все слово или набором значений характеристик, которые связаны с отдельными элементами слова.
Фактически, если бы не было множества мешающих факторов, существует возможность распознавания речи непосредственно из оцифрованного сигнала. Однако даже и в этом случае возникают проблемы, которые связаны с большой изменчивостью цифровой формы речевого сигнала. Уменьшение этой изменчивости возможно с помощью функций, которые ее уменьшают. Для этого устраняется эффект периодичности при разделении на составляющие всего спектра звуковых частот (низкие, средние и высокие или другие диапазоны), для которых выбирается центр (основная частота), амплитуда и полуширина на полувысоте. Другой вариант связан с представлением трендовой части в виде линейных, параболических или логарифмических, или их комбинаций. Следующий вариант применения акустических моделей — когда происходит представление каждого слова в виде отдельных звуков. В каждом языке есть различное по количеству сочетание звуков, позволяющее распознавать речь. Для построения акустических моделей
20
необходима большая база данных речи. Так, компания Google уже более 10 лет собирает различные фразы, чтобы получить статистически значимые акустические модели. Распознавание речи говорящего можно разделить на два метода: текстовый и текстово-независимый. Для первого случая поиск изолированных слов речи идет на основе шаблонов слов, а в текстово-зависимом методе говорящий произносит ключевые слова для обучения.
Звуковая волна
Рис. 1. Этапы решения задачи распознавания речи
ИССЛЕДОВАНИЯ В ОБЛАСТИ РАСПОЗНАВАНИЯ РЕЧИ
Независимо от качества полученной акустической модели, на практике все они изначально имеют довольно большой коэффициент ошибок, так как сказываются следующие факторы: особенности проговаривания слов человеком и качество входного сигнала (качество записи). Чтобы уменьшить влияние фактора особенностей произношения слов говорящим, обычно проводят адаптацию акустической модели. Для этого записываются многократно отдельные одни и те же слова из созданного набора (словаря). В итоге произнесенные слова должны быть на уровне записанных сигналов быть схожими по какому-то выбранному критерию.
Самым сложным для реализации является фактор качества входного сигнала микрофона, так как использовать профессиональную аппаратуру в большинстве случаев нет возможности, а бытовая техника вносит определенные погрешности. На записи кроме шумов технических могут присутствовать посторонние звуки, которые будут мешать правильному пониманию произнесенных слов, на уровне цифрового сигнала. Тем не менее системы распознавания речи должны учитывать эти проблемы и подстраиваться для их уменьшения.
22
Рассмотрим общий вид процесса распознавания речи и превращения его в текст (известное направление speech to text) (рис. 2).
Рис. 2. Общий вид процесса распознавания речи и превращения
его в текст
Алгоритм решения задачи распознавания речи и превращения его в текст следующий.
1. Обработка речи начинается с получения речевого сигнала. Сигнал преобразуется в набор акустических параметров.
2. Акустическая форма сигнала приводится в соответствие с внутренним алфавитом фонетических элементов.
3. Фонетически конструкции подаются для сопоставления с языковой моделью и её внутренними конструкциями.
4. С помощью языковой модели определяется набор слов и подбирается наиболее вероятный порядок слов, который преобразуется в текст.
ОБЗОР СИСТЕМ РАСПОЗНАВАНИЯ И БАЗЫ ДАННЫХ РЕЧИ
Для создания систем распознавания речи необходимы большие наборы записей речи различных людей и условий. В [5] проанализированы облачные системы распознавания речи с использованием таких систем, как Siri [https://www.apple.com/siri/], Google Speech Recognizer [https://cloud.google.com/speech-to-text] и Dragon [https://voicex.com. au/dragon-speech-recognition-software.html]. Известны системы HTK [https://htk.eng.cam.ac.uk] и Julius [https://github.com/julius-speech/ julius], которые рекомендованы для использования в образовательной деятельности в области распознавания речи. Система Kaldi [https:// kaldi-asr.org] может успешно применяться для научно-исследовательской деятельности, так как содержит необходимые для этого данные и программные инструменты. Система распознавания речи на базе CMU Sphinx [https://cmusphinx.github.io] также является популярной для разработки начального уровня программ и последующего их развития.
Однако рассмотренные выше системы распознавания опираются на базы данных речи на английском языке. Для создания систем распознавания речи необходимо дополнять существующие базы данных или создавать свои собственные. Русский язык принадлежит к семье языков, для которых характерна склонность к сочетанию одной или
нескольких грамматических морфем в одной словоформе [6]. Поэтому синтез слов русского языка имеет сложный механизм формирования словоформ как одного из представлений слова (например, в формировании числительных: третий, третья, третье, третьи, третьей, третьем, третьих).
Известны базы данных речевых записей русской речи детей в возрасте от трех месяцев до семи лет INFANTRU и CHILDRU [7]. В базе данных INFANTRU приведена речь 187 детей в виде пятиминутных фрагментов для различных эмоциональных состояний. В базе данных CHILDRU расположены записи речи 150 детей возрастного диапазона от четырех до семи лет. Известна открытая база данных русской речи [https://github.com/snakers4/open_stt], содержащей записи чистые и с зашумле-нием с временем более 1000 ч. Наиболее проработанной является набор KaLdi [http://alphacephei.com/kaLdi/kaldi-ru-0.6.tar.gz] для основных элементов русской речи. Таким образом, имеется полная возможность создать модель распознавания речи для широкого диапазона возрастов в различных условиях.
Теперь рассмотрим некоторые распространенные программные решения по распознаванию речи на сегодняшний день и их применения (таблица 1). Стоит отметить, что программные решения крупных корпораций, таких как Google, Яндекс, Apple, не будут рассмотрены ниже, так как технические решения, примененные в системах этих компаний, являются недоступными для некоммерческого использования.
Таблица 1
Общее описание и возможности программ
Название программы ОС, язык разработки Функции Возможности Источник
Voice Control System Microsoft Windows С++ Управление воспроизведением музыки, громкостью и плейлистами Управление музыкой https://github. com/TeMPOraL/ vcs
Microsoft Cognitive Services - Voice Assistant Microsoft Windows, Linux С++ С# Голосовые команды для управления, визуализация результатов Голосовой помощник https://github. com/Azure-Samples/ Cognitive-Services-Voice-Assistant
Open-source Voice Command Interface Kit С++ Управление роботами, управление устройствами и домашняя автоматизация https:// github.com/ JunaidCS032/ OpenVCIK
Speech Launcher Microsoft Windows С++ Запуск программ с помощью голосовых команд Голосовой запуск программ https://github. com/JoeBiellik/ speechlauncher
Название программы ОС, язык разработки Функции Возможности Источник
Effusion Microsoft Windows С++ Управление функциями браузера с помощью Браузер с голосовыми командами https://github. com/tanayagar/ Effusion
Victor -Voice Interactive Controller Cross-platform С# Голосовое управление ПК https://github. com/allisterb/ Victor
PiStudio Microsoft Windows C# Поворот изображения, рисование кривых, изменение яркости изображения и т.д. Программа для редактирования фотографий с голосовым управлением https://github. com/limo1996/ PiStudio
Voice Assistant Cross-platform Python Управление браузером, электронными письмами,запуск системных приложений, информирует о погоде и др. Голосовой помощник https:// github.com/ nageshsinghc4/ Voice-assistant
Voice_ gender_ detection Cross-platform Python Распознавание тендерной принадлежности по аудиофайлам https://github. com/jim-schwoebel/voice_ gender_detection
Leopard Microsoft Windows, Linux, Mac OS, web browsers, Android, iOS, Raspberry Pi Python Активация устройства с помощью голосовых команд, голосовой ввод и ведение заметок Механизм преобразования речи в текст https://github. com/Picovoice/ leopard
Jarvis - An Intelligent AI Consciousness Linux Python Открытие вебстраниц, управление громкостью, создание напоминаний и т.д. Голосовой помощник https://github. com/ggeop/ Python-ai-assistant
24
Окончание табл. 1
Название программы ОС, язык разработки Функции Возможности Источник
Hey Athena Cross-platform Python Управление умным домом, управление роботом, управление календарем и музыкой и др. Голосовой помощник https://github. com/rcbyron/ hey-athena-client
AlexaPi (the new & awesome version) Microsoft Windows, Linux, Raspberry Pi, Orange Pi Python Клиент для сервиса Amazon Alexa (голосовой помощник) https://github. com/alexa-pi/ AlexaPi
MoziHa Deep Speech Python Автономная поддержка, низкая задержка Голосовой помощник https://github. com/nebulaai/ voice-recognition
Можно заметить, что большинство программных решений со встроенной системой распознавания человеческой речи являются так называемыми голосовыми помощниками, действия которых направлены на облегчение взаимодействия пользователя с программой. Обычно подобные системы встраиваются в веб-браузеры, специализируемые профессиональные программы, программы для людей с ограниченными возможностями или непосредственно в операционную систему устройства, например в персональный компьютер, смартфон или автомобильную мультимедийную систему.
Кроме того, системы распознавания речи могут использоваться в службе поддержки клиентов для обработки стандартных телефонных запросов, а также в медицинских и юридических службах для документирования процессов. Программное обеспечение для распознавания голоса может помочь компаниям улучшить общение и преобразовать их в формат данных, который легко использовать и архивировать.
А теперь рассмотрим программные библиотеки, с помощью которых реализованы данные системы (табл. 2).
Таблица 2
Библиотеки, используемые программами
Название программы Библиотеки Источник
Voice Control System Microsoft Speech SDK https://github.com/ TeMPOraL/vcs
Open-source Voice Command Interface Kit Pocketsphinx https://github.com/ JunaidCS032/OpenVCIK
Microsoft Cognitive Services - Voice Assistant Microsoft Speech SDK https://github.com/ Azure-Samples/Cognitive-Services-Voice-Assistant
26
Окончание табл. 2
Название программы Библиотеки Источник
Speech Launcher Windows SpeechRecognitionEngine https://github.com/ JoeBiellik/speechlauncher
Effusion Windows SpeechRecognitionEngine https://github.com/ tanayagar/Effusion
Victor — Voice Interactive Controller MoziUa Voice Challenge https://github.com/allisterb/ Victor
PiStudio Speechintegrator https://github.com/ limo1996/PiStudio
Voice Assistant Speech Recognition* https://github.com/ nageshsinghc4/Voice-assistant
Voice_gender_ detection Speech Recognition* https://github.com/jim-schwoebel/voice_gender_ detection
Leopard Picovoice https://github.com/ Picovoice/leopard
Jarvis — An Intelligent AI Consciousness Google APi Speech recognition https://github.com/ggeop/ Python-ai-assistant
Hey Athena Pocketsphinx, SpeechRecognition* https://github.com/rcbyron/ hey-athena-client
AlexaPi (the new & awesome version) Pocketsphinx https://github.com/alexa-pi/ AlexaPi
Mozilla Deep Speech DeepSpeech https://github.com/nebulaai/ voice-recognition
ОПИСАНИЕ СИСТЕМЫ SPHINX
Анализ технологий распознавания речи, представленный в таблицах 1 и 2, приводит к выводу, что наиболее популярной системой является Sphinx. CMU Sphinx toolkit — пакет технологий распознавания речи [https://github.com/cmusphinx], разрабатываемый в Университете Карнеги — Меллон (CMU). Данный пакет включает набор инструментов, которые решают различные задачи и относятся к различным сферам применения, в том числе:
1) Pocketsphinx — «легкий» распознаватель речи на основе языка C, предназначенный для мобильных платформ;
2) Sphinx 4 — гибкий модифицируемый распознаватель, написанный на языке программирования Java и ориентированный на стационарные устройства;
3) Sphinxtrain — пакет инструментов для адаптации и обучения акустических моделей на основе скрытых моделей Маркова (СММ);
4) Sphinxbase — библиотека, необходимая для работы Sphinxtrain.
Важной чертой библиотеки Sphinx 4 является ее реализация исключительно на языке программирования Java, что обеспечивает мультиплатформенность написанных с ее использованием приложений. Она предоставляет программисту внешний доступ к функциям через API, предназначенный для перевода речи из аудиофайлов в текстовый формат при помощи акустических моделей CMU Sphinx. На данный момент доступны готовые модели для английского, немецкого, русского и некоторых других языков (всего 12). Библиотека поддерживает кодирование символов с помощью UTF-8, что обеспечивает поддержку множества языков, в том числе и русского. Также она предоставляет такие функции, как фильтрация фраз с неправильным грамматическим строением, фильтрация шума и распознавание речи на больших словарях. CMU Sphinx Toolkit распространяется со свободной BSDstyle лицензией, что определяет значительные экономические преимущества его использования. Sphinx 4 использует модульную архитектуру. Код внутри каждого модуля, показанного на рисунке 3, также является модульным и содержит легко заменяемые функции.
Рис. 3. Архитектура Sphinx 4
Система состоит из трех основных блоков: фронтенд (внешнее представление), декодер и база знаний. Эти части управляются внешним приложением. Блок фронтен-да принимает запись речи и параметризует ее. Внутри фронтенда модуль указания на конец речи выделяет начало и конец речи, разделяет звуковой поток на речь и не-речь и удаляет области с отсутствием речи. Он может выполнять эти операции или на речевом потоке, непосредственно, или на последовательности признаковых описаний (featured vectors), вычисленных на его основе. Блок декодера непосредственно производит распознавание. Он содержит модуль конструирования графа (лингвист), который преобразует любой тип стандартной языковой модели,
предоставленной базе знаний приложением, во внутренний формат, и вместе с информацией из словаря и одной или нескольких акустических моделей строит языковую скрытую Марковскую модель. Последняя в дальнейшем используется модулем поиска для определения структуры словарной решетки, которую следует отыскать.
Модулю поиска необходимы значения вероятностей результата состояний для каждого признакового описания, чтобы определить значения последовательностей состояний. Вероятности результата состояний вычисляются модулем вычисления вероятностей состояний (акустический счетчик) — единственным модулем, имеющим непосредственный доступ к признаковым описаниям. Вычисление значений, таким образом, является задачей «по запросу», выполняющейся тогда, когда поисковый модуль сообщает значения состояний вычисляющему модулю, которому требуются значения некоторого признакового описания [8].
Акустическая модель Sphinx 4 представляет собой статистическую репрезентацию фонем, составляющих слова. Она моделирует взаимодействие пользователя (то, как он произносит слова) с системой распознавания речи, вычисляя вероятности появления различных цепочек слов среди сказанного и выбирая наиболее вероятную (то есть выдвигает гипотезу о том, что было сказано) [9]. Данная модель основана на скрытых моделях Маркова. Акустическая модель русского языка zero_ru_cont_8k_v3 построена на основе 4000 сенонов [10, 11], составляющих части трифонов, по которым можно опознать, например, их начало. Использование сенонов позволяет сократить число распознаваемых единиц в речи.
Фонетический словарь содержит транскрипции слов в фонемы. Такой список транскрипций не слишком эффективен, так как обычно содержит не больше двух-трех вариантов произношения слова, но в большинстве случаев этого достаточно. Словарь является не единственным способом представления слов в фонемы (например, может быть заменен функцией преобразования слов, основанной на машинном обучении), но на настоящий момент используется наиболее часто [12].
Лингвистическая (языковая) модель управляет поиском слова, то есть определяет, какое слово может следовать за распознанным и ограничивает процесс сопоставления фонем со словарем, отбрасывая слова, которые в данном контексте «не подходят». Часто используемыми являются два вида языковых моделей: n-граммные (содержащие статистические данные о последовательностях слов) и модели, основанные на конечных автоматах, иногда использующие веса (также называются грамматиками). Для достижения высокой точности распознавания речи лингвистическая модель должна сильно ограничивать область поиска слова, то есть хорошо предсказывать следующее слово в цепочке. Обычно языковая модель может распознать только слова из словаря. Это вызывает проблемы с распознаванием имен собственных, которые иногда решают введением слогов или даже отдельных фонем в лингвистическую модель, что, разумеется, снижает общую точность предсказывания слов и распознавания [12].
28
Грамматики обычно служат для описания простых языков, предназначенных для отдачи каких-либо команд или управления чем-либо. Обычно грамматики пишутся вручную или генерируются алгоритмом. Чаще всего грамматики не содержат статистических вероятностей, но некоторые элементы могут иметь веса [13].
Грамматики позволяют очень точно определять структуру распознаваемой речи. Например, определенное слово может быть повторено только два или три раза. Однако такая строгость правил может и навредить, если пользователь, к примеру, пропустит слово, требуемое грамматикой в распознаваемой конструкции. В таком случае вся фраза может не распознаться. По этой причине грамматики обычно делают более свободными, чем цепочки слов в строго определенном порядке. В грамматике предпочтительнее использовать простые правила, без множества вариантов выбора, так как это замедляет распознаватель [14, 15].
АРХИТЕКТУРА ПРОТОТИПА ПРОГРАММНОЙ РЕАЛИЗАЦИИ
Для решения задач программирования с учетом вышеописанных технологий была разработана следующая архитектура системы распознавания речи, которая позволяет решать задачи школьных информационных систем. Схема архитектуры прототипа программной реализации изображена на рисунке 4. На схеме показано разбиение программной системы на компоненты (слои и модули) и их взаимосвязь.
Описание схемы, представленной на рисунке 4:
1. Пользователи — люди (учителя, школьники), управляющие программой с помощью заранее известных команд.
2. Слой представления — слой, отвечающий за взаимодействие программы и пользователя. Интерфейс приложения — интерфейс, который обеспечивает передачу информации между пользователем и программой. Пользователь дает команды программе с помощью него, а программа в свою очередь с помощью него показывает результат выполнения команды.
3. Слой бизнес-логики — слой, описывающий основные функции программы, которые направлены на достижение поставленных для нее целей. Модуль обработки данных — модуль, включающий в себя все подмодули, отвечающие за выполнение основных функций программы. Модуль бизнес-логики — модуль, который служит основой программы. На него ложатся задачи, связанные с логистикой входных и выходных данных, навигацией интерфейса программы и т.п. Sphinx 4 — модуль, отвечающий за обработку входного сигнала и за работу самого распознавания.
4. Слой доступа к данным — это слой, который предоставляет упрощенный доступ к данным, хранимым в постоянном хранилище какого-либо типа. Модуль доступа к данным — модуль, отвечающий за доступ к данным. В его функции входит чтение и запись запрошенных данных из хранилища.
5. Данные — представляют собой хранилище данных какого-либо типа. В написанной программе представлены в виде оперативной памяти персонального компьютера.
30
Рис. 4. Схема архитектуры программной реализации
ПРЕДЛАГАЕМОЕ РЕШЕНИЕ
Опираясь на архитектуру рисунка 4, был разработан алгоритм, блок-схема которого изображена на рисунке 5, на основе которого функционирует прототип программной реализации системы распознавания речи в разрабатываемой школьной информационной системе.. По алгоритму голосовая команда пользователя поступает на вход системы через устройство входа (микрофон), после чего преобразуется в звуковой сигнал и попадает на вход нейронной сети, где происходит обработка сигнала и само распознавание речи. После чего результат распознавания (команда) с выхода нейронной сети попадает в основной блок программы, где и происходит выполнение этой команды.
Например, пользователь хочет выйти из системы и произносит команду «Выйти». Его слова через микрофон персонального компьютера (устройство входа) преобразуются в звуковой сигнал и попадают в нейронную сеть системы. В нейронной сети происходит выделение речи из всего звукового сигнала, отсекание шумов, нормализация сигнала и т.п., и в конце на выход сети попадает распознанная команда «Выйти», после чего программа выполняет функции, которые приписаны для данной команды.
Рис. 5. Блок-схема алгоритма
С использованием прототипа программной реализации был разработан функционал, который является ключевым для облегчения задачи обучения учеников и студентов, особенно с ограниченными физическими возможностями, средствами голосового интерфейса. С помощью программы ученик может с помощью голосовой команды выбрать определенный предмет из списка (рис. 5), перейти с помощью голосовых команд «дальше» и «назад» к определенному заданию, дать ответ на задание и, конечно же, выйти из программы.
Данное программное решение позволяет учащимся проходить тестирования и выполнять прочие задания, ответы на которые даются односложными шаблонными словами, так как именно на словаре с небольшим количеством слов распознавание команд диктора происходит с высокой точностью. Благодаря тому, что данная система является модулем, а консольная программа — не что иное как демонстрация работы данного модуля, в дальнейшем она будет внедрена в крупную обучающую платформу для людей с ограниченными возможностями.
Распознавание речи в реальном времени происходит с помощью библиотеки, написанной на языке программирования Питон PocketSphinx [https://pypi.org/project/ pocketsphinx], для работы которой составлен словарь из необходимых для программы слов и файл JSGF с грамматикой, а также используется всем доступная русская языковая модель zero_ru.cd_cont_4000. JSpeech Grammar Format (JSGF [https://pypi.org/project/pyjsgf]) — это не зависящее от платформы и поставщика текстовое представление грамматик для использования при распознавании речи. На вход библиотеки подается звуковой поток с микрофона, а на выходе получаются готовые фразы из файла грамматики, по которым и происходит навигация в разрабатываемой программе.
Сама программа представляет собой небольшое консольное приложение для обучения учеников и студентов, в котором предлагается назвать одну из доступных на данном шаге команд для перехода к следующему шагу, например: «Выберите предмет из списка: физика, математика, биология». А при переходе к конкретному предмету предлагается выбрать задание или выйти и т. п.
Для проверки качества распознавания речи было составлено три словаря с количеством 15, 30 и 60 слов. Чтобы объединить слова из словаря в команды для управления персональным компьютеров, был создан набор JSGF грамматик. Оценка точности работы проводилось в реальном времени с помощью подачи системе голосом команд из списка. Подача команд осуществлялось одним и тем же диктором в одинаковой последовательности.
Для численной оценки точности распознавания речи был задействован стандартный критерий WER (Word Error Rate).
Для адаптации акустической модели использовался пакет Sphinxtrain — набор утилит, входящий в CMU Sphinx Toolkit и предназначенный для тренировки и адаптации некоторых типов скрытых моделей Маркова, используемых как акустические модели в Sphinx 4. В качестве материала для адаптации акустической модели выступает список wav файлов с фразами пользователя, под которые системе следует адаптироваться, и сопоставленный ему список транскрипций того, что было произнесено в этих файлах. Файлы записаны в строго определенном формате (квантование, частота дискретизации и т.п.), который определяется форматом
32
акустической модели. Апробация адаптации русскоязычной акустической модели zero_ru_.cd_cont_4000 была выполнена путем записи набора из одиннадцати аудиофайлов в формате 8 KHz, 16 bit, 128 Kbps, mono, WAV PCM little-endian signed, содержащих следующие команды:
- назад, - выход, - химия, - показать, - математика, - дальше, - физика,
- задание, - ответ, - да, - нет и других из файла грамматики. Каждому файлу была сопоставлена транскрипция произнесенного в них текста.
Запись файлов для адаптации и оценка качества распознавания проводилась в жилой комнате многоквартирного дома на встроенный микрофон персонального компьютера — для адаптации модели в нормальных условиях и в подготовленной для звукозаписи комнате на студийный микрофон — для адаптации модели в идеальных условиях.
РЕЗУЛЬТАТЫ
По результатам исследования зависимости качества системы распознавания была составлена таблица (таблица 3), по которой видно, что из-за низкого качества распознавания систем на словарях с большим количеством слов построенная на данных акустических моделях система не подходит для создания полноценного голосового интерфейса. Ведь известно, что речевой интерфейс является удобным пользователю тогда, когда ошибка распознавания (WER) голосовых команд не превышает 5%. Но исходя из того, что ошибка распознавания на словаре с количеством слов 15 у адаптированной акустической модели в нормальных условиях равна 2,78%, а у адаптированной акустической модели в идеальных условиях равна 0, можно сделать вывод, что адаптированную акустическую модель, в отличие от неадаптированной, можно использовать в создании системы распознавания с небольшим ограниченным числом команд.
Таблица 3
Результаты распознавания, %
Количество слов в словаре
15 30 60
WER неадаптированной модели 31,6 40,44 73,77
WER адаптированной модели (нормальные условия) 2,78 18,37 21,28
WER адаптированной модели (идеальные условия) 0 6,12 12,76
ЗАКЛЮЧЕНИЕ
Применение разработанной системы в качестве полноценного голосового управления персональным компьютером не является рациональным, так как высокая точность распознавания возможна лишь при малом
объеме словаря, размер которого ограничивает речевой диалог, а при большом объеме словаря, набор слов которого позволяет сделать управление возможным, сильно снижается точность распознавания; создание подобной системы для дикторонезависимого голосового управления нецелесообразно, а для создания системы голосового управления заточенной под конкретного пользователя затруднено из-за громоздкой процедуры обучения, которая нуждается в создании обширной базы обучающего материала.
Но при этом ошибка распознавания на словаре с малым количеством слов у адаптированной акустической модели является приемлемой для удобного использования такой системы, из чего можно сделать вывод, что адаптированную акустическую модель, в отличие от неадаптированной, можно использовать в создании системы распознавания с небольшим ограниченным числом команд.
Список использованных источников
1. Ронжин, А. Л. Речевой и многомодальный интерфейсы / А. Л. Ронжин, А. А. Карпов, И. В. Ли. -М.: Наука, 2007. - 173 с.
2. Сорокин, В. Н. Распознавание личности по голосу: аналитический обзор / В. Н. Сорокин, В. В. Вью-гин, А. А. Тананыкин // Информационные процессы. - 2012. - Т. 12. - № 1. - C. 1-30.
3. Газин, А. И. Методики формирования баз голосовых образов для оценки стойкости систем голосовой аутентификации личности: дисс. ... канд. техн. наук. - Пенза: ПГУ, 2011. - 184 с.
4. Тампель, И. Б. Автоматическое распознавание речи — основные этапы за 50 лет // Научно-технический вестник информационных технологий, механики и оптики. - 2015. - Т. 15. -№ 6. - С. 957-968.
5. Assefi, M., Liu, G., Wittit, M. P., & Izurieta, C. (2016). Measuring the Impact of Network Performance on Cloud-Based Speech Recognition Applications. International Journal of Computer Applications-IJCA, 23, 19-28.
6. Тампель, И. Б. Автоматическое распознавание речи / И. Б. Тампель, А. А. Карпов. - СПб: Университет ИТМО, 2016. - 138 с.
7. Ляксо, Е. Е. Базы данных речи русских детей INFANTRU и CHILDRU / Е. Е. Ляксо, О. В. Фролова, А. Д. Громова, Ю. С. Гайкова // Речевые технологии. - 2009. - № 2. - C. 14-30.
8. Lamere P., Kwok P., Walker W., Gouva E., Singh R., Raj B., Wolf P. Design of the CMU Sphinx-4 Decoder // Mitsubishi electric research laboratories, 2003, Report TR2003-110. - 5 p.
9. Jelinek, F. Statistical Methods for Speech Recognition. - The MIT Press, 2022. - 306 p.
10. Overview of the CMUSphinx toolkit // cmusphinx.github.io: Open source speech recognition toolkit resource. https://cmusphinx.github.io/wiki/tutorialoverview/ (дата обращения: 29.03.2024).
11. Остроухов, З. Creating Russian voice model for cmu-sphinx. https://github.com/zamiron/ ru4sphinx (дата обращения 30.03.2024).
12. Юлдашев, Р. Ю. Разработка системы голосового управления роботами на базе CMU Sphinx Toolkit / Р. Ю. Юлдашев, С. Д. Шелудько, В. Ю. Радыгин, А. М. Науменко // Научно-практический электронный журнал Аллея Науки. - 2017. - № 10. - C. 1-13.
13. Knight S., Gorrell G., Rayner M., Milward D., Koeling R., Lewin I. Comparing grammar-based androbust approaches to speech understanding: a case study // Proceedings of Eurospeech, 2001. - P. 1779-1782
14. Кипяткова, И. С. Автоматическая обработка и статистический анализ новостного текстового корпуса для модели языка системы распознавания русской речи / И. С. Кипяткова, А. А. Карпов // Информационно-управляющие системы. - 2010. - № 4(47). - С. 2-8.
15. Захаров, В. П. Корпусная лингвистика / В. П. Захаров, С. Ю. Богданова. - СПб.: Изд-во С.-Петерб. ун-та, 2020. - 234 с.
¿¡LbJSt Катаев М. Ю. Методика распознавания речевых команд в школьных информационных системах
METHODS OF SPEECH COMMAND RECOGNITION IN SCHOOL
INFORMATION SYSTEMS
Kataev M. Yu., Doctor of Technical Sciences, Professor of the Department of Automated Control Systems (ACS), Tomsk State University of Control Systems and Radioelectronics, Tomsk, Professor of the Department of Intelligent Information Systems and Technologies at MIPT, Dolgoprudny, e-mail: kmy@asu.tusur.ru
The article presents options for using computer sound technologies in information systems that help solve various kinds of problems. The problems of human-machine interaction leading to the need to duplicate the keyboard input of information using speech commands are considered. The advantages and disadvantages of the speech interface for organizing work in information systems are shown. Of particular importance are systems that focus on the voices of schoolchildren, especially primary schools. The description of the methodology and the program implementing the speech input of commands with the characteristics of children's voices
is given.
voice • speech recognition • human-machine interaction • information systems • software
34