Оглавление.Введение. Общие вопросы компьютерного распознавания и порождения речи.1. Программирование звука в Windows. 2. Основы цифровой обработки звуковых сигналов. 3. Определение параметров речевого сигнала. 4. Алгоритмы распознавания. 5. Использование Microsoft Speech API 5.1 для синтеза и распознавания речи. 6. Использование Microsoft Speech API 4.0 для синтеза речи. Ссылки. Об авторе. |
Компьютерное распознавание и порождение речиГлава 4. Алгоритмы распознавания.
4.2. Применение скрытых марковских моделей для распознавания речи.Скрытой Марковской моделью (СММ) называется модель состоящая из N состояний, в каждом из которых некоторая система может принимать одно из M значений какого-либо параметра. Вероятности переходов между состояниями задается матрицей вероятностей A={aij}, где aij – вероятность перехода из i-го в j-е состояние. Вероятности выпадения каждого из M значений параметра в каждом из N состояний задается вектором B={bj(k)}, где bj(k) – вероятность выпадения k-го значения параметра в j-м состоянии. Вероятность наступления начального состояния задается вектором π={πi},
где πi – вероятность того, что в начальный момент система окажется в i-м состоянии.
1) Речь может быть разбита на фрагменты, соответствующие состояниям в СММ, параметры речи в пределах каждого фрагмента считаются постоянными. 2) Вероятность каждого фрагмента зависит только от текущего состояния системы и не зависит от предыдущих состояний. Модель называется «скрытой», так как нас, как правило, не интересует конкретная последовательность состояний, в которой пребывает система. Мы либо подаем на вход системы последовательности типа O={o1,o2,…o?} - где каждое oi – значение параметра (одно из M), принимаемое в i-й момент времени, а на выходе ожидаем модель ?={A,B,?}с максимальной вероятностью генерирующую такую последовательность, - либо наоборот подаем на вход параметры модели и генерируем порождаемую ей последовательность. И в том и другом случае система выступает как “черный ящик”, в котором скрыты действительные состояния системы, а связанная с ней модель заслуживает названия скрытой. Если последние высказывания несколько запутали вас, то не оттаивайтесь: дальше все должно проясниться. Относительно скрытых Марковских моделей решаются как правило три задачи: Задача 1. Дана последовательность наблюдений O={o1,o2,…oτ} и модель λ={A,B,π}. Необходимо вычислить вероятность появления указанной последовательности для данной модели.
Задача 2. Дана последовательность наблюдений O={o1,o2,…oτ} и модель λ={A,B,π}. Необходимо выбрать последовательность состояний Q= {q1,q2,…qτ}, которая с наибольшей вероятностью порождает указанную последовательность.
Задача 3. Дана последовательность наблюдений O={o1,o2,…oτ} и модель λ={A,B,π}. Необходимо подобрать параметры модели так, чтобы максимизировать вероятность данной последовательности наблюдений.
Рассмотрим алгоритмы решения указанных задач. Итак, Решение задачи 1, распознавание.Наиболее простое решение состоит в том, чтобы посчитать вероятность появления последовательности наблюдений для каждой возможной последовательности состояний модели, а затем сложить эти вероятности. Пусть Q={Q1,Q2,…Qs}- множество всех возможных последовательностей состояний той же длины, что последовательность O. Их число будет равно S=Nτ -1, где N – число состояний, τ – длина последовательности. Пусть i-я последовательность Qi представляет ряд состояний {qi1,qi2,…,qiτ}. Тогда для i-й последовательности состояний вероятность появления последовательности наблюдений O равна:
Вероятность же появления самой i-й последовательности состояний равна
По определению скрытой Марковской модели вероятности наблюдения в каждом из состояний зависит только от самого состояния и не зависит от предыдущих состояний. Поэтому вероятность появления указанной последовательности наблюдений O для нашей модели можно рассчитать так:
Очевидно, что нам потребуется (2?-1) N? умножений и N? -1 сложений, что уже для N=10 состояний и длины последовательности наблюдений ?=10 дает число вычислений, равное
19*1010+1010-1=2*1011-1. Это очень много.
Алгоритм прямого хода. Вводится переменная ?t(i) – вероятность того, что к моменту времени t система будет находиться в i-м состоянии, а последовательность порожденных ею до этого момента наблюдений равна о1,о2,…,ot.
1 шаг. Для всех i от 1 до N α0(i)=πi bi(o1) 2 шаг. Для всех t от 1 до ? и для всех j от 1 до N
3 шаг.
Алгоритм обратного хода. Вводится переменная τt(i) – вероятность того, что к моменту времени t система будет находиться в i-м состоянии,
а последовательность порожденных ею после этого наблюдений равна оt+1,
оt+2,…oτ-1,oτ
1 шаг. Для всех i от 1 до N βτ(i)=1 2 шаг. Для всех t, идущих в обратном порядке от τ-1 до 1 и для всех i от 1 до N
3 шаг.
Для осуществления распознавания на основе скрытых моделей Маркова необходимо построить кодовую книгу, содержащую множество эталонных наборов для характерных признаков речи (например, коэффициентов линейного предсказания, распределения энергии по частотам и т.д.). Для этого записываются эталонные речевые фрагменты, разбиваются на элементарные составляющие (отрезки речи, в течении которых можно считать параметры речевого сигнала постоянными) и для каждого из них вычисляются значения характерных признаков. Одной элементарной составляющей будет соответствовать один набор признаков из множества наборов признаков словаря.
На рисунке каждая запись кодовой книги относится к одному набору, каждое поле записи – содержит значение одного признака. Построив кодовую книгу, мы должны настроить модель распознавания. Одна скрытая модель Маркова ?={A,B,?}ставится в соответствие некоторой распознаваемой единице речи, как правило, слову. Фрагмент речи разбивается на отрезки, в течении которых параметры речи можно считать постоянными. Для каждого отрезка вычисляются характерные признаки и подбирается запись кодовой книги с наиболее подходящими характеристиками. Номера этих записей и образуют последовательность наблюдений O={o1,o2,…o?} для модели Маркова. Каждому слову словаря соответствует одна такая последовательность. Далее A – матрица вероятностей переходов из одного минимального отрезка речи (номера записи кодовой книги) в другой минимальный отрезок речи (номер записи кодовой книги). В – вероятности выпадения в каждом состоянии конкретного номера кодовой книги. В нашем случае ?i=1 при i=0, ?i=0 при i>0. На этапе настройки моделей Маркова мы применяем алгоритм Баума-Уэлча для имеющегося словаря и сопоставления каждому из его слов матрицы A и B. При распознавании мы разбиваем речь на отрезки, для каждого вычисляем набор номеров кодовой страницы и применяем алгоритм прямого или обратного хода для вычисления вероятности соответствия данного звукового фрагмента определенному слову словаря. Если вероятность превышает некоторое пороговое значение – слово считается распознанным. |