Смекни!
smekni.com

Система управления распознаванием речевой информации (стр. 6 из 10)

Рис. 2.1. Схема простой нейросети. Зелёным обозначены входные элементы, жёлтым — выходной элемент

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

· Алгоритмы обратного распространения:

Сложнее обстоит дело с многослойными сетями, так как изначально неизвестны желаемые выходы слоев сети (за исключением последнего) и их невозможно обучить, руководствуясь только величиной ошибок на выходе сети, как это было с однослойной сетью.

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

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

2.2Применение скрытых Марковских моделей для распознавания речи.

· Введение в скрытые Марковские модели (СММ). Решение задачи распознавания.

Скрытой Марковской моделью (СММ) называется модель состоящая из N состояний, в каждом из которых некоторая система может принимать одно из M значений какого-либо параметра. Вероятности переходов между состояниями задается матрицей вероятностей A={aij}, где aij – вероятность перехода из i-го в j-е состояние. Вероятности выпадения каждого из M значений параметра в каждом из N состояний задается вектором B={bj(k)}, где bj(k) – вероятность выпадения k-го значения параметра в j-м состоянии. Вероятность наступления начального состояния задается вектором π={πi}, где πi – вероятность того, что в начальный момент система окажется в i-м состоянии.

Таким образом, скрытой Марковской моделью называется тройка λ={A,B,π}. Использование скрытых Марковских моделей для распознавания речи основано на двух приближениях:

1) Речь может быть разбита на фрагменты, соответствующие состояниям в СММ, параметры речи в пределах каждого фрагмента считаются постоянными.

2) Вероятность каждого фрагмента зависит только от текущего состояния системы и не зависит от предыдущих состояний.

Модель называется «скрытой», так как нас, как правило, не интересует конкретная последовательность состояний, в которой пребывает система. Мы либо подаем на вход системы последовательности типа O={o1,o2,…oi} - где каждое oi – значение параметра (одно из M), принимаемое в i-й момент времени, а на выходе ожидаем модель λ={A,B,π}с максимальной вероятностью генерирующую такую последовательность, - либо наоборот подаем на вход параметры модели и генерируем порождаемую ей последовательность. И в том и другом случае система выступает как “черный ящик”, в котором скрыты действительные состояния системы, а связанная с ней модель заслуживает названия скрытой.

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

Фрагмент речи разбивается на отрезки, в течении которых параметры речи можно считать постоянными. Для каждого отрезка вычисляются характерные признаки и подбирается запись кодовой книги с наиболее подходящими характеристиками. Номера этих записей и образуют последовательность наблюдений O={o1,o2,…oi} для модели Маркова. Каждому слову словаря соответствует одна такая последовательность. Далее A– матрица вероятностей переходов из одного минимального отрезка речи (номера записи кодовой книги) в другой минимальный отрезок речи (номер записи кодовой книги). В – вероятности выпадения в каждом состоянии конкретного номера кодовой книги рис. 2.2

Рис. 2.2 кодовая книга

На этапе настройки моделей Маркова мы применяем алгоритм Баума- Уэлча для имеющегося словаря и сопоставления каждому из его слов матрицы Aи B.

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

· Алгоритм Баума-Уэлча.

Необходимо подобрать параметры скрытой модели Маркова так, чтобы максимизировать вероятность данной последовательности наблюдений.

Вводятся переменные

ξt(i,j) = P(qt=Si,qt+1=Sj|O,λ)

которые показывают вероятность того, что при заданной последовательности наблюдений O система в моменты времени t и t+1 будет находиться соответственно в состояниях Si и Sj. Используя прямую и обратную переменные запишем:

Введем переменные вероятности того, что при заданной последовательности наблюдений O система в момент времени t будет находиться в состоянии Si:

При этом мы можем вычислить ожидаемое число переходов из состояния Si: равно

а ожидаемое число переходов из состояния Si в состояние Sj

Исходя из этого можно получить формулы для переоценки параметров модели Маркова:

π*i=

(i)

Выражение

в формуле для b*ij (k) означает что суммируются только те γt(j) , для которых значение состояния равно k, то есть Ot = k.

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


3. МОДЕЛИРОВАНИЕ РАБОТЫ БЛОКА ВЫДЕЛЕНИЯНАЧАЛА И ОКОНЧАНИЯ СЛОВА, КОЛИЧЕСТВА ЗВУКОВ НА ЭВМ

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

Речевой сигнал с микрофона вводился в ЭВМ с помощью 16-ти разрядного преобразователя аналог-код. Частоту дискретизации выбрали 8 кГц. Далее сигнал подвергался анализу. Запись трех гласных звуков «а-o-e» и слов «Hello», «Start», «Stop», «Next» и «Back» производилась с помощью специального звукового редактора «COOL».

Обработка речевых сигналов производилась в ЭВМ с помощью программного пакета «Matlab7.6.0». Входные данные представляли собой массив дискретизированных чисел и содержались в отдельном файле данных. В созданной программе было произведено моделирование работы компаратора. Было выбрано три уровня квантования «0», «1», «-1» и был установлен шумовой порог, т.к. шумы хоть и были незначительны, но все же могли повлиять на результаты.

Далее в программе производился подсчет количества переходов через нуль на интервале в 100, 200 и 300 отсчетов. Таким образом, моделировалась работа блока состоящего из ЦЛЗ и реверсивного счетчика. Были вычислены первая и вторая конечные разности полной фазовой функции. Более подробно можно рассмотреть на примере фонем «а-о-е» (рисунок 4.1).

По такому же принципу были проведены эксперименты со словами, такими как «Notepad», «Open», «Close», «Pause» и с более сложными словами «Calculator», «Microsoft» и «Explorer».

Далее стояла задача собрать статистические данные по выделению количества звуков в нескольких словах. Для статистики были взяты следующие слова: «Hello» и «Start». Каждое слово было произнесено шестью людьми по десять раз. Результаты статистических данных приведены в таблицах.

Таблица 4.1 – Статистические данные по слову «Hello»

Номер эксперимента 0 1 2 3 4 5 6 7 8 9
Количество звуков 4 4 4 4 3 5 4 4 3 4
10 11 12 13 14 15 16 17 18 19 20 21
5 5 3 3 4 3 4 4 4 5 4 4
22 23 24 25 26 27 28 29 30 31 32 33
4 4 4 4 4 4 4 4 4 4 4 4
34 35 36 37 38 39 40 41 42 43 44 45
4 4 4 3 4 4 5 4 4 4 4 4
46 47 48 49 50 51 52 53 54 55 56 57
3 3 4 4 4 4 4 4 4 4 4 4
58 59 60
4 4 4

Итого получается, что процент распознавания количества звуков в слове «Hello» равен порядка 79%.