Таблица 4.2 – Статистические данные по слову «Start»
Номер эксперимента | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Количество звуков | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
4 | 4 | 4 | 4 | 4 | 2 | 3 | 3 | 4 | 3 | 3 | 4 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
4 | 4 | 4 | 4 | 4 | 4 | 4 | 3 | 4 | 3 | 4 | 3 |
46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 |
4 | 4 | 4 | 4 | 4 | 3 | 3 | 4 | 3 | 3 | 4 | 3 |
58 | 59 | 60 |
4 | 3 | 4 |
Итого получается, что процент распознавания количества звуков в слове «Start» равен порядка 75%.
5. РАЗРАБОТКА ИНОФРМАЦИОННОГО ОБЕСПЕЧЕНИЯ
В структуре программы можно выделить логические модули. Каждому модулю присущи свои задачи, методы, вызываемые функции. Структурная схема изображена на рисунке 5.1.
Рисунок 5.1 – Структурная схема программы
Основной графический модуль – это графический интерфейс общения пользователя с программой. Пользователь при нажатии на кнопки вызывает выполнение функций из других модулей.
Модуль выбора режима работы – это модуль для взаимодействия пользователя с программой с целью установки режима работы.
Модуль ввода речевого сигнала – это модуль, который отвечает за запись сигнала с микрофона.
Модуль создания БД эталонов – это модуль, который анализирует входной сигнал в режиме создания эталона, переводит в цифровой вид и создает БД.
Модуль анализа звукового сигнала – это модуль, который анализирует входной сигнал в режиме распознавания, и переводит в цифровой вид.
Модуль распознавания речи – это модуль, который проводит сопоставление входного сигнала и эталона в БД.
В начале работы на экран выводится главное окно программы. После этого на динамик микрофона подается звуковое сообщение, за который отвечает модуль ввода речевого сигнала. Затем на главном окне пользователь выбирает режим работы программы. Если выбран режим создания эталона, за который отвечает модуль создания БД эталонов, то программа обрабатывает и сохраняет входной сигнал с микрофона и выводит спектр на экран. Если же выбран режим распознавания, то программа обрабатывает результаты и сравнивает с заранее записанным эталоном в БД, сохраняет входной сигнал и переходит к его распознаванию с помощью вычисления первой и второй конечной разности полной фазовой функции, т.е. определяем количество звуков в данном слове, что видно из проделанного ранее моделирования, Определяем начало и конец слова с помощью выделения огибающей, что показано на рис.3.2. Результат распознавания выводится на дисплей.
Программа имеет дружественный интерфейс и легка в освоении. Графический интерфейс проектируется в среде разработки VisualC#.net. В данной системе можно быстро и качественно разрабатывать графические приложения, используя готовые компоненты.
Интерфейс программы разработан с учетом информативности получаемых пользователем данных. На рисунке 5.2 показано основное окно программы.
В верхней строке окна программы находится панель управления со стандартными вкладками. Ниже располагается панель с вкладками, которые позволяют пользователю выбирать режим обработки поступающего с микрофона звукового сигнала. Непосредственно над графиками представлена информационная панель, которая дает пользователю возможность в реальном режиме времени наблюдать общее количество команд в БД, количество распознанных команд, последнюю распознанную команду и номер испытания.
На верхнем графике изображена частотная характеристика входного звукового сигнала, а на следующем – амплитудная характеристика распознанного сигнала.
В нижней части окна программы имеется поле событий, в котором выводятся сообщения о работе аппаратной части.
При запуске программы вызывается функция «static void Main()». Эта функция инициализирует приложение путем вызова функции Application.EnableVisualStyles();. Далее запускается функция, которая составляет стиль программы путем вызова следующей функции Application.SetCompatibleTextRenderingDefault(false); . После нее запускается функция, которая создает диалоговое окно программы путем вызова функции Application.Run(new Form1()); и запускает приложение. В теле этой функции так же предусмотрена обработка исключений try – catch.
5.4.2 Основной графический модуль
Основной графический модуль в исходном коде программы представлен как класс Form1. Он содержит следующие основные графические элементы:
1) PictureBox1 :Вывод графического изображения 1
2) PictureBox2:Вывод графического изображения 2
3) textBox2 : Вывод распознанного слова
Выбор режима работы программы осуществляется нажатием кнопки «Mode». При ее нажатии вызывается функция-обработчик этого события «private void recognitionToolStripMenuItem_Click(object sender, EventArgs e)» Функция проверяет и сохраняет указанный режим работы.
Запись и обработка звукового сигнала осуществляется функцией «private void toolStripDropDownButton1_Click(object sender, EventArgs e)». В этой функции задается частота дискретизации – 16 кГц. Длина сигнала по времени определяется с помощью функции GetTickCount(). Дискретезированный и отфильтрованный сигнал записывается в буфер matrix[].
При создании эталона необходимо нажать кнопку «AddCommand» в режиме создания эталона. После нажатия этой кнопки вызывается функция-обработчик этого события «private void toolStripButton1_Click(object sender, EventArgs e)». Эта функция активирует кнопку «AddCommand» . После этого вызывается функция «public bool Record()» класса WaveIn, которая начинает запись сигнала с микрофона в буфер и сохраняет этот сигнал как эталон. После того как сигнал записан, нажимается кнопка «Stop». После нажатия этой кнопки вызывается функция-обработчик события «private void toolStripButton1_Click(object sender, EventArgs e)». Эта функция активирует кнопку «Stop» и останавливает запись путем вызова функции WaveIn.StopRecord() класса WaveIn.
Анализ и распознавание звукового сигнала происходит в функции «VoidAudioFrame.WaveIn(short *buf,int len)» после того как сигнал записан, дискретезирован и отфильтрован.
Перед началом работы клиента, непосредственно после запуска программы необходимо ее настроить. Для этого потребуется подсоединенный к компьютеру микрофон.
Для настройки системы необходимо после запуска создать эталон слова для последующего распознавания. Для этого нужно в поле выбора режима работы программы нажать кнопку создания эталона т.е. «AddCommand», в левом верхнем углу главного окна программы на панели с вкладками. После нажатия кнопки начнется запись сигнала. Далее следует произнести слово и остановить запись путем нажатия кнопки «Stop» в левом верхнем углу экрана.
После того как эталон создан и сохранен, необходимо переключить режим работы программы в «Mode- Recognition». После переключения в «Mode- Recognition» необходимо включить запись сигнала путем нажатия кнопки «File-->StartRecognition», произнести слово, которое требуется распознать, и остановить запись путем нажатия кнопки «Stop».