Изменения

Перейти к: навигация, поиск

Участница:DespairedController/Черновик:Распознавание речи

26 867 байт добавлено, 20:21, 1 января 2021
копия оригинальной викистраницы
'''Распознавание речи''' (англ. Speech Recognition) {{---}} процесс преобразования речевого сигнала в цифровую информацию.

Задачей распознавания является сопоставление набору акустических признаков речевого сигнала или наблюдений
<math>X(x_1 ,...,x_n)</math> последовательности слов
<math>W(w_1 ,...,w_k)</math>, имеющих наибольшую вероятность правдоподобия среди всех кандидатов. Для этого используется формула Байеса:

<center><math>W = argmax \left[\frac{P(W)*P(X|W)}{P(X)}\right]</math></center>

Причем, в процессе распознавания вероятность уже полученных признаков Р(Х) не подлежит оптимизации и знаменатель в формуле не испльзуется:

<center><math>W = argmax[P(W)*P(X|W)]</math></center>


==Классификация систем распознавания речи==

Системы распознавания речи классифицируются<ref>''Федосин С.А., Еремин А. Ю.'' Классификация систем распознавания речи. — Саранск. : МГУ им. Н.П. Огарева, 2009. — С. 3.</ref>:
* по размеру словаря (ограниченный набор слов, словарь большого размера);
* по зависимости от диктора (дикторозависимые и дикторонезависимые системы);
* по типу речи (слитная или раздельная речь);
* по назначению (системы диктовки, командные системы);
* по используемому алгоритму (нейронные сети, скрытые Марковские модели, динамическое программирование);
* по типу структурной единицы (фразы, слова, фонемы, дифоны, аллофоны);
* по принципу выделения структурных единиц (распознавание по шаблону, выделение лексических элементов).

==Структура систем распознавания речи==

Системы распознавания речи впервые появились в 1952 году. С тех пор методы распознавания не раз менялись.
Ранее использовались такие методы и алгоритмы, как:
* Динамическое программирование (Dynamic Time Warping) - временные динамические алгоритмы, выполняющие классификацию на основе сравнения с эталоном.
* Методы дискриминантного анализа, основанные на Байесовской дискриминации (Bayesian discrimination).
* Скрытые Марковские Модели (Hidden Markov Model).
* Нейронные сети (Neural Networks).
В настоящее время, перечисленные выше методы как правило комбинируются. Их сочетание позволяет получить более высокое качество распознавания, чем использование каждой модели отдельно.

Системы распознавания речи имеют следующие основные модули:
* Акустическая модель
* Языковая модель
* Декодер

===Акустическая модель===
''Фонема'' (phoneme) {{---}} элементарная единица человеческой речи. Примерами фонем являются транскрипции в формате IPA {{---}} так, слово hello состоит из фонем [hɛˈləʊ].

''Акустическая модель'' {{---}} это функция, принимающая на вход признаки на небольшом участке акустического сигнала (фрейме) и выдающая распределение вероятностей различных фонем на этом фрейме. Таким образом, акустическая модель дает возможность по звуку восстановить, что было произнесено {{---}} с той или иной степенью уверенности.<br>
Самой популярной реализацией акустической модели является [[Скрытые Марковские модели|скрытая Марковская модель (СММ)]], в которой скрытыми состояниями являются фонемы, а наблюдениями {{---}} распределения вероятностей признаков на фрейме.

Рассмотрим подробнее акустическую модель на основе СММ для слова ''six'':
{|align="center"
|-valign="top"
|[[Файл:HMM_six.jpeg|800px|мини|Акустическая модель для слова ''six''. [http://www.inf.ed.ac.uk/teaching/courses/asr/2018-19/asr04-cdhmm-handout.pdf Источник]]]
|}
В круглых (скрытых) состояниях изображены фонемы, а в квадратных (наблюдениях) {{---}} распределения вероятностей признаков (для упрощения, здесь изображено одномерное распределение). Фонемы часто разбивают на 3 этапа {{---}} начало, середину и конец, {{---}} потому что фонема может звучать по-разному в зависимости от момента времени её произнесения. Каждое скрытое состояние содержит переход само в себя, так как время произнесения одной фонемы может занять несколько фреймов. Вероятности перехода между фонемами в СММ являются обучаемыми параметрами, и для их настройки используют [[Алгоритм Баума-Велша|алгоритм Баума-Велша]]. Последовательность фонем по набору распределений на фреймах восстанавливают по [[Алгоритм Витерби|алгоритму Витерби]].

[[Файл:GMM_acoustic.jpeg|мини|Отличие нормального распределения от GMM. [https://jonathan-hui.medium.com/speech-recognition-gmm-hmm-8bb5eff8b196 Источник]]]
В качестве функции распределения вероятностей признаков часто выбирают смешанную гауссову модель (англ. Gaussian Mixture Model, GMM): дело в том, что одна и та же фонема может звучать по-разному, например, в зависимости от акцента. Так как эта функция является по сути суммой нескольких нормальных распределений, она позволяет учесть различные звучания одной и той же фонемы.

===Языковая модель===

''Языковая модель'' {{---}} позволяет узнать, какие последовательности слов в языке более вероятны, а какие менее.
Здесь в самом простом случае требуется предсказать следующее слово по известным предыдущим словам. В традиционных системах применялись модели типа N-грамм, в которых на основе большого количества текстов оценивались распределения вероятности появления слова в зависимости от N предшествующих слов. Для получения надежных оценок распределений параметр N должен быть достаточно мал: одно, два или три слова {{---}} модели униграмм, биграмм или триграмм соответственно. Внедрение языковой модели в систему распознавания речи позволило значительно повысить качество распознавания за счет учета контекста.

===Декодер===

В ходе работы системы автоматического распознавания речи задача распознавания сводится к определению наиболее вероятной последовательности слов, соответствующих содержанию речевого сигнала. Наиболее вероятный кандидат должен определяться с учетом как акустической, так и лингвистической информации. Это означает, что необходимо производить эффективный поиск среди возможных кандидатов с учетом различной вероятностной информации. При распознавании слитной речи число таких кандидатов огромно, и даже использование самых простых моделей приводит к серьезным проблемам, связанным с быстродействием и памятью систем. Как результат, эта задача выносится в отдельный модуль системы автоматического распознавания речи, называемый декодером.
Декодер должен определять наиболее грамматически вероятную гипотезу для неизвестного высказывания – то есть определять наиболее вероятный путь по сети распознавания, состоящей из моделей слов (которые, в свою очередь, формируются из моделей отдельных фонов). Правдоподобие (likelihood) гипотезы определяется двумя факторами, а именно вероятностями последовательности фонов, приписываемыми акустической моделью, и вероятностями следования слов друг за другом, определяемыми моделью языка.

Рассмотрим математическую основу декодеров.<br>
Отбрасывая несущественный на этапе распознавания знаменатель, запишем:

<center><math>W = argmax [P(W)P(XW)]</math></center>

где <math>X = x_1^T = x_1 ,..., x_N</math> – последовательность векторов признаков входного сигнала, <math>W = w_1^n = w_1 ,..., w_n</math> – последовательность слов, принадлежащих словарю размером <math>N_W</math>. Первый множитель P(W) описывает вклад лингвистического модуля, второй P(X|W) – лексического, фонетического и акустического источников знаний. В соответствии с концепцией марковских цепей, второй множитель представляет собой сумму вероятностей всех возможных последовательностей состояний, что приводит к уравнению:

<center><math>W = argmax [P(W)\sum_{S_1^T} P(x_1^T, s_1^T | w_1^N)]</math></center>

где <math>s_1^T</math> – одна из последовательностей состояний, порождаемых последовательностью слов <math>w_1^n</math>. На практике применяется критерий Витерби<ref>''Тампель И.Б, Карпов А.А.'' Автоматическое распознавание речи. — СПб. : Университет ИТМО, 2016. — С. 113.</ref>. – ищется последовательность состояний, дающая максимальный вклад в сумму:

<center><math>W = argmax[P(W)^aMax[P(x_1^T, s_1^T | w_1^N)]]</math></center>

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

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

==Признаки==
[[Файл:Frame_division.jpeg|мини|Разделение осциллограммы на фреймы. [https://jonathan-hui.medium.com/speech-recognition-feature-extraction-mfcc-plp-5455f5a69dd9 Источник]]]

Входные данные представляют собой непрерывную осциллограмму звуковой волны. В задачах распознавания речи эту осциллограмму разбивают на '''фреймы''' {{---}} фрагменты звукового потока длительностью около 20 мс и шагом 10 мс. Такой размер соответствует скорости человеческой речи: если человек говорит по 3 слова в секунду, каждое из которых состоит примерно из 4 звуков и каждый звук разбивается на 3 этапа, то на этап выходит около 28 мс. Каждый фрейм независимо трансформируется и подвергается извлечению признаков, тем самым образуя векторизированный набор данных для задачи машинного обучения.

Признаки речевых событий, используемые при распознавании речи:
* Спектр Фурье.
* Спектр Фурье в шкале мел.
* Коэффициенты линейного предсказания.
* Кепстр.

'''Спектр Фурье'''

Спектр Фурье получают, используя алгоритм БПФ (Быстрого Преобразования Фурье) с длиной окна равной 2-4 периода основного тона, что составляет около 20 мс. При частоте квантования 10-16 кГц выбирается окно 256 отсчетов.

Для ослабления искажений сигнала, вызванных применением к непрерывному сигналу конечного окна анализа, чаще всего используется окно Хэмминга по формуле:

<center><math>S'(n) = [0.54 - 0.46cos\left(\frac{2\pi n}{N-1}\right)]*S(n)</math></center>

где n = 1..N, N – размерность окна, S(n) – отсчеты речевого сигнала.

'''Спектр Фурье в шкале мел'''

К каждому кадру, полученного Фурье спектра применяется блок мел-фильтров — треугольных пересекающихся фильтров, расположенных наиболее плотно в области нижних частот. Количество фильтров — 26. Для расчета фильтров выбирается верхняя и нижняя частота. Затем осуществляется переход от частотной шкалы к мел-шкале по формуле:

<center><math>M(f) = 1127*ln\left(1 + \frac{f}{700}\right)</math></center>

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

'''Коэффициенты линейного предсказания'''

Модель линейного предсказания речи предполагает, что передаточная функция голосового тракта представляется полюсным фильтром с передаточной
функцией:

<center><math>H(z) = \frac{1}{\sum_{i=0}^p a_i z^{-i}}</math></center>

где p – число полюсов и <math>a_0 = 1</math>;
Фильтр с такой передаточной функцией позволяет описать поведение сглаженного спектра речевого сигнала с хорошей точностью, за исключением назализованных звуков. Коэффициенты фильтра {<math>a_i</math>} – выбираются путем минимизации среднеквадратичной ошибки предсказания, просуммированной на окне анализа.

'''Кепстр'''

Кепстр (''cepstrum'') сигнала на основе спектра Фурье вычисляется путем применения косинусного Фурье преобразования к логарифму спектра:

<center><math>c_j = \sqrt{\frac{2}{N}}\sum_{i=0}^{N-1} \left[s_icos\left(\frac{\pi(j+1)(i+0.5)}{N}\right)\right] = \sum_{i=0}^{N-1} C_{j,i}s_i</math></center>

где <math>s_i</math> – логарифм спектра, N – количество отсчётов спектра, <math>C_{i,j}</math> – унитарная матрица косинусного преобразования.

Кепстральные коэффициенты, полученные приведённым способом из ''мел'' спектра Фурье, широко используются для распознавания с помощью марковских моделей и носят название MFCC (Mel-frequency cepstral coefficients).

==Показатели оценки качества распознавания речи==

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

Оценка системы, распознающей отдельные команды, не представляет каких-либо трудностей – количество неправильно распознанных команд делится на общее количество испытаний и получается процент ошибки. Для систем, распознающих слитную речь, ситуация не столь проста.

Основными показателями качества распознавания слитной речи являются:
* процент правильно распознанных слов (WRR - Word Recognition Rate);
* процент неправильно распознанных слов (WER - Word Error Rate);
* процент неправильно распознанных предложений/фраз (SER - Sentence Error Rate);

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

<center><math>WER = \frac{S+D+I}{T} * 100%</math></center>

где T - количество слов в распознаваемой фразе,
S - количество замененных слов,
D - количество удаленных слов,
I - количество вставленных слов.
Показатель WER может быть больше 100%.

Другим важным критерием оценки систем распознавания слитной речи является - скорость обработки речи. Она вычисляется с помощью показателя скорости (Real-Time Factor, Speed Factor):

<center><math>RTF = \frac{T_{proc}}{T_{signal}}</math></center>

<math>T_{signal}</math> - длительность обрабатываемого аудиосигнала;<br>
<math>T_{proc}</math> - время, необходимое для обработки сигнала.<br>
Если <math>RTF \leqslant 1.0</math> - то распознавание речи ведется в режиме реального времени.

==Применение==

Системы распознавания речи начали развиваться как специальные сервисы для людей с ограниченными возможностями, но также нашли применение в различных сферах бизнеса, таких как:
* Телефония: системы голосового самообслуживания;
* "Умный дом": голосовой интерфейс управления;
* Роботы: голосовой интерфейс электронных роботов;
* РС, ноутбуки, телефоны: голосовой ввод команд, диктовка текста;
* Автомобили: голосовое управление в салоне автомобиля.

Основные отрасли применения:
* Голосовое управление
* Голосовые команды
* Голосовой ввод текста
* Голосовой поиск

==См. также==
* [[Байесовская классификация]]
* [https://ru.wikipedia.org/wiki/Распознавание_образов Распознавание образов]
* [https://habr.com/company/yandex/blog/198556/ Распознавание речи от Яндекса]
* [https://ru.wikipedia.org/wiki/Субвокальное_распознавание Субвокальное распознавание]

== Примечания ==
<references />

==Источники информации==
# [https://ru.wikipedia.org/wiki/Speech_recognition] - статья на Википедии
# Тампель И.Б, Карпов А.А. Автоматическое распознавание речи. Учебное пособие. — СПб: Университет ИТМО, 2016. — 138 с.
# [http://fetmag.mrsu.ru/2010-2/pdf/SpeechRecognition.pdf] - статья "Классификация систем распознавания речи".
# [https://moluch.ru/archive/147/41443/] - статья "Выделение границ фонем речевого сигнала с помощью мел-частотных спектральных коэффициентов".

[[Категория: Машинное обучение]] [[Категория: Обработка естественного языка]]
89
правок

Навигация