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

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 7: Строка 7:
=== Обоснование проекта ===
=== Обоснование проекта ===
-
Полученные данные могут быть использованы в качестве словаря аллофонов в масштабных дикторонезависимых системах распознавания слитной русской речи.
+
Полученные данные могут быть использованы в качестве словаря [http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%BB%D0%BE%D1%84%D0%BE%D0%BD аллофонов] в масштабных дикторонезависимых системах распознавания слитной русской речи.
=== Описание данных ===
=== Описание данных ===
-
В качестве речевого материала используется обучающая выборка базы данных TeCoRus, предназначенная для приложений, использующих телефонный канал связи. Обучающая выборка представляет собой шестичасовую запись чтения 6 дикторами и состоит из 510 отдельных предложений, отсегментированных и размеченных вручную
+
В качестве речевого материала используется обучающая выборка базы данных TeCoRus, предназначенная для приложений, использующих телефонный канал связи. Обучающая выборка представляет собой шестичасовую запись чтения 6 дикторами и состоит из 510 отдельных предложений, отсегментированных и размеченных вручную. Звуковые данные перведены в [http://en.wikipedia.org/wiki/Mel-frequency_cepstrum мел-кепстральное] представление, т.е. последовательность 12 компонентных мел-кепстральных векторов с шириной окна квантования 512 точек.
=== Критерии качества ===
=== Критерии качества ===
Строка 22: Строка 22:
=== Используемые методы ===
=== Используемые методы ===
-
В данной работе для статистического моделирования спектральной динамики гласных и согласных звуков применяется скрытая марковская модель (СММ) из 3-х последовательных состояний. Классификация аллофонов осуществляется с помощью бинарных деревьев. Для построения бинарного дерева решений разработан набор вопросов, зависящих от контекста и адресованных к центральному элементу аллофона.
+
В данной работе для статистического моделирования спектральной динамики гласных и согласных звуков применяется [http://ru.wikibooks.org/wiki/%D0%A1%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5_%D0%BC%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8#.D0.A2.D1.80.D0.B8_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D1.85_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87.D0.B8_.D0.A1.D0.9C.D0.9C скрытая марковская модель] (СММ) из 3-х последовательных состояний. Классификация аллофонов осуществляется с помощью бинарных деревьев. Построение дерева осуществляется алгоритмом ID3.
== Постановка задачи ==
== Постановка задачи ==
Строка 28: Строка 28:
'''Вход: '''
'''Вход: '''
-
Обучающая выборка <tex>X</tex>, элементы которой <tex>x_i = \{ M, C \}</tex>, где <tex>M</tex> последовательность 12 мел-кепстральных векторов соответствует звуковой реализации фонемы, а <tex>C = \{c_{left}, c_{center}, c_{right} \}</tex> - правый, левый контекст аллофона и центральный элемент.
+
* Обучающая выборка <tex>X</tex>, элементы которой <tex>x_i = \{ M, C \}</tex>, где <tex>M</tex> последовательность 12 мел-кепстральных векторов соответствует звуковой реализации фонемы, а <tex>C = \{c_{left}, c_{center}, c_{right} \}</tex> - правый, левый контекст аллофона и центральный элемент.
-
Список бинарных вопросов <tex>Q</tex> адресованных к центральному элементу аллофона. Служит множеством элементарных предикатов при построении бинарного дерева.
+
* Список бинарных вопросов <tex>Q</tex> адресованных к центральному элементу аллофона. Служит множеством элементарных предикатов при построении бинарного дерева.
'''Выход:'''
'''Выход:'''
-
Бинарное дерево скрытых марковских моделей (СММ) аллофонов <tex>T</tex>.
+
* Бинарное дерево скрытых марковских моделей (СММ) аллофонов <tex>T</tex>.
'''Функционал качества:'''
'''Функционал качества:'''
-
Логарифм правдоподобия выборки <tex>\{X\}_1^n</tex> относительно модели <tex>\lambda</tex> есть <tex>LL = \sum_{i=1}^n \log P(M_i|\lambda)</tex>
+
* Логарифм правдоподобия выборки <tex>\{X\}_1^n</tex> относительно модели <tex>\lambda</tex> есть <tex>LL = \sum_{i=1}^n \log P(M_i|\lambda)</tex>
'''Критерии останова: '''
'''Критерии останова: '''
-
Приращение <tex>\Delta LL</tex> меньше порога, или число элементов выборки в вершине меньше порогового.
+
* Приращение <tex>\Delta LL</tex> меньше порога, или число элементов выборки в вершине меньше порогового.
== Базовые предположения или гипотезы, лежащие в основе алгоритма ==
== Базовые предположения или гипотезы, лежащие в основе алгоритма ==
-
Мы вводим понятие обобщённого (типичного) аллофона, т.е.
+
В настоящей работе для моделирования спектральной динамики гласных и согласных используется скрытая марковская модель СММ, которая позволяет представить звук в виде последовательных состояний, соотносимых счленением звука на сегменты (субаллофоны). Внашем случае фонема разделяется на три отрезка одинаковой длины (начальный и конечный формантные переходы плюс вокалическое ядро). Поэтому СММ имеет три состояния <tex>Q = 3</tex> и лево-правую матрицу переходных вероятностей <tex>A = \{a_{ij}\}</tex>.
-
В настоящей работе для моделирования спектральной динамики гласных используется скрытая марковская модель СММ, которая позволяет представить звук в виде последовательных состояний, соотносимых счленением звука на сегменты (субаллофоны). Внашем случае гласный разделяется на три отрезка одинаковой длины (начальный и конечный формантные переходы плюс вокалическое ядро). Поэтому СММ имеет три состояния <tex>Q = 3</tex> и лево-правую матрицу переходных вероятностей <tex>A = \{a_{ij}\}</tex>.
+
==Математическое описание алогритмов==
==Математическое описание алогритмов==
Строка 56: Строка 55:
'''Составляющие СММ:'''
'''Составляющие СММ:'''
-
1. <tex>Q</tex> — общее количество состояний в модели. В нашей задаче <tex>Q = 3</tex> Мы обозначим совокупность состояний модели множеством <tex>S = \left\{ S_1, S_2, \ldots S_N \right\}</tex>, а текущее состояние в момент времени <tex>t</tex> как <tex>q_t</tex>.
+
1. <tex>Q</tex> — общее количество состояний в модели. В нашей задаче <tex>Q = 3</tex>. Мы обозначим совокупность состояний модели множеством <tex>S = \left\{ S_1, S_2, \ldots S_N \right\}</tex>, а текущее состояние в момент времени <tex>t</tex> как <tex>q_t</tex>.
-
2. Матрица вероятностей переходов <tex>A = \left\{ a_{ij} \right\}</tex>, где
+
2. Матрица вероятностей переходов <tex>A = \{ a_{ij} \}</tex>, где
-
<tex>a_{ij} = P \left[ q_{t+1} = S_j | q_t =S_i \right],:: 1 \le i, j \le N,</tex>
+
<tex>a_{ij} = P \left[ q_{t+1} = S_j | q_t =S_i \right],\; 1 \le i, j \le N,</tex>
-
то есть это вероятность того, что система, находящаяся в состоянии <tex>S_i</tex>, перейдет в состояние <tex>S_j</tex>. В контексте нашей задачи используется лево-правая матрица переходов. То есть <tex>a_{ii} > 0</tex> и <tex>a_{i,i+1} > 0</tex> для <tex>1 \le i \le N-1</tex>. В остальных состояниях вероятность перехода <tex>a_{ii} = 0</tex>.
+
то есть это вероятность того, что система, находящаяся в состоянии <tex>S_i</tex>, перейдет в состояние <tex>S_j</tex>. В контексте нашей задачи используется лево-правая матрица переходов. То есть <tex>a_{ii} > 0</tex> и <tex>a_{j,j+1} > 0</tex> для <tex>1 \le i \le N,\; 1 \le j \le N-1</tex>. В остальных состояниях вероятность перехода <tex>a_{ii} = 0</tex>.
-
3. <tex>b_i(O) = \sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm}),:: 1 \le i, j \le N</tex>,
+
3. <tex>b_i(O) = \sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm}), 1 \le i, j \le N</tex>,
-
где <tex>\vec{O}</tex> - моделируемый вектор наблюдений, <tex>c_{jm}</tex> - весовой коэффициент <tex>m</tex>-й компоненты в состоянии <tex>j</tex>.
+
где <tex>O</tex> - моделируемый вектор наблюдений, <tex>c_{jm}</tex> - весовой коэффициент <tex>m</tex>-й компоненты в состоянии <tex>j</tex>.
<tex>N(O, \mu_{jm}, \Sigma_{jm})</tex> - гауссова плотность вероятности с вектором средних значений <tex>\mu_{jm}</tex> и ковариационной матрицей <tex>\Sigma_{jm}</tex>.
<tex>N(O, \mu_{jm}, \Sigma_{jm})</tex> - гауссова плотность вероятности с вектором средних значений <tex>\mu_{jm}</tex> и ковариационной матрицей <tex>\Sigma_{jm}</tex>.
У нас используется <tex>M = 6</tex> компонет смеси.
У нас используется <tex>M = 6</tex> компонет смеси.
Строка 98: Строка 97:
В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Идея заключается в последовательном дроблении выборки на две части до тех пор, пока дальнейшее расщепление не перестанет давать достаточное приращение информативности.
В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Идея заключается в последовательном дроблении выборки на две части до тех пор, пока дальнейшее расщепление не перестанет давать достаточное приращение информативности.
-
Процедура LearnID3 выглядит следующим образом
+
Процедура ''LearnID3'' выглядит следующим образом
'''Вход:'''
'''Вход:'''
-
<tex>U</tex> - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме;
+
* <tex>U</tex> - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме;
-
<tex>Q</tex> - множество вопросов к контесту фонемы, ращепляющих выборку на 2 класса.
+
* <tex>Q</tex> - множество вопросов к контесту фонемы, ращепляющих выборку на 2 класса.
'''Выход:'''
'''Выход:'''
-
возвращает корневую вершину дерева
+
* возвращает корневую вершину дерева <tex>T</tex>
-
#
 
# найти предикат с максимальной информативностью: <tex>q = \arg\max_{q\in Q} I(q,U)</tex>
# найти предикат с максимальной информативностью: <tex>q = \arg\max_{q\in Q} I(q,U)</tex>
# разбить выборку на две части <tex>U = U_0 \cup U_1</tex> по предикату <tex>q</tex>;
# разбить выборку на две части <tex>U = U_0 \cup U_1</tex> по предикату <tex>q</tex>;
-
# eсли (<tex>U_0 = 0 <tex> или <tex>U_1 = 0 <tex>) или <tex>I(q,U)</tex> \leq <tex>I_0</tex> то
+
# '''eсли''' (<tex>U_0 = </tex> или <tex>U_1 = </tex>) или <tex>I(q,U) I_0</tex> '''то'''
-
# ::создать новый лист <tex>v</tex>.
+
#:: создать новый лист <tex>v</tex>.
-
# иначе
+
# '''иначе'''
#:: создать новую вершину <tex>v</tex>;
#:: создать новую вершину <tex>v</tex>;
#:: <tex>L_v = LearnID3(U_0)</tex>; (построить левое поддерево)
#:: <tex>L_v = LearnID3(U_0)</tex>; (построить левое поддерево)
Строка 121: Строка 119:
# вернуть <tex>(v)</tex>
# вернуть <tex>(v)</tex>
-
Для построения полного дерева рекурсивная процедура LearnID3 применяется ко всей выборке.
+
Для построения полного дерева рекурсивная процедура ''LearnID3'' применяется ко всей выборке.
-
В качаестве критерия ветвления используется максимум приращения логарифма правдоподобия <tex>\Delta LL = (LL_l + LL_r) - LL_p</tex>, где <tex>LL_p</tex> - логарифм правдоподобия родительской вершины, а <tex>LL_l</tex> и <tex>LL_r</tex> - логарифм правдоподобия левой и правой дочерней вершин соответственно. Логарифм правдоподобия выборки <tex>\{X\}_1^n</tex> относительно СММ <tex>\lambda</tex> есть <tex>LL = \sum_{i=1}^n \log P(M_i|\lambda)</tex> считается алгоритмом прямого-обратного хода.
+
В качаестве критерия ветвления используется максимум приращения логарифма правдоподобия при ращеплении <tex>\Delta LL = (LL_l + LL_r) - LL_p</tex>, где <tex>LL_p</tex> - логарифм правдоподобия родительской вершины, а <tex>LL_l</tex> и <tex>LL_r</tex> - логарифм правдоподобия левой и правой дочерней вершин соответственно. Логарифм правдоподобия выборки <tex>\{X\}_1^n</tex> относительно СММ <tex>\lambda</tex> есть <tex>LL = \sum_{i=1}^n \log P(M_i|\lambda)</tex> считается алгоритмом прямого-обратного хода. Т.е для каждого вопроса выборка из родительского узла разбивается на 2 части, на каждой части обучается СММ. Считается приращение <tex>\Delta LL</tex> и выбирется вопрос дающий максимальное приращение информативности.
Множество вопросов к контексту фонемы (элементарных предикатов) <tex>Q</tex> задается шаблоном:
Множество вопросов к контексту фонемы (элементарных предикатов) <tex>Q</tex> задается шаблоном:

Версия 09:36, 23 февраля 2010

Введение в проект

Описание проекта

Цель проекта

Цель проекта -- выбор оптимального набора марковских моделей для распознавания речи.

Обоснование проекта

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

Описание данных

В качестве речевого материала используется обучающая выборка базы данных TeCoRus, предназначенная для приложений, использующих телефонный канал связи. Обучающая выборка представляет собой шестичасовую запись чтения 6 дикторами и состоит из 510 отдельных предложений, отсегментированных и размеченных вручную. Звуковые данные перведены в мел-кепстральное представление, т.е. последовательность 12 компонентных мел-кепстральных векторов с шириной окна квантования 512 точек.

Критерии качества

Критерием качества служит логарифм правдоподобия контрольной выборки относительно модели.

Требования к проекту

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

Выполнимость проекта

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

Используемые методы

В данной работе для статистического моделирования спектральной динамики гласных и согласных звуков применяется скрытая марковская модель (СММ) из 3-х последовательных состояний. Классификация аллофонов осуществляется с помощью бинарных деревьев. Построение дерева осуществляется алгоритмом ID3.

Постановка задачи

Вход:

  • Обучающая выборка X, элементы которой x_i = \{ M, C \}, где M последовательность 12 мел-кепстральных векторов соответствует звуковой реализации фонемы, а C = \{c_{left}, c_{center}, c_{right} \} - правый, левый контекст аллофона и центральный элемент.
  • Список бинарных вопросов Q адресованных к центральному элементу аллофона. Служит множеством элементарных предикатов при построении бинарного дерева.

Выход:

  • Бинарное дерево скрытых марковских моделей (СММ) аллофонов T.

Функционал качества:

  • Логарифм правдоподобия выборки \{X\}_1^n относительно модели \lambda есть LL = \sum_{i=1}^n \log P(M_i|\lambda)

Критерии останова:

  • Приращение \Delta LL меньше порога, или число элементов выборки в вершине меньше порогового.


Базовые предположения или гипотезы, лежащие в основе алгоритма

В настоящей работе для моделирования спектральной динамики гласных и согласных используется скрытая марковская модель СММ, которая позволяет представить звук в виде последовательных состояний, соотносимых счленением звука на сегменты (субаллофоны). Внашем случае фонема разделяется на три отрезка одинаковой длины (начальный и конечный формантные переходы плюс вокалическое ядро). Поэтому СММ имеет три состояния Q = 3 и лево-правую матрицу переходных вероятностей A = \{a_{ij}\}.

Математическое описание алогритмов

Обучение скрытой марковской модели (СММ)

Составляющие СММ:

1. Q — общее количество состояний в модели. В нашей задаче Q = 3. Мы обозначим совокупность состояний модели множеством S = \left\{ S_1, S_2, \ldots S_N \right\}, а текущее состояние в момент времени t как q_t.

2. Матрица вероятностей переходов A = \{ a_{ij} \}, где

a_{ij} = P \left[ q_{t+1} = S_j | q_t =S_i \right],\; 1 \le i, j \le N,

то есть это вероятность того, что система, находящаяся в состоянии S_i, перейдет в состояние S_j. В контексте нашей задачи используется лево-правая матрица переходов. То есть a_{ii} > 0 и a_{j,j+1} > 0 для 1 \le i \le N,\; 1 \le j \le N-1. В остальных состояниях вероятность перехода a_{ii} = 0.

3. b_i(O) = \sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm}), 1 \le i, j \le N,

где O - моделируемый вектор наблюдений, c_{jm} - весовой коэффициент m-й компоненты в состоянии j. N(O, \mu_{jm}, \Sigma_{jm}) - гауссова плотность вероятности с вектором средних значений \mu_{jm} и ковариационной матрицей \Sigma_{jm}. У нас используется M = 6 компонет смеси.

4. Распределение вероятностей начального состояния \pi = \left\{ \pi_i \right\}, где \pi_i = P[q_1 = S_i],      1 \le i \le N,     то есть вероятность того, что S_i это начальное состояние модели. В нашем случае всегда начинаем с 1-го состояния т.е. \pi_1 = 1

Совокупность значений Q,A,B и \pi - это скрытая марковская модель, которая может сгенерировать наблюдаемую последовательность.

Для решения задачи обучения СММ требуется подобрать параметры модели \lambda = (A,B,\pi) таким образом, чтобы максимизировать P(O | \lambda). В этой работе используется метод Баума-Уэлча, EM-метод переоценки параметров СММ. Формулы повторного оценивания для коэффициентов c_{jm}, \mu_{jm} и \Sigma_{jm}, составляющих плотности имеют вид.

\vec{c}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k)}{\sum_{t=1}^T \sum_{k=1}^M  \gamma_t(j,k)}


\vec{\mu}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) O_t}{\sum_{t=1}^T  \gamma_t(j,k)}


\vec{\Sigma}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) (O_t - \mu_{jk})(O_t - \mu_{jk})\prime}{\sum_{t=1}^T \gamma_t(j,k)},

где штрих означает транспонирование вектора, а \gamma_t(j,k) - вероятность того,что (при заданной последовательности наблюдений) в момент времени t модель находиться в состоянии j, причём наблюдаемый в этот момент вектор O_t порождён k-й компонентой смеси плотности, т.е.

\gamma_t(j,k) =  \left( \frac{\alpha_t(j) \beta_t(j)}{\sum_{j=1}^N \alpha_t(j) \beta_t(j)} \right) \left( \frac{c_{jk} N(O, \mu_{jm}, \Sigma_{jm})}{\sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm})}  \right),

где \alpha_t(i) = P(O_1 O_2 \ldots O_t, q_t = S_i|\lambda) - прямая переменная, а \beta_t(i) = P(O_{t+1} O_{t+2} \ldots O_t, q_t = S_i|\lambda) - обратная переменная.

Алгоритм построения решающего дерева ID3

В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Идея заключается в последовательном дроблении выборки на две части до тех пор, пока дальнейшее расщепление не перестанет давать достаточное приращение информативности.

Процедура LearnID3 выглядит следующим образом

Вход:

  • U - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме;
  • Q - множество вопросов к контесту фонемы, ращепляющих выборку на 2 класса.

Выход:

  • возвращает корневую вершину дерева T
  1. найти предикат с максимальной информативностью: q = \arg\max_{q\in Q} I(q,U)
  2. разбить выборку на две части U = U_0 \cup U_1 по предикату q;
  3. eсли (U_0 = ∅ или U_1 = ∅ ) или I(q,U) ≤ I_0 то
    создать новый лист v.
  4. иначе
    создать новую вершину v;
    L_v = LearnID3(U_0); (построить левое поддерево)
    L_r = LearnID3(U_1); (построить правое поддерево)
  5. вернуть (v)

Для построения полного дерева рекурсивная процедура LearnID3 применяется ко всей выборке. В качаестве критерия ветвления используется максимум приращения логарифма правдоподобия при ращеплении \Delta LL = (LL_l + LL_r) - LL_p, где LL_p - логарифм правдоподобия родительской вершины, а LL_l и LL_r - логарифм правдоподобия левой и правой дочерней вершин соответственно. Логарифм правдоподобия выборки \{X\}_1^n относительно СММ \lambda есть LL = \sum_{i=1}^n \log P(M_i|\lambda) считается алгоритмом прямого-обратного хода. Т.е для каждого вопроса выборка из родительского узла разбивается на 2 части, на каждой части обучается СММ. Считается приращение \Delta LL и выбирется вопрос дающий максимальное приращение информативности.

Множество вопросов к контексту фонемы (элементарных предикатов) Q задается шаблоном:

 left-center+right,

где left и right - левый и правый контекст, а center - сама фонема. Например вопрос выделяющий все гласные:

 *-ALL_VOWELS+*.

Предредукция или критерий раннего останова досрочно прекращает ветвление, если максимальное приращение информативности I(q,U) меньше порогового I_0.

Варианты или модификации

Описание системы

  • Ссылка на файл system.docs
  • Ссылка на файлы системы

Отчет о вычислительных экспериментах

Визуальный анализ работы алгоритма

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

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

Отчет о полученных результатах

Список литературы

Данная статья является непроверенным учебным заданием.
Студент: Участник:Дорофеев Данила
Преподаватель: Участник:В.В. Стрижов
Срок: 15 декабря 2009

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Личные инструменты