Выбор оптимального алфавита марковских моделей для распознавания речи (отчет)
Материал из MachineLearning.
(→Описание системы) |
|||
(5 промежуточных версий не показаны.) | |||
Строка 4: | Строка 4: | ||
=== Цель проекта === | === Цель проекта === | ||
- | + | Построение дерева [http://ru.wikibooks.org/wiki/Скрытые_марковские_модели скрытых марковских моделей] (СММ) [http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%BB%D0%BE%D1%84%D0%BE%D0%BD аллофонов]. | |
=== Обоснование проекта === | === Обоснование проекта === | ||
- | Полученные данные могут быть использованы в качестве словаря | + | Полученные данные могут быть использованы в качестве словаря аллофонов в масштабных дикторонезависимых системах распознавания слитной русской речи. |
=== Описание данных === | === Описание данных === | ||
Строка 34: | Строка 34: | ||
'''Выход:''' | '''Выход:''' | ||
- | * Бинарное дерево скрытых марковских моделей | + | * Бинарное дерево скрытых марковских моделей аллофонов <tex>T</tex>. |
'''Функционал качества:''' | '''Функционал качества:''' | ||
Строка 43: | Строка 43: | ||
* Приращение <tex>\Delta LL</tex> меньше порога, или число элементов выборки в вершине меньше порогового. | * Приращение <tex>\Delta LL</tex> меньше порога, или число элементов выборки в вершине меньше порогового. | ||
- | |||
== Базовые предположения или гипотезы, лежащие в основе алгоритма == | == Базовые предположения или гипотезы, лежащие в основе алгоритма == | ||
- | В настоящей работе для моделирования спектральной динамики гласных и согласных используется | + | В настоящей работе для моделирования спектральной динамики гласных и согласных используется СММ, которая позволяет представить звук в виде последовательных состояний, соотносимых счленением звука на сегменты (субаллофоны). Внашем случае фонема разделяется на три отрезка (начальный и конечный формантные переходы плюс вокалическое ядро). Поэтому СММ имеет три состояния <tex>Q = 3</tex> и лево-правую матрицу переходных вероятностей <tex>A = \{a_{ij}\}</tex>. |
==Математическое описание алогритмов== | ==Математическое описание алогритмов== | ||
Строка 61: | Строка 60: | ||
<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_{j,j+1} > 0</tex> для <tex>1 \le i \le N,\; 1 \le j \le N-1</tex>. В остальных состояниях вероятность перехода <tex>a_{ | + | то есть это вероятность того, что система, находящаяся в состоянии <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_{ij} = 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>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>. | ||
- | |||
4. Распределение вероятностей начального состояния <tex>\pi = \left\{ \pi_i \right\}</tex>, где | 4. Распределение вероятностей начального состояния <tex>\pi = \left\{ \pi_i \right\}</tex>, где | ||
Строка 80: | Строка 79: | ||
::<tex>\vec{c}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k)}{\sum_{t=1}^T \sum_{k=1}^M \gamma_t(j,k)}</tex> | ::<tex>\vec{c}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k)}{\sum_{t=1}^T \sum_{k=1}^M \gamma_t(j,k)}</tex> | ||
- | |||
::<tex>\vec{\mu}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) O_t}{\sum_{t=1}^T \gamma_t(j,k)}</tex> | ::<tex>\vec{\mu}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) O_t}{\sum_{t=1}^T \gamma_t(j,k)}</tex> | ||
- | |||
::<tex>\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)}</tex>, | ::<tex>\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)}</tex>, | ||
Строка 95: | Строка 92: | ||
===Алгоритм построения решающего дерева ID3=== | ===Алгоритм построения решающего дерева ID3=== | ||
- | В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Идея заключается в последовательном дроблении выборки на две части до тех пор, пока дальнейшее расщепление не перестанет давать достаточное приращение информативности. | + | В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Идея заключается в последовательном дроблении выборки на две части до тех пор, пока дальнейшее расщепление не перестанет давать достаточное приращение информативности. |
Процедура ''LearnID3'' выглядит следующим образом | Процедура ''LearnID3'' выглядит следующим образом | ||
Строка 103: | Строка 100: | ||
* <tex>U</tex> - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме; | * <tex>U</tex> - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме; | ||
- | * <tex>Q</tex> - множество вопросов к контесту фонемы, | + | * <tex>Q</tex> - множество вопросов к контесту фонемы, расщепляющих выборку на 2 класса. |
'''Выход:''' | '''Выход:''' | ||
Строка 111: | Строка 108: | ||
# найти предикат с максимальной информативностью: <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 | + | # '''eсли''' (<tex>U_0</tex> = ∅ или <tex>U_1</tex> = ∅ ) или <tex>I(q,U)</tex> ≤ <tex>I_0</tex> '''то''' |
#:: создать новый лист <tex>v</tex>. | #:: создать новый лист <tex>v</tex>. | ||
# '''иначе''' | # '''иначе''' | ||
Строка 119: | Строка 116: | ||
# вернуть <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> считается алгоритмом прямого-обратного хода. Т.е для каждого вопроса выборка из родительского узла разбивается на 2 части, на каждой части обучается СММ. Считается приращение <tex>\Delta LL</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> задается шаблоном: |
- | + | ||
- | + | ||
- | + | ||
- | + | left-center+right, | |
- | + | где left и right - названия классов левого и правого контекста, а center - имя класса центрального элемента, * - любая фонема. Например вопрос выделяющий все гласные: | |
+ | |||
+ | *-ALL_VOWELS+*. | ||
+ | |||
+ | Предредукция или критерий раннего останова досрочно прекращает ветвление, если максимальное приращение информативности <tex>I(q,U)</tex> меньше порогового <tex>I_0</tex>. | ||
== Описание системы == | == Описание системы == | ||
- | + | Описание системы находится в файле [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Dorofeev2009Allophone/ Systemdocs.doc] Файлы системы можно скачать здесь: [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Dorofeev2009Allophone/ BuildTreeAllophone] | |
- | + | ||
== Отчет о вычислительных экспериментах == | == Отчет о вычислительных экспериментах == | ||
- | === | + | === Выбор оптимальных значений параметров алгоритма === |
- | = | + | Выбор оптимального количества компонент смеси. Вычисления проводились дважды, видно что есть небольшой разброс. Оптимальный параметр M = 6. |
+ | |||
+ | [[Изображение:mixture_A.png]] | ||
+ | |||
+ | Выбор минимального размера представительной выборки для гласных (фонемы А) и согласных (Т) | ||
+ | минимальный размер равен примерно 200 фонем. | ||
+ | |||
+ | [[Изображение:Length_A_6.png]] | ||
+ | [[Изображение:Length_T_6.png]] | ||
- | |||
== Отчет о полученных результатах == | == Отчет о полученных результатах == | ||
- | + | Фрагмент дерева (первые 3 уровня), правая ветвь ответ на вопрос к контексту фонемы ДА, левая - НЕТ | |
+ | Формат представления вершин следующий: | ||
+ | * для узлов | ||
+ | название_вопроса | ||
+ | [NNNNx -xx.x] | ||
+ | где NNNNx - число элементов в вершине, -xx.x - нормированный логарифм правдоподобия | ||
+ | * для терминальных вершин | ||
+ | {список превалирующих фонем} | ||
+ | [NNNNx -xx.x] | ||
+ | <pre> | ||
+ | ALL_HARD_CONS_FRONT | ||
+ | [1696x, -10.6] | ||
+ | ALL_NASAL | ||
+ | [7345x, -13.4] | ||
+ | | ALL_LATERALS | ||
+ | | [5649x, -13.5] | ||
+ | ALL_HARD_CONS_VOICED | ||
+ | [26379x, -14.5] | ||
+ | | | ALL_SOFT_CONS_VOICELESS | ||
+ | | | [6476x, -13.7] | ||
+ | | ALL_SOFT_CONS | ||
+ | | [19034x, -14.0] | ||
+ | | ALL_HARD_CONS | ||
+ | | [12558x, -13.4] | ||
+ | ALL_CONS | ||
+ | [39983x, -15.0] | ||
+ | | { W I E A O } | ||
+ | | [820x, -12.3] | ||
+ | | L_ALL_SOFT_NASAL | ||
+ | | [5308x, -12.8] | ||
+ | | | L_ALL_SOFT_CONS_VOICELESS | ||
+ | | | [4488x, -12.5] | ||
+ | L_ALL_SOFT_CONS | ||
+ | [13604x, -14.1] | ||
+ | | { A U JA Y O } | ||
+ | | [635x, -12.2] | ||
+ | R_PHRASE_BOUNDARY | ||
+ | [8296x, -14.0] | ||
+ | L_ALL_HARD_BILAB | ||
+ | [7661x, -13.7] | ||
+ | </pre> | ||
+ | |||
+ | Вопрос представляет собой следующее (* - любая фонема) например: | ||
+ | |||
+ | L_ALL_SOFT_CONS = ALL_SOFT_CONS-*+* | ||
+ | |||
+ | где ''ALL_SOFT_CONS'' класс фонем | ||
+ | |||
+ | ALL_SOFT_CONS = {B' P' D' T' G' K' CH' JH' V' F' Z' S' X' XV' ZH' SH' M' N' L' R' J'} | ||
+ | |||
+ | == Список литературы == | ||
+ | * К. В. Воронцов, Лекции по логическим алгоритмам классификации | ||
+ | * Л. Рабинер, Скрытые марковские модели, ТИИЭР №2, февраль 1989 | ||
+ | * Рабинер, Шафер, Цифровая обработка речевых сигналов, М., Радио и связь, 1980 | ||
+ | * X. Huang, A. Acero, H. Hon, Spoken Language Processing, A Guide to Theory, Algorithm and System Development, Prentice-Hall Inc, 2001 | ||
- | {{ | + | {{ЗаданиеВыполнено|Дорофеев Данила|В.В. Стрижов|15 декабря 2009}} |
__NOTOC__ | __NOTOC__ | ||
+ | [[Категория:Практика и вычислительные эксперименты]] |
Текущая версия
Введение в проект
Описание проекта
Цель проекта
Построение дерева скрытых марковских моделей (СММ) аллофонов.
Обоснование проекта
Полученные данные могут быть использованы в качестве словаря аллофонов в масштабных дикторонезависимых системах распознавания слитной русской речи.
Описание данных
В качестве речевого материала используется обучающая выборка базы данных TeCoRus, предназначенная для приложений, использующих телефонный канал связи. Обучающая выборка представляет собой шестичасовую запись чтения 6 дикторами и состоит из 510 отдельных предложений, отсегментированных и размеченных вручную. Звуковые данные перведены в мел-кепстральное представление, т.е. последовательность 12 компонентных мел-кепстральных векторов с шириной окна квантования 512 точек.
Критерии качества
Критерием качества служит логарифм правдоподобия контрольной выборки относительно модели.
Требования к проекту
Логарифм правдоподобия для нашего дерева должн быть больше логарифма правдоподобия для базового. В качестве базового выбран набор марковских моделей соответсвующих фонемам русского языка.
Выполнимость проекта
Сложность распознавания ухудшается высокой вариативностю произношения одних и тех же звуков, а так же различными артикулярными характеристиками речевого аппарата у разных дикторов. Так же в данных присутсвует фоновый шум.
Используемые методы
В данной работе для статистического моделирования спектральной динамики гласных и согласных звуков применяется скрытая марковская модель (СММ) из 3-х последовательных состояний. Классификация аллофонов осуществляется с помощью бинарных деревьев. Построение дерева осуществляется алгоритмом ID3.
Постановка задачи
Вход:
- Обучающая выборка , элементы которой , где последовательность 12 мел-кепстральных векторов соответствует звуковой реализации фонемы, а - правый, левый контекст аллофона и центральный элемент.
- Список бинарных вопросов адресованных к центральному элементу аллофона. Служит множеством элементарных предикатов при построении бинарного дерева.
Выход:
- Бинарное дерево скрытых марковских моделей аллофонов .
Функционал качества:
- Логарифм правдоподобия выборки относительно модели есть
Критерии останова:
- Приращение меньше порога, или число элементов выборки в вершине меньше порогового.
Базовые предположения или гипотезы, лежащие в основе алгоритма
В настоящей работе для моделирования спектральной динамики гласных и согласных используется СММ, которая позволяет представить звук в виде последовательных состояний, соотносимых счленением звука на сегменты (субаллофоны). Внашем случае фонема разделяется на три отрезка (начальный и конечный формантные переходы плюс вокалическое ядро). Поэтому СММ имеет три состояния и лево-правую матрицу переходных вероятностей .
Математическое описание алогритмов
Обучение скрытой марковской модели (СММ)
Составляющие СММ:
1. — общее количество состояний в модели. В нашей задаче . Мы обозначим совокупность состояний модели множеством , а текущее состояние в момент времени как .
2. Матрица вероятностей переходов , где
то есть это вероятность того, что система, находящаяся в состоянии , перейдет в состояние . В контексте нашей задачи используется лево-правая матрица переходов. То есть и для . В остальных состояниях вероятность перехода .
3. ,
где - моделируемый вектор наблюдений, - весовой коэффициент -й компоненты в состоянии .
- гауссова плотность вероятности с вектором средних значений и ковариационной матрицей .
4. Распределение вероятностей начального состояния , где то есть вероятность того, что это начальное состояние модели. В нашем случае всегда начинаем с 1-го состояния т.е.
Совокупность значений и - это скрытая марковская модель, которая может сгенерировать наблюдаемую последовательность.
Для решения задачи обучения СММ требуется подобрать параметры модели таким образом, чтобы максимизировать . В этой работе используется метод Баума-Уэлча, EM-метод переоценки параметров СММ. Формулы повторного оценивания для коэффициентов , и , составляющих плотности имеют вид.
- ,
где штрих означает транспонирование вектора, а - вероятность того,что (при заданной последовательности наблюдений) в момент времени модель находиться в состоянии , причём наблюдаемый в этот момент вектор порождён -й компонентой смеси плотности, т.е.
- ,
где - прямая переменная, а - обратная переменная.
Алгоритм построения решающего дерева ID3
В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Идея заключается в последовательном дроблении выборки на две части до тех пор, пока дальнейшее расщепление не перестанет давать достаточное приращение информативности.
Процедура LearnID3 выглядит следующим образом
Вход:
- - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме;
- - множество вопросов к контесту фонемы, расщепляющих выборку на 2 класса.
Выход:
- возвращает корневую вершину дерева
- найти предикат с максимальной информативностью:
- разбить выборку на две части по предикату ;
- eсли ( = ∅ или = ∅ ) или ≤ то
- создать новый лист .
- иначе
- создать новую вершину ;
- ; (построить левое поддерево)
- ; (построить правое поддерево)
- вернуть
Для построения полного дерева рекурсивная процедура LearnID3 применяется ко всей выборке.
В качаестве критерия ветвления используется максимум приращения логарифма правдоподобия при ращеплении , где - логарифм правдоподобия родительской вершины, а и - логарифм правдоподобия левой и правой дочерней вершин соответственно. Логарифм правдоподобия выборки относительно СММ есть считается алгоритмом прямого-обратного хода. Т.е для каждого вопроса выборка из родительского узла разбивается на 2 части, на каждой части обучается СММ. Считается приращение и выбирется вопрос дающий максимальное приращение информативности.
Множество вопросов к контексту фонемы (элементарных предикатов) задается шаблоном:
left-center+right,
где left и right - названия классов левого и правого контекста, а center - имя класса центрального элемента, * - любая фонема. Например вопрос выделяющий все гласные:
*-ALL_VOWELS+*.
Предредукция или критерий раннего останова досрочно прекращает ветвление, если максимальное приращение информативности меньше порогового .
Описание системы
Описание системы находится в файле Systemdocs.doc Файлы системы можно скачать здесь: BuildTreeAllophone
Отчет о вычислительных экспериментах
Выбор оптимальных значений параметров алгоритма
Выбор оптимального количества компонент смеси. Вычисления проводились дважды, видно что есть небольшой разброс. Оптимальный параметр M = 6.
Выбор минимального размера представительной выборки для гласных (фонемы А) и согласных (Т) минимальный размер равен примерно 200 фонем.
Отчет о полученных результатах
Фрагмент дерева (первые 3 уровня), правая ветвь ответ на вопрос к контексту фонемы ДА, левая - НЕТ Формат представления вершин следующий:
- для узлов
название_вопроса [NNNNx -xx.x]
где NNNNx - число элементов в вершине, -xx.x - нормированный логарифм правдоподобия
- для терминальных вершин
{список превалирующих фонем} [NNNNx -xx.x]
ALL_HARD_CONS_FRONT [1696x, -10.6] ALL_NASAL [7345x, -13.4] | ALL_LATERALS | [5649x, -13.5] ALL_HARD_CONS_VOICED [26379x, -14.5] | | ALL_SOFT_CONS_VOICELESS | | [6476x, -13.7] | ALL_SOFT_CONS | [19034x, -14.0] | ALL_HARD_CONS | [12558x, -13.4] ALL_CONS [39983x, -15.0] | { W I E A O } | [820x, -12.3] | L_ALL_SOFT_NASAL | [5308x, -12.8] | | L_ALL_SOFT_CONS_VOICELESS | | [4488x, -12.5] L_ALL_SOFT_CONS [13604x, -14.1] | { A U JA Y O } | [635x, -12.2] R_PHRASE_BOUNDARY [8296x, -14.0] L_ALL_HARD_BILAB [7661x, -13.7]
Вопрос представляет собой следующее (* - любая фонема) например:
L_ALL_SOFT_CONS = ALL_SOFT_CONS-*+*
где ALL_SOFT_CONS класс фонем
ALL_SOFT_CONS = {B' P' D' T' G' K' CH' JH' V' F' Z' S' X' XV' ZH' SH' M' N' L' R' J'}
Список литературы
- К. В. Воронцов, Лекции по логическим алгоритмам классификации
- Л. Рабинер, Скрытые марковские модели, ТИИЭР №2, февраль 1989
- Рабинер, Шафер, Цифровая обработка речевых сигналов, М., Радио и связь, 1980
- X. Huang, A. Acero, H. Hon, Spoken Language Processing, A Guide to Theory, Algorithm and System Development, Prentice-Hall Inc, 2001
Данная статья была создана в рамках учебного задания.
См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |