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

Речевой интерфейс для интеллектуализации ввода исходного кода программ

Автор: Федяев О. И., Бакаленко В. С., Савкова Д. Г.
Источник: 15 международная научная конференция им. Т. А. Таран Интеллектуальный анализ информации (ИАИ–2015), Киев, 20–21 мая 2015 г. — К.: Просвіта, 2015. — c. 21–28.

Аннотация

Федяев О. И., Бакаленко В. С., Савкова Д. Г. Речевой интерфейс для интеллектуализации ввода исходного кода программ. Построена функциональная схема системы речевого ввода текста программы на языке Паскаль, обеспечивающая более естественный способ набора исходного кода программ. Разработана и исследована акустико-лингвистическая модель распознавания речи, основанная на скрытых марковских моделях.

Введение

В настоящее время набор текстов программ на языках программирования осуществляется вручную с помощью клавиатуры, что требует хороших навыков работы с клавиатурой, большого внимания и напряжения на зрение. Такой способ ввода для человека является трудоемким и не совсем удобным [1]. Устранение этого недостатка возможно путём успешного решения задачи автоматического распознавания речи.

Задача голосового ввода текста программ заключается в распознавании лексем языка программирования. Обозначим через w — пространство образов (лексем), f(t) — функцию, которая выражает в каждый момент времени t амплитудно-частотную характеристику сигнала, g(f) — решающее правило для оценки f(t). Задача распознавания речи заключается в построении такого решающего правила g(f), которое бы позволяло проводить распознавание с минимальным числом ошибок.

Основными проблемами в решении этой задачи являются: неограниченность словаря используемых слов; необходимость высокой скорости распознавания; необходимость высокой точности распознавания. Если использовать ограниченный объём словаря лексем языка программирования, то невозможно учесть всевозможные варианты названий переменных и функций. Скорость распознавания должна быть приемлемой, чтобы программист мог диктовать код и видеть в реальном времени предварительные результаты распознавания. Кроме того, от точности распознавания зависит результат компиляции введенного голосом исходного кода.

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

Описание инструментальной среды CMU Sphinx

На сегодняшний день Sphinx [3], является самым популярным и работоспособным из открытых движков. Он разработан в университете Карнеги-Меллона с участием Массачусетског CMU нологического института и Sun Microsystems. CMU Sphinx распространяется на условиях лицензии BSD, т. е. доступен для коммерческого и некоммерческого использования. Одним из достоинств Sphinx является поддержка множества языков и способность создават CMU и собственные модели распознавателей речи.

Sphinx-4, как версия из семейства CMU Sphinx, состоит из двух компонентов: тренера (trainer) и декодера. Тренер создаёт акустическую модель, адаптированную под конкретные потребности, а декодер выполняет собственно распознавание. Архитектура Sphinx-4 на верхнем уровне относительно проста. Как показано на рис. 1, она включает FrontEnd, клиентскую часть (приложение), декодер и базу знаний. Блок FrontEnd отвечает за сбор, аннотирование и обработку входных данных. Кроме того, он извлекает объекты из входных данных для чтения с помощью декодера. Аннотации, предусмотренные во FrontEnd, включают в себя начальный и конечный сегменты данных. Операции, выполняемые на данном этапе, реализуют шумоподавление, автоматическую регулировку усиления, анализ Фурье, спектральную фильтрацию Мэла и др. База знаний содержит информацию необходимую для декодера. Эта информация включает в себя акустическую модель и модель языка. В свою очередь декодер может послать команду базе знаний, требующую от базы знаний динамически изменять себя на основе результатов поиска. Эти модификации могут заключаться в переключении акустических моделей и/или языка модели, а также обновлении некоторых параметров, например, дисперсии преобразования для акустических моделей.

Структура взаимодействия Sphinx-4 с приложением

Рисунок 1 — Структура взаимодействия Sphinx-4 с приложением

Декодер выполняет основную часть работы. Он считывает данные с FrontEnd, сопоставляет их с данными из базы знаний и откликом приложения, а также выполняет поиск в пространстве наиболее вероятных последовательностей слов, которые входят в число претендентов на выбор. Термин «пространство поиска» означает описание наиболее вероятных последовательностей слов, которые динамически обновляются с помощью декодера в процессе декодирования. В отличие от множества других архитектур распознавателей речи Sphinx-4 позволяет приложению контролировать множество функций речевого движка. Во время декодирования приложение может получать данные от декодера. Эти данные позволяют приложению отслеживать, как происходит процесс декодирования, а также влиять на процесс декодирования до его завершения. Кроме того, приложение может обновлять базу знаний в любое время. Но главным достоинством Sphinx является возможность описания проектируемого распознавателя на уровне формальных моделей, что и послужило основанием для выбора Sphinx-4 в качестве инструментария.

Функциональная схема распознавания речи на основе скрытых марковских моделей

При разработке речевого интерфейса основная проблема заключается в автоматическом распознавании речи. В данной работе она решалась на основе скрытых марковских моделей, используемых в инструментальной системе Sphinx. Как известно, марковская модель [4] — это вероятностный автомат с конечным числом состояний, изменяющий своё состояние один раз в единицу времени. Она содержит состояния и вероятности переходов между состояниями в виде матрицы переходов. Учитывая, что марковская модель описывает вероятностные процессы, а динамические характеристики речи человека по своей природе нестабильны и не поддаются строгому математическому описанию, было принято обоснованное решение построить распознаватель речи на основе аппарата скрытых марковских моделей.

Функциональная схема системы распознавания речи

Рисунок 2 — Функциональная схема системы распознавания речи

На рис. 2 показана функциональная схема процесса распознавания. Программист при голосовом вводе текста программы произносит лексемы языка в микрофон, звуковая карта преобразовывает звук в цифровой сигнал. На этапе предварительной обработки сигнал преобразуется в последовательность векторов характеристик. В них выделяются фрагменты, которые соответствуют словам (лексемам). Каждое слово разбивается на фонемы и им сопоставляются наиболее вероятные состояния скрытой марковской модели. В результате марковская модель для каждого входного речевого образа определяет текстовое изображение слова.

Акустико-лингвистическая модель системы распознавания лексем языка

Технологией Sphinx предусмотрена в первую очередь разработка акустико-лингвистической модели языка [5]. В неё входят: словарь с транскрипциями, грамматика и обучающее множество для акустической модели. В словаре содержится список слов и транскрипции к ним. Транскрипции должны состоять исключительно из фонем, которые присутствуют в списке фонем. Помимо слов есть и другие звуки, не несущие в себе смысловой нагрузки: звуки дыхания, различный шум. Языковая модель — это совокупность вероятностей появления слов в речи. Для обучения модуля распознавания записывается аудиобаза, которая оформляется в виде обучающих примеров с правильными ответами. Каждая аудиозапись должна иметь своё текстовое представление. Чем больше материала в аудиобазе, тем лучше качество распознавания. Элементы информационной структуры лингвистической модели показаны на рис. 3. По введенным данным лингвистической модели распознаваемого языка система Sphinx формирует акустическую модель [12], которая используется в системе речевого интерфейса ввода исходного кода программ. Акустическая модель состоит из скрытых марковских моделей, необходимых для распознавания речи. Она настраивается на основе сформированного обучающего множества. Для нахождения неизвестных параметров скрытой марковской модели Sphinx использует алгоритм Баума-Велша [6]. Акустическая модель содержит вероятности появления кластеров, которые объединяются в фонемы. По распознанным фонемам, транскрипциям в словаре и вероятностям появления слов из языковой модели определяется наиболее вероятное слово.

Информационная структура лингвистической модели

Рисунок 3 — Информационная структура лингвистической модели

Анализ качества речевого ввода текста программы

Самые лучшие показатели работы модуля распознавания речи (см. рис.4) были тогда, когда он настроен на дикторозависимое распознавание. Для того чтобы настроить речевой интерфейс под конкретного диктора необходимо сформировать соответствующее обучающее множество для скрытой марковской модели. Был проведен эксперимент на словаре из 100 слов языка Паскаль. Для этого словаря использовались обучающие множества на 5, 10, 15, 20, 25 повторений каждого слова. Слова из обучающего множества произносились в разном порядке. Анализ результатов распознавания показал, что для качественного обучения достаточно включить в обучающее множество 25 повторений каждого слова, т. к. процент ошибок снижается до 10%, что является приемлемым результатом для распознавания изолированных слов.

В другом эксперименте использовались имеющиеся грамматические связи в языке программирования для улучшения точности распознавания. Как известно, грамматика языка Паскаль формально описывается в форме БНФ, что делает возможным реализацию этой идеи. В этом случае при распознавании лексем дополнительно может быть учтён также контекст, в котором находится произнесённая лексема языка. Благодаря этому появилась возможность при распознавании озвученных лексем исключать из множества претендентов те, которые не удовлетворяют грамматике.

Вид пользовательского интерфейса при работе системы речевого ввода текста программ

Рисунок 4 — Вид пользовательского интерфейса при работе системы речевого ввода текста программ

Выводы

По показателю точности распознавания можно сделать следующие выводы:

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

Список использованной литературы

1. CMU Sphinx Open Source Toolkit For Speech Recognition Evaluation [Электронный ресурс]. — Режим доступа: http://cmusphinx.sourceforge.net/
2. Савкова Д. Г., Федяев О. И. Акустико-лингвистическая модель распознавания речи //Сборник материалов IV Всеукраинской научно-технической конференции студентов, аспирантов и молодых ученых «Информационные управляющие системы и компьютерный мониторинг» ИУС и КМ — 2013 — Донецк, ДонНТУ — 2013, — В 2 тт. — Т.1. с. 442–445.
3. Савкова Д. Г., Бондаренко И. Ю. Опыт применения инструментальной системы Sphinx для решения задачи распознавания речевых команд управления компьютерными системами // Сборник материалом 3-й Всеукраинской научно- практической конференции «Информационные управляющие системы и компьютерный мониторинг» ИУС КМ–2012. — Донецк: ДонНТУ. — 2012. — с. 111–117.
4. Рабинер Л. Р. Скрытые марковские модели и их применение в избранных приложениях при распознавании речи// ТИИЭР. — 1984. — Т.72, № 2. — с. 86–120.
5. Welcome Russian Evaluation [Электронный ресурс]. — Режим доступа: http://www.voxforge.org/ru
6. Example of the Baum-Welch Algorithm [Электронный ресурс]. — Режим доступа: http://www.indiana.edu/~iulg/moss/hmmcalculations.pdf. — Заголовок с экрана.