close

Вход

Забыли?

вход по аккаунту

?

KarpovKipjatkova

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
А. А. Карпов, И. С. Кипяткова, А. Л. Ронжин
ПРОЕКТИРОВАНИЕ РЕЧЕВЫХ ИНТЕРФЕЙСОВ
ДЛЯ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ
СИСТЕМ
Учебное пособие
Санкт-Петербург
2012
УДК 004.522(075.8)
ББК 32.813я7
К26
Рецензенты:
лаборатория интегрированных систем автоматизации
Санкт-Петербургского института информатики и автоматизации
Российской академии наук;
кандидат технических наук, профессор Л. А. Станкевич
Утверждено
редакционно-издательским советом университета
в качестве учебного пособия
Карпов, А. А.
К26 Проектирование речевых интерфейсов для информационноуправляющих систем: учеб. пособие/ А. А. Карпов, И. С. Кипяткова, А. Л. Ронжин. – СПб.: ГУАП, 2012. – 76 с.: ил.
ISBN 978-5-8088-0698-6
Рассматриваются вопросы проектирования речевых пользовательских интерфейсов и моделирования естественной речи в системах автоматического анализа и распознавания речи. Изложены методы и алгоритмы цифровой обработки речевых сигналов,
акустико-фонетического и языкового моделирования при помощи
вероятностных и статистических методов, распознавания речевых
образов, марковского моделирования случайных процессов. Особое
внимание уделено вопросу автоматического распознавания разговорной русской речи и голосовых команд для применения в информационно-управляющих системах.
Учебное пособие предназначено для студентов, обучающихся по
специальностям 220201, 220402, 230102, 230201. Может быть полезно студентам смежных специальностей, а также аспирантам и
специалистам, работающим над созданием интеллектуальных систем управления и диалоговых систем с речевым интерфейсом.
УДК 004.522(075.8)
ББК 32.813я7
ISBN 978-5-8088-0698-6
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения (ГУАП), 2012
© СПИИРАН, 2012
© А. А. Карпов, И. С. Кипяткова,
А. Л. Ронжин, 2012
ПРЕДИСЛОВИЕ
В последние годы особую актуальность при управлении различными информационными системами приобретают интеллектуальные и интуитивно понятные человеко-машинные интерфейсы, основанные на естественно-языковых и речевых данных, в частности,
с применением систем автоматического распознавания и синтеза
речи.
Автоматическое распознавание разговорной речи представляет собой крайне сложную задачу по сравнению с распознаванием
изолированных слов. Во-первых, произношение слов в разговорной
речи сильно варьируется, и фонетическое представление произнесенных слов зачастую не совпадает с транскрипциями слов, сделанными по фонетическим правилам транскрибирования. Во-вторых,
при автоматическом распознавании разговорной речи распознавателю необходима модель языка, описывающая допустимые конструкции фраз. Данное учебное пособие посвящено проектированию систем распознавания разговорной речи. Особое внимание уделяется
акустико-фонетическому и языковому моделированию речи.
В первой главе данного пособия приведены и проанализированы основные методы и подходы к автоматическому распознаванию
речи. Дается классификация моделей распознавания речи по размеру словаря, необходимости предварительной настройки на голос
пользователя и типу распознаваемой речи. Проводится аналитический обзор существующих систем распознавания русской речи.
Во второй главе представлены основные методы фонетического
моделирования разговорной речи. Приводится пример комбинированного метода моделирования вариативности произношения.
Третья глава посвящена построению статистических моделей
языка. Дается обзор методов статистического моделирования разговорной речи на основе разновидностей n-грамм. Анализируются
расширенные модели, основанные на классах слов, триггерные модели, морфемные и слоговые модели, дальнодействующие и категорные модели, а также использующие синтаксический анализ.
В четвертой главе дается подробное описание комплекса программных средств для фонетико-языкового моделирования русской речи. Приведен пример использования данного программного
комплекса для создания модели русского языка.
Вопросы, рассматриваемые в данном учебном пособии, соответствуют программе курсов «Методы искусственного интеллекта»,
«Нейронные сети и экспертные системы».
3
Научные результаты по автоматическому распознаванию русской речи в интеллектуальных речевых интерфейсах, вошедшие
в учебное пособие, были получены в ходе выполнения работ по государственным контрактам № 11.519.11.4020 и № 14.740.11.0357
в рамках федеральных целевых программ Министерства образования и науки Российской Федерации.
1. ОСНОВНЫЕ МЕТОДЫ И МОДЕЛИ
АВТОМАТИЧЕСКОГО РАСПОЗНАВАНИЯ РЕЧИ
С развитием речевых технологий, в первую очередь, систем
автоматического распознавания и компьютерного синтеза речи
связывают будущее человеко-машинных интерфейсов для интеллектуальных систем управления различными техническими системами, подвижными объектами, роботами. За рубежом речевые
интерфейсы для разных языков уже внедряются в интерактивные
диалоговые и запросно-ответные системы, например автоматические телефонные контакт-центры, а также в различные информационно-управляющие системы, ассистирующие водителю при
управлении транспортным средством (например, проект Verbmobil
компании DaimlerChrysler), в бортовые информационные системы
летательных аппаратов военного назначения (например, истребители F-35 и Eurofighter Typhoon). Речевое управление позволяет
повысить эффективность взаимодействия за счет бесконтактного
управления информационными системами вербальным (речевым)
способом. Системы речевого управления и диалога, как правило,
содержат в себе компоненты для ввода и для вывода речевых сообщений. Для бесконтактного ввода управляющих голосовых команд, сообщений или фраз через микрофон применяются системы
автоматического распознавания речи. Речевое оповещение реализуется посредством компьютерных систем генерации или синтеза
речи по входному тексту. Данное учебное пособие посвящено проектированию пользовательских интерфейсов для ввода речевых
сообщений и автоматическому распознаванию русской речи. Для
тех, кто интересуется проектированием систем синтеза звучащей
русской речи, можно порекомендовать ознакомиться с существующими учебниками [46].
Итак, под автоматическим распознаванием речи будем понимать представление непрерывного речевого сигнала, поступающего от диктора через микрофон, последовательностью слов, которая
4
ему соответствует. Распознавание естественной речи – одна из основных задач распознавания образов. Задачей распознавания образов является отнесение входного образа к отдельным существующим классам. Возможные классы моделируются в зависимости от
применения (типа анализируемых данных). Целью распознавания
является оценка выходного класса (выходной гипотезы), к которому входные данные принадлежат с наибольшей вероятностью.
Задача системы распознавания речи заключается в том, чтобы
по речевому сигналу правильно идентифицировать сказанную диктором последовательность слов. Это соответствует оптимальному
критерию, который может быть выражен как [21]:
wˆ = arg max P (w | O ), wÎW
(1.1)
где ŵ – выходная гипотеза фразы; w – произнесенная последовательность слов; W – набор всех возможных последовательностей
слов (гипотез); O – последовательность векторов признаков, вычисленных по входному речевому сигналу.
После применения формулы Байеса формула (1.1) принимает
следующий вид:
wˆ = arg max
wÎW
P (O | w) P (w)
P (O )
,
(1.2)
P(O) не изменяется в зависимости от последовательности сказанных слов w , поэтому пренебрегая P(O), мы получим критерий
максимума апостериорной вероятности
wˆ = arg max P (O | w) P (w), wÎW
(1.3)
где P(O|w) – вероятность того, что текущий вектор признаков O наблюдается, если диктором произносится последовательность слов
w. Это выражение называется акустической вероятностью и вычисляется с помощью моделей декодера речевого сигнала. P(w) – априорная вероятность появления некоторого слова во фразе, которая
вычисляется с помощью языковых моделей.
На рис. 1.1 показана схема базовой системы автоматического
распознавания речи. Система работает в двух режимах: обучение
и распознавание. В первую очередь выполняется обучение акустических моделей и моделей языка. Акустические модели обучаются
по векторам признаков, вычисленным по речевым данным и их из5
Обучение
Корпус
речи
Вычисление
признаков
сигнала
РЕЧЬ
W = w1 ,..., wN
Корпус
текстов
Обучение
Акустические
модели
звуков речи
Словарь слов
с фонетическими
транскрипциями
P(O|W)
ПРИЗНАКИ
ГИПОТЕЗА
ФРАЗЫ
Декодер речи
O = o1 ,..., oT
P(W)
ˆ = wˆ1 ,..., wˆ M
W
Статистическая
модель языка
Рис. 1.1. Базовая архитектура системы
распознавания слитной речи
вестным транскрипциям. Модель языка строится путем оценивания частоты встречаемости комбинаций слов в тексте предметной
области. При распознавании входной сигнал преобразуется в последовательность векторов признаков, и с помощью предварительно обученных моделей звуков речи (фонем) и модели языка или
грамматики производится поиск наиболее вероятной гипотезы или
подмножества лучших гипотез [21].
1.1. Классификация систем распознавания речи
Рассмотрим несколько вариантов классификации систем распознавания речи. Одним из основных критериев классификации
является размер распознаваемого словаря (см. табл. 1.1). Согласно
принятой в мире классификации [5], малым словарем распознавания считается словарь в единицы и десятки слов; средний распознаваемый словарь содержит сотни слов; большой словарь содержит тысячи и десятки тысяч слов; словарь размером в сотни
тысяч и миллионы слов считается сверхбольшим [33]; словарь, который пытается моделировать все существующие и потенциально
возможные слова в некотором языке считается неограниченным
(unlimited) [31].
6
Таблица 1.1
Классификация словарей распознавания по размеру
Размер словаря распознавания
Малый
Средний
Большой
Сверхбольшой
Неограниченный
Количество слов, V
V<100
100≤V<1000
1000≤V<100000
V≥100000
V→∞
Другим возможным типом классификации систем распознавания является необходимость предварительной настройки на голос
пользователя, поэтому системы могут быть дикторозависимыми
и диктронезависимыми (как правило, внутри некоторой группы
дикторов). В некоторых приложениях с малым и средним словарем
предпочтительны дикторозависимые системы распознавания речи
(например, с целью недопущения несанкционированного доступа),
основанные на сравнении входного сигнала с ранее записанными
эталонами слов и фраз [44]. При этом пользователь обычно вносит
в память системы полный набор образцов слов заданного словаря,
что можно считать этапом предварительного обучения системы на
акустическом уровне. С ростом словаря время обучения (надиктовки эталонных слов/фраз) возрастает линейно.
Дикторонезависимые системы распознавания речи могут работать без настройки на голос пользователя, то есть любой диктор
сразу может вступить в диалог с системой, не проводя процесс обучения системы, либо с частичной подстройкой, когда диктор произносит не весь словарь, а некоторый адаптационный текст (что
существенно при большом объеме словаря), чтобы система могла
настроить необходимые акустические базы данных. В таких системах дикторонезависимость достигается путем статистического
моделирования языковых и речевых процессов, а для этого необходимы значительные объемы акустических данных, позволяющих
создавать стохастические модели. После того как система обучена
на речевом корпусе, она должна достаточно точно распознает речь
среднестатистического диктора, представленного этим корпусом.
Модели распознавания речи во многом зависят от используемого вида (стиля) речи: изолированная речь, слитная, прочитанная
и разговорная (спонтанная речь, используемая, например, в диалогах является наиболее сложным случаем разговорной речи) [7].
Задача распознавания изолированной речи является наиболее
7
простой и уже решена для малого словаря V = {v1,v2 ,...,vN }. Элементами словаря являются модели слов или целых фраз, а также
модель паузы, которая необходима для определения границ речи.
Возможные слова моделируются распознавателем как отдельные
классы. Когда речевой сигнал должен быть распознан, распознаватель вычисляет оценки для каждого возможного класса, и класс с
наивысшей оценкой выбирается в качестве лучшей выходной гипотезы. Качество распознавания здесь целиком зависит от размера словаря. С одной стороны, большое количество слов и наличие
разных вариантов произношения компенсируют неточности со стороны говорящего, а с другой стороны, увеличение словаря ведет к
возникновению близких по звучанию слов, что снижает точность
распознавания. При вводе изолированной речи пользователь должен делать искусственные паузы между словами или же говорить
слитно и точно жестко заданные фразы, которые известны системе. Аналогично работают распознаватели изолированно произнесенных фраз. В этом случае каждый класс описывает допустимую
последовательность слов, и если во входной фразе порядок слов будет слегка изменен или добавлено (пропущено) некоторое слово, то
система не сможет распознать всю фразу.
Распознавание слитной речи является более сложной задачей,
при которой распознаются отдельные фразы, составленные из ключевых слов, хранящихся в словаре. Качество подобных систем зависит от полноты словаря и модели языка, которая задает правила
связи слов в распознанной фразе. Распознаватели слитной речи рассматривают речевой сигнал как последовательность связанных друг
с другом и осмысленных слов. Каждое возможное слово моделируется как отдельный класс, и речевому сигналу приписывается последовательность классов (слов) с наибольшей оценкой. Эта процедура
требует моделирования каждого возможного слова в словаре.
Прочитанная речь широко используется и для обучения, и для
тестирования систем распознавания речи, потому что ее гораздо
проще и дешевле записать и обработать, чем спонтанную речь. Подобный стиль речи имеет постоянный темп и артикуляцию (четкое
проговаривание звуков). В прочитанной речи, как правило, нет запинок, таких как куски слов, заикание, самоисправления, так как
подобные элементы, если и случаются, то удаляются из речевого
корпуса на этапе обработки. В основном используются фонетически представительные короткие и простые высказывания. Нет озвученных пауз, фальш-стартов, исправлений или слишком длинных пауз. Соответственно, не наблюдается также эмоциональных
8
и смысловых ударений внутри фразы. Таким образом, для прочитанной речи характерны монотонность, отсутствие интонации и
четкость произношения фонем (звуков речи).
Разговорная речь обладает множеством особенностей, которые не
учитываются в других типах речи и которые способны существенно ухудшить качество распознавания для системы, обученной не на
спонтанной речи. Темп речи не постоянен и внутри высказывания,
и между высказываниями в ходе сессии записи, и между сессиями,
и для разных дикторов. Артикуляция также сильно меняется, ударные формы для важных слов и безударные формы для контекстных
слов не наблюдаются в читаемой речи. Длина предложений увеличивается. В спонтанной речи сильно варьируется произношение слов.
Возникают явления редукции и ассимиляции звуков, для учета которых необходимо создавать альтернативные транскрипции слов и,
тем самым, расширять словарь произношений.
1.2. Параметрическое представление сигнала
В системах распознавания речевой сигнал делится на короткие
сегменты, и каждый сегмент преобразуется в вектор признаков, в
результате входной сигнал представляется последовательностью
векторов признаков. Процесс вычисления векторов признаков называется извлечением признаков или параметрическим представлением. Речь возможно представить и моделировать как стохастический (случайный) процесс, который создает последовательность
независимых векторов признаков. Стохастический процесс – это
процесс, течение которого может быть различным в зависимости
от случая и для которого определена вероятность того или иного
его течения [50]. Целью процесса извлечения признаков является
преобразование входного сигнала в некоторую компактную форму
параметрического представления.
Микрофоны улавливают давление звуковых волн, распространяющихся в воздухе, и преобразуют их в электрические сигналы.
Перед процессом извлечения признаков эти сигналы должны быть
предварительно оцифрованы. Стандартный аналого-цифровой преобразователь (АЦП) производит дискретизацию непрерывного сигнала по времени и квантование амплитуды сигнала в необходимом
диапазоне значений. Первым шагом является преобразование непрерывного аналогового сигнала в дискретный с помощью дискретизации временной области. Величина сигнала измеряется в опре9
деленные моменты времени с периодом дискретизации t0. Частота
1
дискретизации определяется как f0 = . На втором шаге непреt0
рывные значения амплитуды записанного сигнала дискретизируются для того, чтобы можно было их представить в машинном коде
с конечным числом разрядов. Этот шаг называется квантованием.
Большинство современных распознавателей используют 16 бит для
хранения одного АЦП-отсчета (одного значения сигнала). Последний шаг предварительной обработки – фильтр предыскажения,
где сигнал подвергается свертке с помощью рекурсивного фильтра
высоких частот первого порядка. Цель такого предыскажения заключается в том, чтобы подчеркнуть высокочастотные компоненты звуков речи, которые обычно имеют уменьшенную амплитуду
вследствие ослабления высоких частот в речевом сигнале, в частности, для звонких согласных звуков речи.
Вектора признаков обычно вычисляются для коротких сегментов сигнала (кратковременный анализ) с использованием допущения, что речь может рассматриваться как стационарная на этих коротких интервалах. Для более точного описания сигнала речевые
сегменты берутся с перекрытием. Процесс создания речевых сегментов выполняется с помощью метода окна, то есть путем перемножения сигнала с некоторой функцией окна для того, чтобы разрывы
на границах окна были ослаблены. Обычно для этих целей используется окно Хэмминга, в этом случае функция окна принимает вид:
ìï
æ k2π ö÷
÷ ïðè k = 0,1...K -1
ïï0,54 - 0,46 cosççç
è K -1ø÷
w (k) = í
,
(1.4)
ïï
ïïî0 ïðè k ¹ 0,1...K -1
где K – ширина окна.
В программной реализации вычисление предыскажающего
фильтра и применение окна Хэмминга выполняют одновременно в
одной рекурсивной процедуре. На рис. 1.2 показано окно Хэмминга со структурой из 10 отсчетов. Следующим шагом выделения признаков является преобразование каждого фрейма из временной области в частотную область (вычисления спектра сигнала) путем использования дискретного преобразования Фурье. Этот шаг обычно
выполняется как быстрое преобразование Фурье, которое является эффективной реализацией дискретного преобразования Фурье.
Для того чтобы быстрое преобразование Фурье было эффективным,
преобразуемая длина должна иметь степень 2. Для сегментов из
500 отсчетов преобразуемая длина должна быть 512 с дополнением
10
Весовая функция, w [k]
1
0.8
0.6
0.4
0.2
0
2
4
6
Дискретное время, k
8
10
Рис. 1.2. Пример окна Хэмминга для обработки сегмента речи
нулей к концу сегмента, чтобы иметь 512 отсчетов. Вычисляется
квадрат значения быстрого преобразования Фурье, поскольку необходимо вычислить значение энергии частоты.
Для того чтобы более точно моделировать восприятие звуковой
энергии слуховой системой человека, для каждого фрейма выполняется анализ с помощью гребенки мел-фильтров. Мел-фильтры
основаны на мел-шкале, которая является логарифмической шкалой, аналогичной слуховому восприятию человека. Мел-шкала
определяется по следующей формуле относительно шкалы частот
f, измеряемой в герцах:
æ
f ö÷
fmel = 2595 × lg çç1 +
÷. çè
700 ø÷
(1.5)
Гребенка мел-фильтров выполняется с перекрывающимися треугольными весовыми функциями. Эти треугольные весовые функции покрывают одинаковые полосы пропускания в мел-шкале с
перекрытием 50 % (то есть мел-фильтр покрывает частоты между
центральными частотами соседних фильтров). Поэтому они представляются равными областями на мел-шкале, в то время как их
ширина в частотной области возрастает логарифмически с частотой. Фильтры могут иметь одинаковую ширину на мел-шкале и
затем быть отображены в частотной области с помощью формулы
(1.5). На рис. 1.3 показан пример треугольных весовых функций из
набора мел-фильтров с 12 полосами на частотной оси.
При автоматическом анализе необходимо выполнить оценку
энергии спектра в каждой мел-полосе (фильтре). Вектор, составленный из энергии всех элементов разрешения по частоте в каждом
мел-фильтре, представляет собой мел-спектр.
11
1
Wm
0.8
0.6
0.4
0.2
0
2000
0
4000
6000
Частота (Гц)
8000
Рис. 1.3. Гребенка 12-полосных мел-частотных фильтров
Окно Хэмминга
Дискретное
преобразование
Фурье
|… |
2
Мел-фильтрация
Мел-спектр
Логарифмирование
Логарифмический
мел-спектр
Дискретное
косинусное
преобразование
Мел-частотные
кепстральные
коэффициенты
Рис. 1.4. Схема процесса извлечения мел-частотных
кепстральных коэффициентов из сегмента речи
12
Из-за перекрытия треугольных весовых функций мел-фильтров
смежные компоненты вектора мел-спектра взаимно коррелируют
друг с другом. С применением дискретного косинусного преобразования на логарифмическом мел-спектре взаимная корреляция
между смежными компонентами сильно уменьшается. На выходе
цифровой обработки сигналов формируются так называемые мелчастотные кепстральные коэффициенты.
На рис. 1.4 показана схема процесса вычисления мел-спектра,
логарифмического мел-спектра и мел-частотных кепстральных коэффициентов. Мел-частотные кепстральные коэффициенты, в основном, используют набор векторов признаков при распознавании
речи, так как они улучшают работу по отношению к большинству
других параметров. Многие системы распознавания речи объединяют производные коэффициентов первого и второго порядков для
того, чтобы уловить спектральные изменения и улучшить работу
систем автоматической обработки и распознавания речи.
1.3. Применение скрытых марковских моделей
для распознавания речи
В настоящее время наиболее перспективные системы распознавания слитной речи строятся на основе скрытых марковских моделей/цепей (СММ). В основу метода положено представление о марковской цепи и марковском процессе в теории вероятностей, предложенные выдающимся петербургским математиком А. А. Марковым еще в начале XX века [47]. Рассматривается некий объект,
который имеет несколько состояний и может переходить из одного
состояния в другое, причем текущее состояние зависит только от
предыдущего. Поведение объекта определяется цепью переходов
из начального состояния в текущее. Это и есть марковкая цепь.
Она изображается в виде графа, где вершины обозначают состояния объекта, а направленные дуги показывают возможные пути
перехода из состояния в состояние (рис. 1.5). Возле каждой дуги
проставляется вероятность этого перехода. Вероятность перехода
из некоего состояния X в состояние Z через промежуточное состояние Y определяется как
P(X, Y, Z) = P(X) × P(Y | X) × P(Z | Y ), (1.6)
где P(Y|X) и P(Z|Y) – условные вероятности перехода из состояния
X в состояние Y и из состояния Y в состояние Z.
13
Скрытая марковская модель является развитием математического аппарата марковских цепей и описывает пару стохастических процессов, первый из которых не поддается прямому наблюдению и представляет собой обычную марковскую цепь, а второй
наблюдаем и представляется последовательностью случайных переменных в пространстве акустических параметров [21]. В скрытой
марковской модели текущее состояние точно неизвестно. В каждой
вершине графа объект может принимать с некоторой вероятностью
любое из возможных состояний (рис. 1.6).
ayy
Y
axy
2
azy
azy
ayx
axx
ayz
1
Z
X
3
azx
Z
azz
axz
Рис. 1.5. Пример марковской цепи первого порядка
X
Y
a12
a 11
Y
Z
a22
2
a 21
a32
a23
1
a31
X
Z
a13
3
a 33
Рис. 1.6. Скрытая марковская цепь
14
X
Y
Z
Если для обычной марковской цепи по известной последовательности состояний можно проследить все переходы объекта (например, последовательности состояний YXXZYX на рис. 1.5 однозначно соответствует цепь переходов 2-1-1-3-2-1), то для скрытой
марковской цепи это невозможно, то есть цепь переходов скрыта
за стохастическим процессом. В этом случае имеет место двойная
стохастичность: не только переходы из состояния в состояние случайны, но даже и принимаемое в результате перехода состояние
определяется распределением вероятностей. В случае распознавания речи двойная стохастичность нужна для представления двух
видов изменчивости речевого сигнала – временной и спектральной.
Временная изменчивость моделируется вероятностными переходами, а спектральная изменчивость – вероятностными состояниями
скрытой марковской цепи. СММ представляет звук как последовательность дискретных стационарных состояний с мгновенными
переходами между ними. Каждая фонема описывается своей СММ
из N состояний (рис. 1.7). Состояния цепи соответствуют измеряемым векторам, а переходы возможны только слева направо. Дуги,
замкнутые на себя, моделируют временную изменчивость фонем.
Во время обучения системы итерационным путем определяются
вероятности всех переходов и вероятности того, что определенный
набор акустических свойств (вектор) может наблюдаться в каждом
из состояний цепи. Каждое слово, в свою очередь, представляется в
словаре системы как СММ из нескольких фонем, а каждая фраза –
как СММ из нескольких слов.
Существует два режима работы с моделью – обучение и распознавание. При обучении вероятности вычисляются по известным
произносимым словам. СММ при обучении позволяет с помощью
вероятности отразить те закономерности речи, которые не наблюдаются в сигнале. При распознавании строятся всевозможные пеa22
1
a12
a33
a23
2
a44
a45
a34
3
4
5
a24
b 2 (O)
b 3(O)
b 4(O)
Рис. 1.7. СММ для моделирования звука речи (фонемы)
15
реходы в зависимости от сигнала, и определяется вероятность того,
что в конце мы окажемся в конкретном состоянии.
Для полного определения дискретной скрытой марковской модели λ некоторой речевой единицы необходимо задать следующие
параметры:
1) N – число состояний в модели. Хотя состояния скрыты от наблюдателя, в некоторых практических задачах состояниям или
множествам состояний модели приписывается некий физический
смысл (например, фонемы или буквы). Для обозначения множества состояний модели используется запись S = {S1, S2 ,...SN }, а состояние модели в момент t обозначается qt;
2) M – число различных символов наблюдения, которые могут
порождаться моделью, то есть размер дискретного алфавита. Символы наблюдения соответствуют физическому выходу моделируемой системы. Множество наблюдаемых символов обозначается как
V = {v1,v2 ,...vM };
3) распределение вероятностей переходов между состояниями (или матрица переходных вероятностей) A = {aij }, где
aij = P[qt+1 = Si | qt = Sj ];
4) Распределение вероятностей появления символов наблюдения в состоянии J, B = {bj (o)}, где bj (k) = P[vkt | qt = Sj ];
5) начальное распределение вероятностей состояний π = {πi },
πi = P[q1 = Si ] .
На рис. 1.8 дан пример задания топологии и параметров дискретной СММ.
Проблема, возникающая при использовании дискретных марковских моделей, заключается в том, что в большинстве практических задач наблюдения являются непрерывными сигналами (или
векторами) и их квантование с помощью кодовых книг размерностью M может иногда приводить к искажениям исходного сигнала.
Поэтому часто для распознавания речи используют СММ с непрерывными плотностями вероятностей для векторов наблюдений.
В таких моделях плотность вероятности появление векторов наблюдений описывается следующим образом:
bi (O) =
M
å Cjm ϑ[O,µ jm ,Ujm ], (1.7)
m=1
где O – моделируемый вектор наблюдений; Cjm – весовой коэффициент m-й компоненты в состоянии j и ϑ – произвольная логарифмически-вогнутая или эллиптически-симметричная плотность
16
0,4
0,3
0,5
0,4
0,6
0,7
1
2
3
0,1
0
1
2
3
4
5
6
7
8
9
o
0,03
0,06
0,07
0,09
0,15
0,25
0,20
0,07
0,05
0,03
b 1 (o)
0
1
2
3
4
5
6
7
8
9
o
0,02
0,03
0,05
0,07
0,08
0,10
0,30
0,20
0,09
0,06
b 2 (o)
0
1
2
3
4
5
6
7
8
9
o
0,05
0,09
0,10
0,20
0,15
0,12
0,10
0,08
0,07
0,04
b 3 (o)
Рис. 1.8. Пример задания скрытой марковской модели
вероятности с вектором средних значений (математическим ожиданием) μjm и ковариационной матрицей (дисперсией или отклонением от матожидания) Ujm для m-составляющей в состоянии j.
Как правило, в качестве плотности вероятности используется гауссовская плотность. Плотности такого вида часто используются на
практике, поскольку позволяют с любой точностью аппроксимировать произвольную непрерывную функцию, содержащую конечное
число компонент. На рис. 1.9 показан пример из трех одномерных
гауссовских плотностей вероятности (показаны сплошными линиями) и их смеси (показано пунктирной линией).
Существуют три основные задачи, связанные с использованием
СММ для задачи распознавания речи[3]:
Задача 1 (оценка вероятности). Пусть задана последовательность наблюдений O = (o1, o2 ,..., oT ) и модель λ. Как эффективно
вычислить величину P(O|λ), то есть вероятность появлений этой
последовательности наблюдений для данной модели? Существует
несколько способов оценки правдоподобия. Наиболее широко применяют алгоритмы прямого-обратного хода (forward-backward), а
также лучевые алгоритмы [51].
Задача 2 (декодирование). Пусть заданы последовательность наблюдений O = (o1, o2 ,..., oT ) и модель λ. Как выбрать последователь17
Вероятность
0.25
0.2
0.15
0.1
0.05
0
–6
–4
–2
0
2
4
Значение параметра
6
8
Рис. 1.9. Смесь трех одномерных
гауссовских плотностей вероятности
ность состояний Q = (q1,q2 ,...,qT ), которая в некотором значимом
смысле будет оптимальной (например, наилучшим образом соответствует имеющейся последовательности наблюдений)? Для решения этой задачи применяют алгоритм Витерби [32, 49].
Задача 3 (обучение). Каким образом нужно подстроить параметры модели λ, для того чтобы максимизировать P(O|λ)? Задача
обучения СММ является крайне важной и в то же время наиболее
трудной задачей.
Цель обучения акустических моделей состоит в том, чтобы по заданной последовательности наблюдений определить метод такой подстройки параметров модели, чтобы для полученной модифицированной модели вероятность появления этой последовательности была
максимальной. Не существует известного аналитического выражения для настройки параметров такой модели. Кроме того, на практике, располагая некоторой последовательностью наблюдений в качестве обучающих данных, нельзя указать оптимальный способ оценки параметров. Тем не менее, используя итеративные процедуры, например метод Баума-Уэлча, ЕМ (expectation maximization) метод или
градиентные методы [4, 50], можно выбрать параметры модели таким
образом, чтобы локально максимизировать вероятность P(O|λ).
Если итеративно повторять процедуру переоценки параметров,
используя на каждом новом шаге значения параметров модели,
полученные на предыдущем шаге, то будем последовательно получать модели, для которых вероятность появления последовательности наблюдений O будет увеличиваться. Процедура продолжается до тех пор, пока не будет достигнута некоторая предельная точка
(например, по критерию максимума правдоподобия СММ).
18
Согласно теории, описанной в литературе [21], процедура переоценки должна давать значения параметров СММ, которые соответствуют локальному максимуму функции правдоподобия. И при
этом крайне важным является вопрос, как выбирать начальные
значения параметров заданной модели, для того чтобы локальный
максимум оказался глобальным максимумом функции правдоподобия.
Исследования показывают [21], что либо случайные (подверженные стохастичности и ограничениям ненулевых значений),
либо однородные начальные оценки параметров π и A почти во всех
случаях позволяют получать вполне приемлемые повторные оценки для этих параметров. Что же касается параметра B, то хорошие
начальные оценки являются полезными в случае дискретных символов и необходимы в случае непрерывного распределения. Такие
начальные оценки могут получаться несколькими различными
способами, включая ручную сегментацию последовательностей наблюдений на состояния с усреднением числа наблюдений в состояниях, сегментацию наблюдений по методу максимального правдоподобия с усреднением, сегментацию с использованием метода
k-средних [13] и т. д.
После инициализации модели множество обучающих последовательностей наблюдений разбивается на состояния в соответствии
с используемой моделью λ. Такое разбиение достигается посредством нахождения оптимальной последовательности состояний с
помощью алгоритма Витерби и последующего поиска в обратном
направлении вдоль оптимального пути. Результатом разбиения на
состояния каждой обучающей последовательности также является вероятностная оценка принадлежности множества наблюдений
конкретной модели. Обновленная модель λ получается на основе
вычисленных параметров модели, а переоценка всех параметров
этой модели выполняется с помощью процедуры повторного оценивания. Результирующая модель сравнивается с предыдущей моделью посредством вычисления меры отклонения, которая отражает
статистическое сходство этих моделей. Если эта мера отклонения
моделей превышает порог, старая модель λ заменяется новой моделью λ (для которой выполняется процедура переоценки), и полностью повторяется цикл обучения. Если же мера отклонения не
превышает данного порога, то полагается, что модель сходится и
сохраняются параметры последней модели.
На этапе автоматического распознавания речи строятся всевозможные переходы по состояниям СММ и определяется вероятность
19
того, что в конце мы окажемся в конечном состоянии, используя
алгоритм прямого-обратного хода или алгоритм Витерби. Алгоритм Витерби применяют для распознавания как изолированной,
так и слитной речи. Он состоит из прямого и обратного проходов и
реализуется следующим образом [51]. Для начала необходимо ввести следующую переменную:
δt (i) =
max
q1,q2 ,...,qt-1
P[q1q2 ...qt-1,qt = Si , o1o2 ...ot | λ], (1.8)
имеющую смысл максимальной вероятности того, что при заданных наблюдениях до момента времени t последовательность состояний завершится в момент времени t в состоянии Si. Также введем
переменную ψt(j) для хранения аргументов, максимизирующих
δt(j). Алгоритм состоит из 4 шагов:
1) инициализация
δ1 ( j) = πi bi (o 1), 1 £ i £ N, (1.9)
ψ1 (i) = 0, (1.10)
δt ( j) = max [δt-1 (i)aij ]bj (ot ), 1 £ i £ N, 2 £ t £ T, (1.11)
ψt ( j) = arg max[δt-1 (i)aij ]; (1.12)
P* = max [δT (i)] (1.13)
2) индуктивный переход
1£i£N
1£i£N
3) остановка
1£i£N
определяет максимальную вероятность наблюдения последовательности O, которая достигается при прохождении некой опти*
), для котомальной последовательности состояний Q* = (q1* ,...qT
рой к настоящему моменту известно только последнее состояние:
*
qT
= arg max[δT (i)]; 1£i£N
(1.14)
4) восстановление оптимальной последовательности состояний
(обратный проход)
20
qt* = ψt+1 (qt*+1 ), t = T -1,T - 2,...,1. (1.15)
Речь
…
Модель слова V
…
Модель слова 2
P(o|λV )
P(o |λ2 )
P (o|1)
Выбор
максимальной
вероятности
1£v£V
v* = arg max[P( O / λv )]
Рис. 1.10. Распознавание изолированных слов на основе СММ
Вычисление
векторов
признаков
…
Модель слова 1
…
21
Индекс
распознанного
слова
Результатом работы алгоритма является наибольшая вероятность появления распознаваемой последовательности наблюдений
для заданной СММ, то есть степень близости слова (или цепочки
слов), задаваемого данной моделью, к распознаваемому сигналу.
Причем с помощью алгоритма Витерби можно как вычислить вероятность принадлежности последовательности наблюдений некоторой СММ, так и узнать оптимальную последовательность пройденных состояний модели.
Использование марковского моделирования для распознавания
изолированных слов можно упрощенно разделить на два этапа: создание СММ для каждого слова из словаря с объемом V, а также оптимизация их параметров и второй этап – распознавание. Для каждого неизвестного слова, подлежащего распознаванию, применяется обработка, показанная на рис. 1.10, где определяется последовательность наблюдений O = (o1, o2 ,..., on ) путем анализа речевого
сигнала, затем производится вычисление вероятностей правдоподобия всех возможных гипотез P(O|λv), где vϵ[1,V]. Модель, вероятность правдоподобия которой наибольшая, считается оптимальной
гипотезой сказанного слова, то есть индекс распознанного слова v*
вычисляется следующим образом:
v* = arg max[P(O / λv )]. (1.16)
vÎ[1,V ]
Разработка систем распознавания, основанных на СММ, требует
значительных объемов акустических данных, позволяющих создавать необходимые стохастические модели. При создании речевых
корпусов учитывается множество факторов, таких как характеристика диктора (национальность, пол, возраст), канал передачи данных (микрофон, телефон), уровень шума. Эти базы данных должны
также содержать фонетические транскрипции, разметку акустического сигнала по фонемам, слогам, словам, фразам.
1.4. Метод распознавания слитной речи
Для работы со слитной речью необходимо соединить скрытые
марковские модели слов в одну общую СММ языка предметной области с учетом вероятностей переходов между словами, которые
задаются моделью языка. Каждая модель в последовательности напрямую связана с элементом, лежащим в ее основе. Этими элементами могут быть целые слова или части слов, такие как фонемы.
22
На рис. 1.11 показана сеть, в которой каждое слово определено как
последовательность скрытых марковских моделей, основанных на
фонемах, и все слова замкнуты в петлю (цикл). В этой сети кружками показаны СММ, а прямоугольниками – состояния конца слова.
Таким образом, распознающая сеть в итоге состоит из состояний
скрытой марковской модели, соединенных переходами. В ней можно выделить три различных уровня: слов, фонем и состояний модели. На рис. 1.12 показана эта иерархия.
Для распознавания слитной речи используется модифицированный алгоритм Витерби, называемый метод передачи маркеров
(token passing method) [34] и реализованный, например, в свободном инструментарии Hidden Markov Model Toolkit [29]. Метод
передачи маркеров определяет прохождение возможных путей по
состояниям объединенной СММ. В начало каждого слова ставится
маркер и применяется итеративный алгоритм оптимизации Витерби, сдвигая маркер на каждом шаге и вычисляя для него акустическую вероятность. Предположим, в каждом состоянии j скрытой марковской модели в момент времени t находится отдельный
маркер, который содержит значение логарифма вероятности ψj(t)
пройденной части пути. Этот маркер отображает соотношение межа
д
и
н
д
в
а
два
т
p
и
три
один
...
Рис. 1.11. Пример объединенной СММ
для метода прохождения маркеров
Wn–1
P1
S1
Wn
...
Pk
S2
Wn+1
...
Уровень слов
Wn
Уровень фонем
S3
Уровень состояний
Рис. 1.12. Три уровня описания распознающей сети
23
ду наблюдаемой последовательностью от o1 до ot и моделью, позволяющее заключить, что модель находится в состоянии j в момент
времени t. Для вычисления вероятности на каждом шаге алгоритма используется рекурсивная формула:
(1.17)
ψ j (t) = max{ψ i (t -1) + log(aij )} + log(bj (ot )). i
Эта формула используется в алгоритме, который выполняется в
каждый момент времени t для каждого маркера. Ключевые шаги
рекурсивного алгоритма следующие:
1) копия каждого маркера, находящегося в состоянии i, должна
пройти через следующее состояние j, тогда приращение логарифма
вероятности в маркере будет равняться log(aij ) + log(bj (ot ));
2) проверка маркеров в каждом состоянии и удаление всех маркеров, кроме маркеров с самой высокой вероятностью.
При достижении состояния конца некоторого слова в маркер записывается его индекс, а при выходе из каждого состояния маркеры размножаются (копированием) по числу дальнейших переходов
в модели. При этом в маркер записывается его путь (история) через сеть. Когда маркер переходит от выходного состояния одного
слова к входному состоянию другого, переход представляет собой
потенциальную границу слов, которая и записывается в историю
маркера. В итоге после обработки всей последовательности векторов наблюдений выбирается маркер, имеющий наибольшую вероятность. Когда наилучший маркер достигает конца обрабатываемого сигнала (последовательности наблюдений), то путь, которым он
проходит через сеть, известен в виде истории (хранящейся в маркере), и из маркера считывается последовательность пройденных
слов, которая и является гипотезой распознавания фразы. Данная
методика распознавания слитной речи эффективно используется в
настоящее время для автоматического распознавания речи.
1.5. Критерии оценки качества распознавания речи
Качество работы систем распознавания речи оценивается путем
сравнения последовательности распознанных слов с тем, что действительно было произнесено, при этом выделяют три типа ошибок: замена одного слова другим, удаление слова, вставка слова.
Таким образом, относительное количество (коэффициент) неверно
распознанных слов WER (word error rate) определяется следующим образом [9]:
24
E=
I+D+S
×100%, N
(1.18)
где D, I и S – количество неверно удаленных, вставленных и замененных слов соответственно; N – общее число слов в распознаваемом сообщении.
Существуют два критерия, по которым определяется качество
распознавания: правильность и точность распознавания. Правильность определяется следующим образом [34]:
H
×100%, N
(1.19)
H = N - D - S. (1.20)
C=
где H – количество правильно распознанных слов.
Этот критерий не учитывает ошибки, связанные со вставкой
слов, поэтому обычно используется другой критерий – точность
распознавания, который вычисляется по следующей формуле [34]:
A=
H-I
×100%, N
(1.21)
Пример
Представим, что была произнесена фраза: «По предварительным прогнозам в северо-западном регионе России действительно
станет теплее».
В результате же автоматического распознавания мы получили
следующую фразу: «По предварительным прогнозам в северо-западный регионе в российский состоится при».
Количество слов в исходной фразе N = 10. Определим количество ошибок, допущенных при распознавании. Были неправильно
распознаны слова: «северо-западном», «России», «станет», «теплее». То есть количество замен S = 4. Кроме того, было ошибочно вставлено слово «в» (I = 1) и удалено слово «действительно»
(D = 1). Тогда относительное количество неправильно распознанных
слов:
1 +1 + 4
E=
×100%= 60%.
10
Количество правильно распознанных слов:
H = 10 -1 - 4 = 5.
25
Правильность распознавания:
C=
5
×100%= 50%.
10
Точность распознавания:
A=
5 -1
×100%= 40%.
10
Кроме того, используется специальный показатель ошибки распознавания для флективных языков, к которым относится и русский [26]. Этот показатель ошибки распознавания для флективных
языков приписывает вес kinf_1 всем ошибкам, которые привели к
изменению лексемы, то есть целого слова (грубая ошибка распознавания S1 – замена лексемы) и вес kinf_2 всем ошибкам в словах, где
было неверно распознано окончание словоформы, но лексема слова
осталась правильной (негрубая ошибка S2 – замена окончания). В
этом случае флективная ошибка распознавания речи будет вычисляться следующим образом:
Einf =
I + D + kinf _ 1 × S1 + kinf _ 2 × S2
N
×100%. (1.22)
Весовые коэффициенты kinf_1 kinf_2 могут принимать значения
от 0 до 1, при этом должно выполняться условие kinf_1> kinf_2.
Пример
Для приведенной выше фразы определим флективную ошибку
распознавания при kinf_1 = 1 kinf_2 = 0,5. В трех словах ошибки распознавания привели к изменению лексемы (S1 = 3), а одна ошибка
была допущена только в окончании слова (было распознано «северо-западный» вместо «северо-западном»), то есть S2 = 1. Тогда
флективная ошибка распознавания слов во фразе будет равна:
Einf =
1 + 1 + 1× 3 + 0,5 ×1
×100%= 55%.
10
1.6. Обзор автоматических систем распознавания
русской речи
Распознаванием и анализом разговорной русской речи ученые
и инженеры начали заниматься еще в 30–40-х годах XX века. Первые действующие системы автоматического распознавания речи
26
были дикторозависимыми, могли распознавать ограниченное количество слов (десятки) и требовали предварительной настройки
на пользователя. Структура систем распознавания речи выбиралась, исходя из типа и сложности решаемой задачи. Но этот выбор
осложнялся обилием возможных технических решений на каждом
уровне обработки речи и трудностью их объективного сравнения.
Из наиболее известных первых систем распознавания русской
речи можно привести устройства линии «Речь» [36], разработанные под руководством Т. Винцюка (Киев, Украина). В основе данной системы заложена концепция последовательной обработки
речевой информации на основе динамического программирования
и временном представлении речи как результата нелинейного сжатия и растяжения.
Иное направление в области распознавания речи было заложено
В. Труниным-Донским [57]. В его исследованиях особое внимание
уделялось акустическим признакам способа и места образования
речи (временные, частотные, амплитудные) для принятия решения
на каждом шаге обработки речевой информации. В этом принципиальное отличие данного подхода от концепции, принятой в работах
коллектива Винцюка, опирающейся на математический метод.
Некоторые успешные разработки систем распознавания были
доведены до опытно-конструкторских работ и даже запущены в
серийное производство. Устройства распознавания-синтеза речи
МАРС-1, МАРС-2 [35] основаны на формантном методе анализа
и синтеза. Одна из первых систем распознавания русской речи с
большим словарем была разработана в IBM [12]. Размер словаря
системы распознавания составил до 36 тыс. слов.
В литературе [41] представлена система распознавания русской
речи на базе комплекса программ SDT, который был разработан на
предприятии ВНИИЭФ-СТЛ в ходе работ по контракту с фирмой
Intel и предназначался для построения систем распознавания слитной речи с большим словарем. Первоначально он создавался для
распознавания английского и китайского языков, затем на базе
SDT был построен прототип системы распознавания слитной речи
для русского языка. В данном прототипе не применялись алгоритмы, специально предназначенные для русского языка. Размер словаря системы распознавания составил до 23 тыс. слов. Также в литературе [25] для распознавания русской речи было предложено использовать графемы (минимальные единицы письменной речи, то
есть буквы) вместо фонем (минимальных единиц звукового строя
языка). Результаты экспериментов показали, что в общем случае
27
использование графем вместо фонем ухудшает точность распознавания. Однако создание увеличенного дерева решений при обучении триграфем позволило повысить точность распознавания.
Для работы со сверхбольшими словарями (до 2 млн слов) в разработан двухпроходный алгоритм распознавания дискретной и
слитной речи [48]. На первом этапе применяется фонетический
стенограф, на выходе которого получается набор распознанных фонем. Выход фонетического стенографа делится на пересекающиеся тройки фонем со сдвигом в одну фонему. Получающаяся тройка
фонем становится запросом к базе данных транскрипций. Ответ
на один запрос состоит из списка транскрипций, в которые входит
данная тройка фонем. Этот список копируется в подсловарь для
второго прохода алгоритма. На втором проходе речевой сигнал распознается в условиях ограниченного подсловаря. Для распознавания слитной речи дополнительно используется граф формирования
слов. Каждая тройка фонем из ответа фонетического стенографа
порождает промежуточную вершину с номером, синхронным времени появления тройки фонем. Транскрипции вставляются между
промежуточными вершинами так, чтобы порождающие тройки
фонем оказались в одной колонке по вертикали. Такой способ позволил сократить время распознавания, однако точность распознавания ухудшилась.
В СПИИРАН авторами также разработана система автоматического распознавания русской речи, получившая название SIRIUS
(SPIIRAS Interface for Recognition and Integral Understanding of
Speech) [40], в которой введен дополнительный уровень представления языка и речи – морфемный уровень. За счет разделения словоформ на морфемы словарь распознаваемых лексических единиц
значительно сократился, так как в процессе словообразования часто используются одни и те же морфемы. Разработана также модель
компактного представления словарей сверхбольшого размера для
систем распознавания речи флективных языков (в частности русского) на базе двухуровневого морфофонемного префиксного графа
(ДМПГ) [52]. По сравнению с базовыми подходами в модели ДМПГ
число структурных элементов (узлы фонем, основ, концовок и дуги)
сокращается более чем на порядок. В процессе декодирования русской слитной речи модель ДМПГ обеспечивает формирование на
выходе распознавателя только грамматически правильных слов и
позволяет увеличить скорость распознавания.
Автоматическим распознаванием русской речи с большим словарем в России также занимаются коммерческие компании «Центр
28
речевых технологий» [16], «СТЭЛ», «Vocative» [6] и ряд других.
Существует также консорциум «Российские Речевые Технологии», объединяющий основных разработчиков и исследователей.
Организуются также специальные конференции в данной области,
например «Речь и Компьютер» SPECOM, «Анализ разговорной русской речи» АР-3, «Диалог».
Вопросы и упражнения
1. В чем состоит задача автоматического распознавания речи?
2. Для каких задач управления можно применять речевые интерфейсы?
3. Укажите возможные способы классификации систем распознавания речи.
4. Как классифицируются системы распознавания речи по размеру словаря?
5. Какие существуют типы речи?
6. Для чего необходимо параметрическое представление речи в
системах автоматического распознавания?
7. Как вычисляются мел-частотные кепстральные коэффициенты для сегментов речевого сигнала?
8. Вычислите значение fmel по мел-частотной шкале для любого
произвольного значения частоты f сигнала, выбранного в диапазоне 0–20кГц.
9. Что такое вероятностная марковская цепь?
10. Приведите пример описания марковской модели с произвольным числом состояний от 4 до 7.
11. Как определяется скрытая марковская модель?
12. В чем состоит отличие скрытой марковской модели от простой марковской модели?
13. С помощью каких параметров задается гауссовское (нормальное) распределение переменной?
14. Опишите суть метода передачи маркеров для распознавания
слитной речи.
15. Назовите способы оценки качества распознавания речи.
16. Наберите произвольную осмысленную фразу, удалите в ней
2–3 любых слова (имитация распознавания) и посчитайте гипотетическую точность распознавания слов этой фразы.
29
2. МЕТОДЫ МОДЕЛИРОВАНИЯ ВАРИАТИВНОСТИ
ПРОИЗНОШЕНИЯ СЛОВ В РАЗГОВОРНОЙ РЕЧИ
Одной из проблем автоматического распознавания разговорной
речи является вариативность произношения слов. Одни и те же слова могут произноситься различными дикторами по-разному. Кроме
того, произношение одного и того же человека может меняться в зависимости от стиля и темпа речи. Например, слово «шестьдесят»,
которое имеет базовую транскрипцию /ш ы зꞌ дꞌ и сꞌ á т/, соответствующую каноническому произношению, в разговорной речи часто произносится как /ш ы сꞌ á т/ или даже /ш сꞌ á т/. Это приводит к снижению точности распознавания речи. Качественная и количественная
редукция гласных, ослабление согласных, выпадение согласных,
уменьшение степени контрастности между гласными и согласными
в пределах слога являются основными особенностями спонтанной
речи [56]. Поэтому фонетическое представление произнесенных слов
часто не совпадает с транскрипциями, сделанными для изолированных слов по фонетическим правилам русского языка.
2.1. Обзор основных методов моделирования
вариативности произношения слов
В современных системах распознавания разговорной речи для
учета вариативности произношения помимо базовых транскрипций, которые создаются по фонетическим правилам, в словарь
включают список альтернативных транскрипций. От метода, выбранного для создания альтернативных транскрипций, будет зависеть, насколько точно они отражают вариативность разговорной
речи. Существует два основных подхода к описанию вариативности
произношения [1]: методы, основанные на знаниях, и методы, основанные на данных (см. рис. 2.1). Рассмотрим эти методы более
подробно.
В методах, основанных на знаниях, вариативность произношения определяется путем анализа существующих фонетических и
лингвистических знаний, сформулированных экспериментальной
фонетикой в ходе анализа речевых данных и акустико-артикуляторных характеристик фонем. Главная проблема этих методов заключается в том, что они описывают только часто возникающие
отклонения в речи, при этом учитывается достаточно узкий фонетический контекст. Генерация транскрипций производится путем
30
Методы учета вариативности
произношения
Основанные
на знаниях
Основанные
на данных
Прямые
Косвенные
Прямые
Косвенные
Осуществляется
путем последовательного анализа
каждой базовой
транскрипции
и добавления
альтернативных
вариантов
произношения
с учетом знаний
эксперта
Используется
некоторый набор
правил редукции
и ассимиляции ,
которые применяются для
синтеза альтернативных
транскрипций
по имеющемуся
списку базовых
транскрипций
В качестве
альтернативных
транскрипций
используются
только часто
встречающиеся
в обучающем
корпусе варианты произношения слов
По речевому
корпусу выявляются наиболее
характерные
изменения
в произношении
одинаковых
цепочек фонем
в различных
словах
Рис. 2.1. Методы учета вариативности произношения
применения всех возможных комбинаций правил к базовым транскрипциям, при этом обычно не учитывается частота встречаемости
правил, а также их комбинаций. Поэтому в зависимости от количества используемых правил синтезируется слишком много или
слишком мало вариантов произношения.
В методах, основанных на данных, альтернативные транскрипции создаются в процессе анализа обучающих многодикторных
корпусов спонтанной речи. Собранные реальные транскрипции
слов могут описать только те отклонения, которые встретились в
данном корпусе. Поэтому полнота альтернативных транскрипций
будет напрямую зависеть от размера и представительности речевого корпуса. В отличие от методов, основанных на знаниях, здесь
по обучающему корпусу можно посчитать вероятности появления
каждой альтернативной транскрипции и частоту возникновения
каждого типа отклонения. Тем не менее, если корпус недостаточно
представителен, то полученные альтернативные транскрипции, а
также их вероятности могут быть характерны для некоторого частного случая и не смогут описать все возможные отклонения, возникающие в спонтанной речи.
31
В обоих вариантах учета вариативности произношения также
используют прямое и косвенное моделирование. В методах, основанных на знаниях, прямое моделирование осуществляется путем
последовательного анализа каждой базовой транскрипции и добавления альтернативных вариантов произношения с учетом знаний
эксперта. При косвенном моделировании используется некоторый
набор правил редукции и ассимиляции, которые применяются для
синтеза альтернативных транскрипций по имеющемуся списку базовых транскрипций.
При прямом моделировании в методах, основанных на данных,
в качестве альтернативных транскрипций используются только часто встречающиеся в обучающем корпусе варианты произношения
слов. При косвенном моделировании выявляются наиболее характерные изменения в произношении одинаковых цепочек фонем в
различных словах, то есть по речевому корпусу определяют правила наиболее типичных изменений на уровне фонем.
Для обоих подходов при выборе метода косвенного моделирования необходимо правильно обобщать (формализовать) наблюдаемую вариативность. Если некоторая вариативность появляется в
сильно различающихся контекстах, обобщение может быть неправомерным. Так, наблюдаемая вариативность в служебных словах
не обязательно подходит для ключевых слов, даже если фонетический контекст является тем же.
Чтобы избежать появления некорректных правил в подходе,
основанном на данных, анализируются два корпуса речи: обучающий и тестовый. В ходе косвенного моделирования вариативности
транскрипций выбираются только те правила изменения произношения, которые были выявлены в обучающем корпусе и подтвердились при анализе тестового корпуса речи.
Существует ряд причин, по которым применение косвенного
моделирования в подходе, основанном на данных, является более
перспективным. Во-первых, списки слов, использованных в обучающем и тестовом корпусах, могут отличаться. Поэтому альтернативные транскрипции для слов, которые присутствуют в обучающем корпусе, но отсутствуют в тестовом корпусе, будут отклонены.
Использование правил позволяет описать наиболее характерные
изменения, которые наблюдаются в ряде слов, что обеспечивает сохранение правил в процессе их проверки на тестовом корпусе. Во-вторых, правила строятся для цепочек фонем, а не полных
транскрипций, и поэтому одно и то же правило может выполняться
в различных словах. Так как статистика по встретившимся пра32
вилам будет более представительной, чем статистика по альтернативным транскрипциям, то и достоверность правил будет более высокой. Наконец, прямое моделирование межсловных явлений не
представляется возможным, поскольку это требует полного перебора всех возможных комбинаций транскрипций слов. В случае косвенного моделирования возможные изменения на стыке слов могут
быть заданы с помощью правил, которые применяются для любых
комбинаций слов. В некоторых случаях для часто употребляемых
пар знаменательных и служебных слов создаются базовые транскрипции, в которых уже учтены межсловные изменения на стыке
служебного и знаменательного слова [8].
Среди первых подходов к моделированию правил произношения можно выделить метод, использующий решающие деревья
(Classification and regression trees) [3, 22]. Для каждого звука строится собственное дерево решений. Фонетическое дерево решений
представляет собой двоичное дерево, в котором в каждом узле проверяется левый или правый контекст фонемы [11]. На рис. 2.2 показан пример использования дерева решений.
В последнее время наблюдается тенденция к переходу от методов, основанных на знаниях, к методам, основанным на данных.
Было отмечено, что большую вариативность имеют те сегменты
/т/
Слева находится гласный заднего ряда?
да
нет
Слева находится гласный?
нет
Слева находится
взрывной согласный?
нет
да
да
Справа есть гласный?
нет
да
Справа находится глухой
фрикативный согласный?
нет
да
Слева находится
сонорный согласный?
нет
да
Слева находится
согласный?
нет
да
Рис. 2.2. Пример использования решающего дерева для фонемы /т/
33
(цепочки фонем), которые чаще встречаются в речи. Причина распространенности методов, основанных на данных, заключается
в том, что они ориентированы на моделирование часто встречающихся сегментов. В то же время, более детальное описание таких
сегментов позволит существенно повысить точность распознавания
речи, так как слова, употребляемые чаще всего, будут иметь большее влияние на уровень ошибок слов.
Также следует заметить, что большинство современных систем
автоматического распознавания речи основано на статистических
подходах и различия и сходства звуков, воспринимаемые людьми,
не всегда являются полезными для автоматических систем. Поэтому обычно используют комбинацию методов, основанных на знаниях и данных. Например, используя знания о явлениях редукции
и ассимиляции, составляется некоторый набор правил, по которому синтезируется словарь, включающий альтернативные транскрипции. Затем по размеченному вручную речевому корпусу проверяется, какие из альтернативных транскрипций действительно
существуют, и оцениваются вероятности соответствующих правил
редукции и ассимиляции.
При создании словаря альтернативных транскрипций обычно
используется несколько итераций. При нахождении новой транскрипции требуется переобучение акустических моделей путем повторного транскрибирования обучающего набора с использованием
новой транскрипции. Обычно это приводит к увеличению точности
распознавания. Последующая итерация с использованием переобученных моделей для новых транскрипций позволяет выявить новый набор транскрипций, что может дать еще большее увеличение
производительности. Моделирование вариативности произношения на уровне лексических моделей уменьшает необходимость моделирования вариативности в акустических моделях. Переобучение акустических моделей после модификации словаря транскрипций дает лучший результат распознавания из-за того, что модели
лучше отражают обучающие данные.
2.2. Комбинированный метод моделирования
вариативности произношения
Дадим формальную постановку задачи моделирования вариативности произношения при использовании комбинированного
метода. Имеется множество слов, для которых необходимо соз34
дать транскрипции S = {s1,..., sN }, где N – количество слов. Тогда словарь, содержащий базовые и альтернативные транскрипции – V = {v1,...,vi ,...,vN }, его элемент представляет собой пару
vi =< Oi ,ti >, где Oi – орфографическое написание i-го слова, Ti –
множество транскрипций для i-го слова. Орфографическое напиχ
1
сание i-го слова представлено в виде вектора: Oi = (oi ,..., oi ), где
x– длина слова в буквах, oi Î L, где L = {l0 , l1,..., l33 } – множество
букв русского языка, l0 – символ ударения. Множество транскрип-
{
ций для i-го слова Ti = ti0 ,ti1,...tij
}
включает {ti0} базовую транскрипцию i-го слова и множество альтернативных транскрипций
{ti1,...,tij }, j – количество альтернативных транскрипций для сло-
ва i, tij = (wij ,...,wij ), wij Î Y, где Y = {y1,..., y46 } – множество фонем
1
J
русского языка и речи. Базовый словарь системы распознавания
{
0
речи V 0 = v10 ,...,vN
}
строится только на основе базовых транс-
крипций слов, элементы которого представляют собой множество
пар vi0 =< Oi ,ti0 > . Также формируется частотный фонематический
{
}
freq
словарь: V freq = v0freq ,...vN
, где vifreq =< Oi ,Ti , Fi >, Fi – частота
появления базовой и альтернативных транскрипций для i-го слова
{
}
представляет собой множество Fi = fi0 ,...fij , где fij Î À – множество натуральных чисел.
Обучение акустико-фонетических единиц для системы распознавания речи производится по обучающему корпусу речи
D =< C, B, A >, состоящему из орфографического C фонематического B акустического A представления текстовых данных. Орфографическое представление текстовых данных обучающего
речевого корпуса содержит некоторую последовательность слов –
C = (c1,..., cψ ), где ψ – количество слов в обучающем корпусе. Фонематическое представление звуковых данных этого речевого корпуса имеет вид: B = (b1,..., bψ ). Акустическое представление речевого
сигнала, состоящего из последовательности цифровых отсчетов:
A = (a1,..., aa ).
При создании базовых транскрипций словаря V0 используется
множество канонических фонетических правил транскрибирования: Q = (q1,...,qζ ), где ζ – количество правил словообразования.
35
Для расширения словаря V0 и формирования словаря V можно использовать две группы правил: 1) множество правил внутрисловной и межсловной редукции: R = {r1,...,rp }, где p – количество правил; 2) множество правил межсловной ассимиляции звуков речи:
H = {h1,..., hµ }, где μ – количество правил.
Тогда с учетом введенных элементов задачу акустико-фонетического моделирования речи можно сформулировать следующим
образом. Для заданного обучающего корпуса D на основе базовых
правил транскрибирования Q и комбинации правил редукции R и
ассимиляции A требуется построить множество альтернативных
транскрипций Ti для множества слов S произвести последующий
отбор с учетом частоты их встречаемости Fi в речевом корпусе и
сформировать словарь Vbest, содержащий базовые и альтернативные транскрипции. Указанная задача может быть представлена в
виде последовательности отображений:
Q
R,H
D
F
S ¾¾
® V 0 ¾¾¾
® V ¾¾
® V freq ¾¾
® V best .
Изменения звуков речи, которые обычно учитываются при базовом транскрибировании, описаны в литературе [60]. Описаны
также закономерности изменения звуков, характерные для разговорной речи [38]. Предложены правила для учета внутрисловной и
межсловной редукции и ассимиляции при автоматическом синтезе
речи [45]. Формализованные и адаптированные для задачи распознавания речи правила создания базовых и альтернативных транскрипций также представлены в литературе [42].
Пример базовых правил транскрибирования:
– в положении перед глухими шумными согласными звонкие
шумные согласные оглушаются, и на их месте выступают глухие
шумные;
– в положении перед звонкими шумными согласными, кроме
/в/, /вꞌ/, глухие шумные озвончаются, и на их месте выступают
звонкие шумные.
Пример расширенных правил транскрибирования:
– безударные гласные редуцируются до полного исчезновения,
если они находятся между одинаковыми согласными (балалайка
/балала!йка/→/балла!йка/);
– согласная /й/ в конце слова редуцируется до полного исчезновения, если ей предшествует безударная гласная, а следующее слово начинается с любой фонемы, кроме ударной гласной (драгоценный камень /драгацэ!ный ка!мꞌинꞌ/→/драгацэ!ны ка!мꞌинꞌ/);
36
– первая в слове гласная /и/ после всех твердых согласных переходит в фонему /ы/ (фильм интересный /фꞌи!лꞌм инꞌтꞌирꞌэ!сный/→
/фꞌи!лꞌм ынꞌтꞌирꞌэ!сный/).
Схема комбинированного метода транскрибирования текстов
показана на рис. 2.3. Вначале создаются базовые транскрипции
словоформ. При этом к списку слов последовательно применяются
базовые фонетические правила транскрибирования. Затем полученный список базовых транскрипций поступает на уровень учета
внутрисловной и межсловной редукции и ассимиляции, где для
каждой базовой транскрипции слова определяется, какие фонемы
могут быть подвержены изменению. Если таких потенциальных
фонем в слове больше одной, то производится генерация всех возможных вариантов произношения слова. Полученный таким образом набор транскрипций теоретически должен содержать все варианты произношений, которые могут возникать в разговорной речи
различных людей.
Список слов
S
Предварительная
обработка списка слов
Набор базовых
фонетических правил
Набор правил редукции
и ассимиляции
Q
Базовое фонетическое
транскрибирование
R, H
Учет внутрисловной
и межсловной редукции
звуков
D
Обучающий
корпус речи
D
Словарь с наилучшими
альтернативными
транскрипциями
V best
Обучение
моделей фонем
O
V0
Базовый
фонематический
словарь
Полный
фонематический
словарь
V
Принудительное
выравнивание
транскрипций
Выбор часто
употребляемых
транскрипций по порогу
Словарь словоформ
с ударениями
Частотный
фонематический
словарь
V freq
Рис. 2.3. Схема метода создания фонематического словаря
системы распознавания речи
37
В качестве вероятностных моделей фонем используется набор непрерывных СММ первого порядка с тремя состояниями. Создание и
обучение моделей фонем производится с учетом экспертной разметки части речевого корпуса. Для выбора из множества альтернативных транскрипций и сокращения избыточности словаря осуществляется их принудительное выравнивание (forced alignment) [15],
при котором распознаватель выбирает из списка альтернативных
транскрипций наиболее подходящую речевому сигналу и сегментирует сигнал на фонемы с их временными метками. В этом случае
выбор транскрипции происходит только между альтернативными
транскрипциями одного и того же слова, а не между транскрипциями разных слов.
Наилучшая транскрипция для слова выбирается из альтернатив
следующим образом [24]:
Bˆ = arg max P ( B | O,W ) = arg max P (O, B | W ) =
B
B
= arg max PAM (O | B,W ) PD (O | W ),
(2.1)
B
где B̂ находится по алгоритму Витерби [21]; PAM, PD представляют
собой основные акустические модели и словарь соответственно, O –
последовательность векторов признаков, B – последовательность
фонем, W – последовательность произнесенных слов. Изначально
альтернативные транскрипции для каждого слова рассматриваются равновероятными.
Основой процедуры принудительного выравнивания является алгоритм Витерби (представлен в разделе 1), который находит
оптимальную последовательность состояний СММ на основе максимальной акустической вероятности соответствия модели сигналу. Суть классического алгоритма Витерби заключается в задании
начальных параметров модели с последующим чередованием фаз
оценки и максимизации параметров по критерию максимального
правдоподобия.
Для каждого выравнивания алгоритм Витерби вычисляет вероятность того, что фонематическая транскрипция и речевой сигнал
подходят друг другу. Наибольшие вероятности при выравнивании
транскрипций каждого слова позволяют выбрать оптимальные варианты транскрипций. В результате выполнения принудительного
выравнивания выбирается транскрипция, наиболее оптимально
подходящая определенному участку речевого сигнала. Транскрипции, которые ни разу не выбрались при принудительном выравни38
вании, исключаются из словаря, и таким образом, создается сокращенный словарь транскрипций. Однако этот сокращенный словарь
также еще является избыточным и содержит редкие варианты
произношения, что приводит к увеличению акустической и лексической неоднозначности. Поэтому для уменьшения избыточности
словаря производится анализ того, насколько часто каждая альтернативная транскрипция выбиралась в ходе обучения, и создается
частотный словарь транскрипций. Таким образом, в итоговый расширенный словарь добавляются только те транскрипции, относительная частота появления которых (то есть отношение числа появлений транскрипции в речевом корпусе к числу появлений слова в
орфографическом представлении обучающего корпуса) выше определенного задаваемого эмпирически порога ktran_freq:
ψ
ì
ï
ï
ï
{bj | bj = ti }
å
ï
ï
äîáàâèòü ti
j=1
ï
"oi Î O, ï
> ktran _ freq ,
ï
ψ
:í
â ñëîâàðü V best , (2.2)
ti Î T ïï å {cj | cj = oi }
ï
ï
j=1
ï
ï
ï
èíà÷å,
ïðîïóñòèòü ti
ï
ï
î
В результате создается расширенный (относительно базового)
словарь фонематических транскрипций, содержащий наилучшие
транскрипции для каждого слова, встретившиеся в обучающем речевом корпусе.
Пример
Рассмотрим процесс создания транскрипций для слова «шестьдесят». Базовая транскрипция:
ШЕСТЬДЕСЯТ_0 /ш ы зꞌ дꞌ и сꞌ а! т/.
Альтернативные варианты транскрипций, созданные автоматически методом, основанным на знаниях:
ШЕСТЬДЕСЯТ_1 /ш зꞌ дꞌ и сꞌ а! т/
ШЕСТЬДЕСЯТ_2 /ш ы зꞌ и сꞌ а! т/
ШЕСТЬДЕСЯТ_3 /ш ы зꞌ дꞌ сꞌ а! т/
ШЕСТЬДЕСЯТ_4 /ш зꞌ и сꞌ а! т/
ШЕСТЬДЕСЯТ_5 /ш зꞌ дꞌ сꞌ а! т/
ШЕСТЬДЕСЯТ_6 /ш ы зꞌ дꞌ и сꞌ а! д/
ШЕСТЬДЕСЯТ_7 /ш зꞌ дꞌ и сꞌ а! д/
ШЕСТЬДЕСЯТ_8 /ш ы зꞌ и сꞌ а! д/
ШЕСТЬДЕСЯТ_9 /ш ы зꞌ дꞌ сꞌ а! д/
39
ШЕСТЬДЕСЯТ_10 /ш зꞌ и сꞌ а! д/
ШЕСТЬДЕСЯТ_11 /ш зꞌ дꞌ сꞌ а! д/
В ходе выполнения принудительного выравнивания и метода,
основанного на данных из многодикторного речевого корпуса, был
получен следующий частотный словарь транскрипций:
ШЕСТЬДЕСЯТ_0 /ш ы зꞌ дꞌ и сꞌ а! т/ 52
ШЕСТЬДЕСЯТ_2 /ш ы зꞌ и сꞌ а! т/ 26
ШЕСТЬДЕСЯТ_3 /ш ы зꞌ дꞌ сꞌ а! т/ 24
ШЕСТЬДЕСЯТ_4 /ш зꞌ и сꞌ а! т/ 33
ШЕСТЬДЕСЯТ_5 /ш зꞌ дꞌ сꞌ а! т/ 3
ШЕСТЬДЕСЯТ_6 /ш ы зꞌ дꞌ и сꞌ а! д/ 13
ШЕСТЬДЕСЯТ_8 /ш ы зꞌ и сꞌ а! д/ 7
ШЕСТЬДЕСЯТ_9 /ш ы зꞌ дꞌ сꞌ а! д/ 7
ШЕСТЬДЕСЯТ_10 /ш зꞌ и сꞌ а! д/ 17
При этом произнесение слова «шестьдесят» встретилось в данном речевом корпусе ровно 182 раза. Остальные варианты транскрипций не встретились ни разу. Установим величину относительного порога ktran_freq = 0,13 для отсечения редких вариантов произнесений. Тогда относительная частота встречаемости транскрипций для слова «шестьдесят» в обучающем корпусе:
ШЕСТЬДЕСЯТ_0 0,286
ШЕСТЬДЕСЯТ_2 0,143
ШЕСТЬДЕСЯТ_3 0,132
ШЕСТЬДЕСЯТ_4 0,181
ШЕСТЬДЕСЯТ_5 0,016
ШЕСТЬДЕСЯТ_6 0,071
ШЕСТЬДЕСЯТ_8 0,038
ШЕСТЬДЕСЯТ_9 0,038
ШЕСТЬДЕСЯТ_10 0,093
Таким образом, в итоговый расширенный словарь войдут следующие транскрипции:
SHESTDESYAT_0 /ш ы зꞌ дꞌ и сꞌ а! т/
SHESTDESYAT_2 /ш ы зꞌ и сꞌ а! т/
SHESTDESYAT_3 /ш ы зꞌ дꞌ сꞌ а! т/
SHESTDESYAT_4 /ш зꞌ и сꞌ а! т/
Рассмотренные в разделе подходы к моделированию вариативности произношения применяются на этапе формирования расширенного словаря системы распознавания речи и связаны с созданием дополнительных транскрипций слов, то есть проводится
моделирование единиц на акустико-фонетическом уровне обработки речи. Оптимизация методов на этом уровне позволяет добиться
40
приемлемой точности распознавания отдельных слов, но с переходом к обработке слитной и тем более разговорной речи необходимо подключение высокоуровневых модулей оценивания последовательностей слов [53], поэтому в следующем разделе рассмотрим
ряд основных подходов к построению моделей языка, применение
которых обеспечивает отбор лучших гипотез распознавания фраз
по синтаксическому и вероятностному критериям.
Вопросы и упражнения
1. В чем состоит проблема вариативности речи для автоматических систем?
2. Для чего применяются фонематические транскрипции в системах распознавания речи?
3. Как в системе распознавания речи используется словарь произношения слов?
4. Создайте фонематические транскрипции вашего произношения пяти произвольных чисел (от “0” до “20”).
5. Какие существуют методы моделирования вариативности
произношения?
6. В чем состоит суть моделирования вариативности произношения в методах, основанных на знаниях?
7. В чем состоит суть моделирования вариативности произношения в методах, основанных на данных?
8. Как осуществляется прямое и косвенное моделирование вариативности речи?
9. Как используются решающие деревья для моделирования вариативности произношения речи?
10. Приведите пример комбинированного метода моделирования вариативности произношения слов.
11. Какая информация содержится в расширенном словаре фонематических транскрипций слов?
12. Что понимается под принудительным выравниванием транскрипций в методах, основанных на данных, и какой алгоритм для
этого используется?
41
3. МЕТОДЫ ЯЗЫКОВОГО МОДЕЛИРОВАНИЯ РЕЧИ
Для задачи стенографирования разговорной речи с большим
словарем необходима модель языка для генерации грамматически
правильных и осмысленных гипотез произнесенной фразы. Одной
из наиболее эффективных моделей естественного языка является
статистическая модель на основе n-грамм, цель которой состоит в
оценке вероятности появления цепочки слов W = (w1,w2 ,...,wm ) в
некотором тексте. n-граммы представляют собой последовательность из n элементов (например, слов), а n-граммная модель языка
используется для предсказания элемента в последовательности, содержащей n-1 предшественников [37]. Эта модель основана на предположении, что вероятность какой-то определенной n-граммы, содержащейся в неизвестном тексте, можно оценить, зная, как часто
она встречается в некотором обучающем тексте.
Вероятность P(w1,w2 ,...,wm ) можно представить в виде произведения условных вероятностей входящих в нее n-грамм [21]:
m
P(w1,w2 ,...,wm ) = Õ P(wi | w1,w2 ,...,wi-1 ), (3.1)
i=1
или аппроксимируя P(w) при ограниченном контексте длиной n-1:
m
P(w1,w2 ,...,wm ) @ Õ P(wi | wi-n+1,wi-n+2 ,...wi-1 ). (3.2)
i=1
Вероятность появления n-граммы вычисляется на практике следующим образом:
C(wi-n+1,...wi )
P(wi | wi-n+1,...wi-1 ) =
,
(3.3)
C(wi-n+1,...wi-1 )
где C – количество появлений последовательности в обучающем
корпусе.
Тривиальной моделью языка является нульграммная (n = 0) модель, которая предполагает, что каждое слово может следовать за
любым другим словом. Тогда вероятность появления слова определяется как [18]
1
,
P(wi ) =
(3.4)
|V |
где |V| = N – размер словаря системы автоматического распознавания речи V = {v1,v2 ,...,vN } .
42
Униграммная модель языка (n = 1) определяет вероятность появления i-го слова P(wi) в тексте. На практике обычно используются биграммная (n = 2), где определяется вероятность появления
пар слов P(wi|wi–1), и триграммная (n = 3) модель языка, которая
определяет вероятность появления троек слов в сказанной фразе
P(wi|wi–2,wi–1)
Дадим формальное описание математическое модели языка системы распознавания. Текстовые данные, собранные для обучения
модели языка: X = {x1, x2 ,..., xλ }, где λ – количество слов. Нормализованный обучающий текстовый корпус: Z = {z1, z2 ,..., za }, где
a – количество слов в обучающем текстовом корпусе. Множество
n-грамм слов: U = {u1,...,uβ }, где ui = ei , θi , где ei – n-грамма
ei = ( g1,..., gn ), где n – размерность n-грамм, θi – частота появления n-граммы в обучающем корпусе. Статистическая модель
языка: M = {m1,...,mδ }, mi = ei , pi , где pi – вероятность появления n-граммы. С учетом введенных элементов задачу языкового
моделирования можно сформулировать следующим образом. Для
заданного обучающего текстового корпуса Z на основе статистического анализа текста требуется построить модель языка M, отражающую обучающие данные:
norm
stat
X ¾¾¾® Z ¾¾¾
® U ¾¾
® M.
Диаграмма создания модели языка показана на рис. 3.1. Модель
языка создается по текстовому корпусу, который должен быть достаточно большого объема и соответствовать предметной области.
Вначале выполняется предварительная обработка текстового
материала, которая включает в себя разделение текста на отдельные предложения, замену заглавных букв на строчные, удаление
знаков препинания и т. п. Затем производится статистический
Исходные текстовые
данные
Списки
n-грамм слов
Предварительная
обработка данных
Нормализованный
текстовый корпус
Статистический анализ
текстового корпуса
Создание n-граммной
модели русского языка
n-граммная модель
языка
Рис. 3.1. Диаграмма процесса создания модели языка
43
анализ текстового корпуса, в результате которого создается список n-грамм слов, с частотой их появления в обучающем текстовом
корпусе. Затем по списку n-грамм создается модель языка.
3.1. Разновидности статистических моделей языка
Существует несколько вариантов организации моделей языка,
основанных на статистическом анализе текста. Модели, основанные на классах (Class-based models), используют функцию, которая
отображает каждое слово wi на класс ci: fi : wi ® f (wi ) = ci . В этом
случае оценка условной вероятности может быть аппроксимирована по n-грамме класса [30]:
P(wi | wi-n+1,...,wi-1 ) = P(wi | ci ) × P(ci | ci-1+1,..., ci-1 ). (3.5)
Функция отображения слова на класс может быть определена
вручную с использованием некоторой морфологической информации (например, информации о части речи). Также существуют методы, которые помогают определить функцию отображения автоматически по текстовому корпусу.
n-граммые модели обычно имеют ограниченный контекст
n = 2,3,4,5, потому что с увеличением n очень быстро растет число
параметров модели. Интервальные модели языка (distance models)
помогают включить больший контекст, чем n-граммы, но величина
коэффициента неопределенности модели остается того же порядка,
как у n-грамм. Например, биграммная интервальная модель может
быть задана следующим образом [30]:
P(wi | wi-M +1,...,wi-1 ) =
M-1
å λm Pm (wi | wi-m ), (3.6)
m=1
где M – это предопределенное число моделей; Pm (wi |wi-m ) – биграммная модель с пропуском m–1; λm –весовые параметры модели при условии
M-1
å λm = 1.
m=1
Значение весовых коэффициентов λm
определяется как зависимость от расстояния между словами wi и
wi–m (с увеличением расстояния величина весового коэффициента
уменьшается).
Триггерные модели (Trigger models) – другой тип моделей, которые моделируют взаимоотношение пар слов в более длинном контексте. В этом методе появление инициирующего слова в истории
44
увеличивает вероятность другого слова, называемого целевым, с
которым оно связано. Вероятность пар слов может быть определена
следующим образом [30]:
Pa®b (b | a Î h) =
C(a Î h, b)
,
C(a Î h)
(3.7)
здесь a – это инициирующее слово; b – целевое слово, функция C
определяет подсчет события в текстовом корпусе, h – история некоторого ограниченного размера для слова b, то есть слова, предшествующие в тексте слову b. Полная триггерная модель может быть
определена следующим образом [30]:
P(wi | wM ,...,wi-1 ) =
α(b, a) =
1 M
å α(wi ,wi-m ),
M m=1
Pa®b (b | a Î h)
,
å w Pa®w (w | a Î h)
(3.8)
здесь M определяет длину цепочки слов в анализируемой истории
h.
Упрощенной версией триггерных пар является кэш-модель (cache
model). Кэш-модель увеличивает вероятность появления слова в соответствии с тем, как часто данное слово употреблялось в истории,
поскольку считается, что, употребив конкретное слово, диктор будет использовать это слово еще раз либо из-за того, что оно является
характерным для конкретной темы, либо потому что диктор имеет
тенденцию использовать это слово в своем лексиконе. Кэш-модель
можно рассматривать как простую n-граммную модель с вероятностями, вычисленными по предшествующей истории слов. Обычная
униграммная кэш-модель может определяться как [30]:
i-1
å
C(wi , h) j=i-D
PC (wi | h) =
= i-1
C(h)
å
I (wi = wj )
j=i-D
,
(3.9)
I (w j Î V )
где D – это размер истории h; I –индикаторная функция; V – словарь модели языка. Более развитые кэш-модели объединяются с
убывающей функцией, которая моделирует такое явление языка,
что вероятность повторения слова уменьшается с увеличением расстояния от последнего появления слова в тексте:
45
i-1
å
PDC (wi | h) =
j=i-D
[I (wi = wj ) × d(i - j)]
i-1
å
,
(3.10)
d(i - j)
j=i-D
где d – некоторая убывающая функция.
Другим типом модели языка является модель на основе набора
тем (topic mixture models). Текстовый корпус вручную или автоматически делится на предопределенное число тем, и языковые модели создаются отдельно для каждой темы. Полная модель может
определяться как [30]
M
PTM (wi | hi ) = å λ j × Pj (wi | hi ), (3.11)
j=1
где M – это число тем и Pi – модель темы j с весом модели λj. Веса
модели могут быть статическими или динамическими. Если используются динамические веса модели, тогда они устанавливаются
для каждого слова wi в зависимости от предшествующей истории.
Такая модель может называться адаптивной моделью.
Модели, основанные на частях слов, (Particle-based models)
используются для языков с богатой морфологией, например
флективных языков [30]. В этом случае слово w разделяется
на некоторое число L(w) частей (морфем) с помощью функции
U : w ® U (w) = u1,u2 ,...,uL(w) ,ui Î ψ, где ψ – это набор частей слова.
Разделение слов на морфемы можно производить двумя путями:
при помощи словарных и алгоритмических методов [17]. Преимуществом алгоритмических методов является то, что они опираются
лишь на анализ текста и не используют никаких дополнительных
знаний, что позволяет анализировать текст на любом языке. Преимуществом словарных методов является то, что они позволяют
получить правильное разбиение слов на морфемы, а не на псевдоморфемные единицы (как в алгоритмических методах), что может
быть использовано далее на уровне пост-обработки гипотез распознавания фраз. В качестве значимых частей слов часто при распознавании речи с большим словарем используют морфемы. Такие
модели разработаны для целого ряда синтетических языков, например, финского [10], турецкого [2], венгерского [27], словенского [23], чешского [20], русского [39] и т. д. Обычно в русском языке
выделяют 6 типов морфем: префикс, корень, интерфикс, суффикс,
46
окончание, постфикс. Пример декомпозиции нескольких слов на
морфемы показан на рис. 3.2.
Хотя, по определению, n-граммные модели языка хранят только n слов, существуют модели, которые не ограничивают последовательности слов до определенного n, а вместо этого хранят различные последовательности разной длины. Такие модели называют n-граммами переменной длины (varigrams) [19]. По существу,
они могут рассматриваться как n-граммные модели с большим n и
такими принципами сокращения длины моделей, которые сохраняют только небольшой поднабор всех длинных последовательностей, встретившихся в обучающем тексте.
Также применяется дальнодействующая триграммная модель [49], представляющая собой обычную триграммную модель, в
которой разрешены связи между словами, находящимися не только в пределах двух предыдущих слов, но и на большем расстоянии
от предсказываемого слова. Лежащая в основе «грамматика» представляет собой множество пар слов, которые могут быть связаны
вместе через несколько разделяющих слов.
Существуют также составные языковые модели [58]. Вводится
понятие категорной языковой модели и, в частности, категорных
n-грамм. Каждому слову в словаре приписываются 15 атрибутов,
определяющих грамматические показатели словоформы. Множество значений атрибутов определяет класс словоформы. Каждое
слово в предложении рассматривается как его начальная форма и
морфологический класс. В итоге грамматика разбивается на две составляющие: изменяемую часть (основанную на морфологии) и постоянную часть (основанную на начальных формах слов), которая
строится как n-граммная языковая модель.
В системах распознавания русской речи, для которой характерен нежесткий порядок слов, может использоваться синтаксическо-статистическая модель языка, позволяющая учесть дальнодействующие связи между словами [14]. Для создания такой модели
Приставка Корень
Суффиксы
ПЕРЕКЛЮЧАЮЩИЕСЯ
НА ЗНАЧ АЮЩИЕСЯ
СО ЧЕТ АЮЩИЕСЯ
ВРАЩ АЮЩИЕСЯ
Рис. 3.2. Пример декомпозиции слов на морфемы
47
Синтаксический
анализ
Обучающий
текстовый
корпус
Выявление
синтаксических групп
Статистический
анализ
Синтаксическостатистическая
модель языка
Объединение
n-граммных моделей
Рис. 3.3. Процесс создания синтаксическостатистической модели языка
вначале выполняется статистический анализ текстового корпуса
и создается список n-грамм слов. Затем производится синтаксический анализ, в ходе которого выявляются грамматически связанные пары слов (синтаксические группы), которые были разделены
в тексте другими словами. Такие синтаксические группы добавляются к списку n-грамм слов, полученных в ходе статистического
анализа текстового корпуса. Диаграмма создания синтаксическостатистической модели языка показана на рис. 3.3.
Следует обратить внимание на то, что рассмотренные варианты
n-граммных языковых моделей обладают универсальностью и применимы к большинству естественных языков.
3.2. Вычисление энтропии
и коэффициента неопределенности модели языка
Для анализа качества созданных моделей языка вычисляют
информационную энтропию и коэффициент неопределенности модели языка для тестового текстового корпуса. Информационная
энтропия – мера хаотичности информации, неопределенность появления какого-либо символа первичного алфавита [59]. При отсутствии информационных потерь она численно равна количеству
информации на символ передаваемого сообщения. Поскольку тексты на естественном языке могут рассматриваться в качестве информационного источника, энтропия вычисляется по следующей
формуле [18]:
H = - lim
1
å
m®¥ m w ,w ,...,w
1 2
m
48
(P(w1,w2 ,...,wm )(log2 P(w1,w2 ,...,wm ). (3.12)
Это суммирование делается по всем возможным последовательностям слов текстового корпуса. Но поскольку язык является эргодическим источником информации (случайный процесс эргодичен [59], если все его статистические характеристики с вероятностью, сколь угодно близкой к единице, можно предсказать по одной реакции из ансамбля с помощью усреднения по времени) [18],
выражение для вычисления энтропии будет выглядеть следующим
образом:
ˆ = - 1 log2 P (w1,w2 ,...,wm ). H
m
(3.13)
Коэффициент неопределенности является параметром, по которому оценивается сложность n-граммных моделей языка, и вычисляется следующим образом [18]:
1
ˆ
PP = 2H = Pˆ (w1,w2 ,...,wm ) m . (3.14)
где Pˆ (w1,w2 ,...,wm ) – это вероятность последовательности слов
w1,w2 ,...,wm .
Коэффициент неопределенности показывает, сколько в среднем
различных наиболее вероятных слов может следовать за данным
словом. Были вычислены значения коэффициентов неопределенности и информационной энтропии для русского языка для некоторого оценочного текстового корпуса [43]. Для униграммной модели величина коэффициента неопределенности составила 5493,1;
энтропии – 12,4 бит/слово; для биграммной модели коэффициент
неопределенности равен 776,7; энтропия – 9,6 бит/слово; для триграммной модели коэффициент неопределенности равен 452,1;
энтропия – 8,8 бит/слово. При этом размер словаря униграммной
и биграммной модели составил 208 тыс. слов, а триграммной –
76 тыс. слов. Полученные значения являются достаточно большими. Например, для английского языка при размере словаря в
200 тыс. слов, коэффициент неопределенности для биграммной
модели равен 232,0 [33], при этом энтропия будет приблизительно
равна 7,9 бит/слово.
Вопросы и упражнения
1. Для чего системам автоматического распознавания речи необходимы модели языка?
2. Что такое n-граммы?
49
3. В чем состоит суть n-граммного статистического моделирования языка?
4. Как создается n-граммная модель языка с использованием обучающих текстовых бах данных?
5. В чем состоит отличие однограммной модели языка от нульграммной?
6. Посчитайте вероятность появления слова в нульграммной модели языка для словаря произвольного размера от 25 от 250 слов.
7. Какие разновидности статистических моделей языка вы знаете?
8. В чем состоит суть триггерной n-граммной модели языка?
9. Для каких языков применяют морфемные модели?
10. Какой случайный процесс является эргодическим?
11. Что такое информационная энтропия? Приведите формулу
вычисления информационной энтропии.
12. Что такое коэффициент неопределенности модели языка?
Приведите формулу вычисления коэффициента неопределенности.
13. Для какого естественного языка (английского или русского)
коэффициент неопределенности модели выше и что это означает?
50
4. ОПИСАНИЕ КОМПЛЕКСА ПРОГРАММНЫХ СРЕДСТВ
ДЛЯ ПРОЕКТИРОВАНИЯ РЕЧЕВОГО ИНТЕРФЕЙСА
4.1. Архитектура комплекса программных средств
На рис. 4.1 показана общая архитектура разработанного комплекса программных средств системы распознавания разговорной
русской речи SIRIUS (SPIIRAS Interface for Recognition and Integral
Understanding of Speech), компоненты которого можно скачать из
сети Интернет по URL: http://www.spiiras.nw.ru/speech/sirius.zip.
Система работает в двух режимах: обучение и распознавание.
В режиме обучения создаются модели акустических единиц
речи, модель языка, а также фонематический словарь словоформ,
которые далее будут использоваться распознавателем. Для обучения акустических моделей используется вручную размеченный
корпус русской речи, а модель языка создается по текстовому корпусу. Таким образом, можно выделить следующие этапы процесса
обучения системы распознавания речи:
Блок обучения
моделей
акустических
единиц
Речевой
корпус
Звуковой сигнал от
микрофона или из
базы данных
СММ
акустических
единиц речи
Модуль сбора
речевых данных
Блок
предварительной
обработки
текстового
материала
Текстовый
корпус
Модуль сбора
текстовых
данных
Блок создания
транскрипций
слов
Блок выбора
лучших
транскрипций
Словарь
с транскрипциями слов
Блок
распознавания
Определение
границ речи
Предварительная
обработка
сигнала
Извлечение
признаков
Блок создание
n-граммной
модели языка
n-граммная
модель
языка
Декодирование
речи
Выбор
наилучшей
гипотезы
гипотеза
произнесенной фразы
Рис. 4.1. Архитектура комплекса программных средств обработки
русской речи SIRIUS
51
– предварительная обработка текстового материала для создания модели языка;
– создание транскрипций для слов из собранного текстового
корпуса;
– выбор наилучших транскрипций из множественных вариантов;
– создание стохастической модели языка;
– обучение вероятностных моделей акустических единиц речи.
В режиме распознавания входной речевой сигнал преобразуется в последовательность векторов признаков, и затем производится
поиск наиболее вероятной гипотезы с использованием предварительно обученных акустических и языковых моделей.
Блок обучения моделей акустических единиц речи
Для обеспечения дикторонезависимости системе распознавания
требуются речевые базы данных с записями большого числа дикторов. Обучение моделей акустических единиц речи производится с
использованием корпуса русской речи. Запись производится в шумоизолированной комнате. Диктору последовательно показываются специально разработанные фонетически-сбалансированные фразы, которые следует произнести, и каждая его фраза записывается
в отдельный звуковой wav файл. После записи речевых данных выполняется полуавтоматическая разметка акустического сигнала на
фразы, слова и фонемы. На выходе данного блока формируется набор СММ акустических единиц речи для принятого фонетического
алфавита.
Блок предварительной обработки текстового материала
Обучающий текстовый материал собирается с интернет-сайтов
электронных газет, откуда с помощью программы MetaProducts
Offline Explorer [55] или альтернативной закачиваются файлы,
имеющие расширение html. Каждый из этих файлов обрабатывается модулем Emsa HTML Tag Remover [54] или альтернативным,
который удаляет в них теги и преобразует их в текстовые файлы.
Затем получившиеся текстовые файлы объединяются в один,
при этом содержащийся в них текст разбивается на отдельные
предложения, а каждое предложение записывается с новой строки. Разбивку на предложения осуществляет программный модуль
sent_maker.pl. Предполагается, что предложения должны начинаться либо с заглавной буквы, либо с цифры. При этом учитывает52
ся, что в начале предложения могут стоять кавычки. Предложение
заканчивается точкой, восклицательным или вопросительным знаком либо многоточием. Кроме того, при разделении текста на предложения учитывается, что внутри предложения могут стоять инициалы и фамилия. Формально это похоже на границу раздела двух
предложений, поэтому, если точка идет после одиночной заглавной
буквы, то эта точка не будет считаться концом предложения. Предложения, содержащие прямую и косвенную речь, разделяются на
отдельные предложения. При этом возможны три случая:
1) прямая речь идет после косвенной;
2) прямая речь идет до косвенной;
3) косвенная речь находится внутри прямой речи.
В первом случае формальными признаками, при которых происходит выделение прямой и косвенной речи, является наличие
двоеточия, после которого следуют кавычки. Во втором случае разделение происходит, если после кавычек стоит запятая, а затем
тире. В третьем случае исходное предложение разбивается на три
предложения: первое – от кавычек до запятой и тире, второе – то,
что находится между первой запятой с тире до второй запятой с
тире, третье – от запятой с тире до конца предложения.
Кроме того, данный программный модуль удаляет текст, написанный в любых скобках, а также предложения, состоящие из
пяти и меньшего количества слов (как правило – это заголовки, составленные не по грамматическим правилам для полных предложений).
Затем производится нормализация текстового корпуса с помощью программного модуля cleanup.pl. Начало и конец предложения отмечаются метками <s> и </s> соответственно. Затем из
текстов удаляются знаки препинания, символы ꞌꞌ№ꞌꞌ и ꞌꞌ#ꞌꞌ меняются на слово «номер». Все числа и цифры объединяются в единый
класс, который обозначается в результирующем тексте символом
ꞌꞌ№ꞌꞌ. За одно число принимается группа цифр, которые могут быть
разделены точкой, запятой, пробелом или тире. Также символом
ꞌꞌ№ꞌꞌ обозначаются римские цифры, которые представляют собой
совокупность латинских букв I, V, X, L, C, D, M, которые могут
быть разделены пробелом или тире. В отдельные классы выделяются интернет-адреса (обозначаются знаком ꞌꞌ<>ꞌꞌ) и E-mail адреса
(обозначаются символом ꞌꞌ<@>ꞌꞌ). Затем происходит расшифровка
общепринятых сокращений (например, «см», «кг»). В словах, начинающихся с заглавной буквы, происходит замена заглавной буквы на строчную. Если все слово написано заглавными буквами, то
53
замена не делается, так как это слово, вероятно, является аббревиатурой. Знаки препинания из текстов удаляются.
Модуль создания частотного словаря (text2wfreq.exe) является
исполняемым модулем CMU SML [28]. На вход модуля поступает
текст, а на выходе создается частотный словарь, который представляет собой список всех словоформ, используемых в тексте, с частотой их встречаемости в тексте.
Следующий модуль (wfreq2vocab.exe) из комплекса программ
CMU SLM создает из частотного словаря алфавитный словарь словоформ, используемых в тексте. Размер словаря можно задать двумя способами: напрямую указав максимальный размер словаря
либо указав максимальный порог частоты появления слова, начиная с которой слова будут записываться в словарь.
Таким образом, в результате работы блока предварительной обработки текстового материала создается нормализованный обучающий текстовый корпус, а также частотный и алфавитный словари словоформ из данного корпуса.
Блок создания фонематических транскрипций слов
Транскрипции для слов из собранного текстового корпуса генерируются автоматически с помощью программных модулей создания транскрипций. Вручную дополнительно должны быть созданы
транскрипции для некоторых аббревиатур, а также для широко
распространенных слов, заимствованных из английского языка.
Блок создания фонематических транскрипций слов состоит из
основного модуля (TranscriberRUS), разработанного на языке программирования С++, а также нескольких вспомогательных модулей для автоматической обработки текста, созданных на языке
программирования Perl.
Первоначальным этапом создания транскрипций является определение ударной гласной/гласных в слове. Для этого используется функция простановки ударений (GetUdarenieWord) подмодуля
TranscriberRUS_Stress, pFileName – название файла со списком
слов, для которых будут создаваться транскрипции.
Функция создания базовых транскрипций (TranscribeWord) из
подмодуля TranscriberRUS_Base создает фонематические транскрипции слов. На вход модуля поступает алфавитный словарь словоформ из текстового корпуса, для которых транскрипции создаются с использованием базовых фонетических правил транскрибирования [42], и подмодуля TranscriberRUS_Stress.
54
Модуль создания транскрипций для аббревиатур (abbrev.pl) автоматически создает транскрипции для аббревиатур буквенного
типа прочтения, состоящих только из согласных букв. Для аббревиатур звукового типа прочтения вида согласный-гласный-согласный транскрипции создаются функцией TranscribeWord модуля
TranscriberRUS. Остальные аббревиатуры автоматически не обрабатываются, так как правильное произношение для них неочевидно.
Функция создания альтернативных транскрипций (vGenerateAdvTranscrList) подмодуля TranscriberRUS_Alt из списка базовых транскрипций слов и аббревиатур создает альтернативные
транскрипции, которые учитывают вариативность произношения
слов в разговорной речи. chInFileName – название файла, содержащего базовые транскрипции слов, chOutFileName – название выходного файла, в который выводятся альтернативные транскрипции. На рис. 4.2 показан фрагмент программной реализации на
языке С++ проверки возможности применения одного из правил
редукции звуков речи: безударные гласные редуцируются до полного исчезновения, если они находятся после сонорной согласной и
перед любой согласной.
for (i = 0; i < iVowelsNum; i++) {
if (chCur[iCt] = = chVowels[i]) {
.
.
.
for (j = 0; j < iUpConsonantNum; j++) {
if (chCur[iCt - 1] = = chUpConsonant[j]) {
for (s = 0; s < iConsonantNum; s++) {
if (chCur[iCt + 1] = = chConsonant[s]) {
flag = true; break;
}
}
}
if (flag) break;
}
if (flag) break;
.
.
.
}
if (flag) break;
}
.
.
.
if (flag = = true) {
iRPh[k] = iCt; k++;
}
Рис. 4.2. Программная реализация
применения правила редукции фонемы в слове
55
На рис. 4.2:
chCur – массив, в котором записана базовая транскрипция словоформы;
iCt – индекс текущей фонемы;
chVowels – массив безударных гласных, содержащий все безударные гласные;
iVowelsNum – количество элементов в массиве безударных гласных, равное числу безударных гласных;
chUpConsonant – массив мягких согласных;
iUpConsonantNum – число элементов в массиве мягких согласных, равное числу мягких согласных;
chConsonant – массив согласных, который включает в себя все
согласные звуки;
iCosonantNum – число элементов в массиве согласных, равное
количеству согласных звуков;
iRPh – массив индексов фонем, подлежащих редукции.
В первом цикле происходит перебор по массиву безударных
гласных (chVowels). Если текущая фонема (chCur[iCt]) равна какой-либо фонеме из массива безударных гласных, осуществляется переход к следующему циклу, где происходит перебор по массиву мягких согласных (chUpConsonat). Если предыдущая фонема (chCur[iCt-1]) равна какой-либо фонеме из массива мягких
согласных, тогда осуществляется перебор по массиву согласных
(chConsonant). Если следующая фонема (chCur[iCt+1]) равна какой-либо фонеме из массива согласных, переменной flag присваивается значение ꞌꞌистинаꞌꞌ, и происходит выход из цикла. Если
переменная flag имеет значение ꞌꞌистинаꞌꞌ осуществляется выход из
предыдущих трех циклов. Далее проверяется, если значение переменной flag – ꞌꞌистинаꞌꞌ, то индекс текущей фонемы записывается в
массив индексов фонем, подлежащих редукции (iRPh).
В результате работы данного блока создается алфавитный словарь словоформ с базовыми и альтернативными транскрипциями,
соответствующий собранному текстовому корпусу.
Блок выбора наилучших транскрипций слов
Выбор наилучших транскрипций для слов среди альтернативных вариантов осуществляется с помощью комбинированного
метода, описанного в разделе 2. Блок создания фонематических
транскрипций слов создает базовые и альтернативные транскрип56
ции, которые являются входными данными для блока выбора наилучших транскрипций.
Модуль принудительного выравнивания транскрипций HVite
из открытого комплекса программ HTK (Hidden Markov Model
Toolkit) [29] выбирает из сгенерированных альтернативных транскрипций одну, наиболее подходящую соответствующему речевому
сигналу из обучающей базы данных.
Функция подсчета частоты выбора альтернативных транскрипций (vFrequencyFromAligned) из подмодуля TranscriberRUS_Freq
определяет, сколько раз каждая транскрипция была выбрана при
выполнении принудительного выравнивания, и создает частотный
словарь транскрипций слов.
Функция выбора часто употребляемых транскрипций по порогу (vCreationNewDictBasedOnFrequency) из подмодуля TranscriberRUS_Select выбирает из частотного словаря транскрипций те
транскрипции, частота появления которых больше заданного порога, и эти транскрипции добавляются к базовым в основной словарь системы распознавания.
В результате работы блоков создания фонематических транскрипций и выбора лучших альтернативных транскрипций создается список фонематических представлений слов из текстового корпуса. В этот список входят базовые транскрипции, а также наилучшие альтернативные для тех слов из текстового корпуса, которые
присутствовали в обучающем корпусе речи. Данный список слов с
их каноническими и возможными альтернативными транскрипциями является фонематическим словарем системы распознавания
речи.
Блок создания стохастической модели языка
Первым модулем, входящим в данный блок, является модуль
создания списка n-грамм (text2idngram.exe) из состава CMU SLM.
В результате работы данного модуля создается файл со списком
n-грамм, который содержит индексы слов, входящих в n-граммы,
и частоту появления n-граммы в обучающем корпусе. Индекс слова
соответствует порядковому номеру слова в алфавитном словаре.
Зачастую в текстах присутствует большое число редких слов и
n-грамм, поэтому для сокращения списка n-грамм и скорости обработки целесообразно удалять редкие n-граммы. Модуль удаления n-грамм с частотой появления, меньшей заданного порога,
(cut.pl) сокращает список n-грамм путем удаления тех элементов,
57
частота появления которых меньше заданного порога K, который
может принимать значения от 1 и выше. Кроме того, программа
text2idngram при создании n-грамм не учитывает границу предложений. Программа cut.pl удаляет n-граммы, содержащие символы <s> и </s>, если символ <s> находится не на первом месте в
n-грамме или символ </s> не на последнем. На рис. 4.3 представлен фрагмент программы cut.pl на языке программирования Perl.
while ($input=<INPUT>) { # чтение строки из входного файла,
# содержащего список n-грамм
chomp($input);
$i++;
# определение частоты встречаемости n-граммы
$input =~/^((\d+?\s)+?)(\d+?)\Z/;
$line =$1;
$freq=$3;
# если символы начала и конца строки находятся внутри n-граммы,
# или частота появления n-граммы меньше либо равна заданному порогу
# то n-грамма не записывается в выходной файл
if (($line=~/(^|\s)$id_e\s$id_s\s/)|| ($freq<=$cut)) {
next;
}
print (OUTPUT "$input\n");
}
Рис. 4.3. Программная реализация модуля cut.pl
# анализ строки из входного файла n-грамм
while ($line=~/(\d+?)(?=\s(\d+?))/g){
$id=$1;
# поиск слова в словаре
if ($id!=0) {
$id_new=search ($voc[$id-1])+1;
}
else {
$id_new=0;
}
if ($id_new==0) {
$flag=0;
last;
}
# если слово найдено в словаре ,
# создаем новую n-грамму, в которой индексы слов
# будут соответсвовать словарю транскрипций
$line_new=join ('', $line_new, $id_new, ' ');
}
Рис. 4.4. Программная реализация модуля ngram_final.pl
58
На рис. 4.3:
$input – анализируемая строка из входного файла n-грамм, содержащая n-грамму с частотой ее появления в тексте;
$line – n-грамма;
$freq – частота появления n-граммы;
$id_e – индекс символа конца строки </s>;
$id_s – индекс символа начала строки <s>;
$cut – значение порога.
Далее из списка n-грамм необходимо удалить n-граммы, для которых невозможно создать транскрипции автоматически. Модуль удаления n-грамм со словами, отсутствующими в словаре транскрипций, (ngram_final.pl) проводит анализ, для каких слов из получившегося списка n-грамм были автоматически созданы транскрипции.
n-граммы со словами, для которых транскрипции не были созданы,
удаляются этим модулем. На выходе создается файл, содержащий
только n-граммы со словами, для которых были созданы транскрипции. Индексы слов в этом файле соответствуют словарю транскрипций. Фрагмент программы на языке Perl показан на рис. 4.4
На рис. 4.4:
$line – анализируемая строка из входного файла;
$id – индекс анализируемого слова в соответствии с частотным
словарем;
@voc – массив, содержащий алфавитный словарь слов из обучающего корпуса;
$id_new – новый индекс анализируемого слова, соответствующий словарю транскрипций;
$line_new – новая строка n-граммы, в которой индексы слов соответствуют алфавитному словарю.
Производится анализ каждого слова в n-грамме. Если слово есть
в словаре транскрипций, то определяется новый индекс слова в соответствии со словарем транскрипций.
Из-за удаления некоторых n-грамм из модели языка появляются
слова, которые в модели не приводят к конечному результату (разрывают цепочку слов), поскольку встречаются в n-граммах не во
всех позициях. Модуль удаления n-грамм со словами, присутствующими не во всех позициях, (del.pl) отфильтровывает n-граммы,
содержащие такие слова.
Программный модуль ngram2voc.pl создает словарь по получившемуся списку биграмм и исходному алфавитному словарю.
Модуль создания модели языка в формате ARPA (idngram2lm.
exe) является модулем CMU SLM. Этот модуль по списку n-грамм
59
создает вероятностную модель языка. В самом начале в модели
языка в формате ARPA (см. рис. 4.8) идет список униграмм, слева
от униграммы указывается значение десятичного логарифма вероятности ее появления, справа – коэффициент возврата (back-off
weight) [18], который применяется в тех случаях, когда некоторая
n-грамма отсутствует в обучающем корпусе или частота ее появления очень низкая, тогда вместо нее используется вероятность (n-1)граммы, умноженная на коэффициент возврата. Ниже идет список
биграмм с вероятностями их появления.
Модуль (lmconvert.pl) перевода модели языка в формат SLF
(Standard Lattice Format) трансформирует модель языка из формата
ARPA в более компактный формат, применяемый в комплексе HTK.
Оценка созданной модели языка на некотором тестовом корпусе производится модулем evallm. Он вычисляет значение коэффициента неопределенности и информационной энтропии, выполняет подсчет количества внесловарных слов и числа совпадений
n-грамм, то есть количества n-грамм в тестовом корпусе, которые
присутствуют в модели языка. Текст, используемый для тестирования, должен быть разбит на предложения, и должна быть выполнена его нормализация.
Кроме того, существуют еще два программных модуля для подсчета статистики обучающего текстового корпуса. Программа sort.pl
сортирует частотный словарь по частоте встречаемости слов. Программа id2words.pl в списке n-грамм заменяет индексы на слова. По
умолчанию программа создает файл c n-граммами и их частотой. Дополнительно можно создать файл с наиболее частыми n-граммами.
Блок распознавания речи
Первым этапом процесса распознавания речи является определение границ речи в звуковом сигнале, поступающем непосредственно от микрофона или из предварительно записанной речевой
базы данных. Для этого используется свойство отличия значений
энергии для речевых сегментов сигнала и для сегментов фонового
шума, а также ограничение на минимальную и максимальную длину фразы. Затем осуществляется сегментация речевого сигнала и
извлечение признаков. Эти этапы являются аналогичными этапам
блока обучения моделей акустических единиц речи.
На вход блока распознавания может поступать либо заранее записанная фраза в звуковом wav файле, либо поступающий непосредственно с микрофона речевой сигнал.
60
4.2. Пример создания стохастической модели языка
для системы автоматического распознавания русской речи
В качестве примера возьмем текст, находящийся в файле text.
txt (содержится в архиве http://www.spiiras.nw.ru/speech/sirius.
zip). Данный текст содержит 500 предложений, из которых 100 являются уникальными, остальные повторяются для увеличения частоты встречаемости одинаковых n-грамм. Создание модели языка
производим следующим образом.
1. Разбиваем исходный текст на предложения:
perl sent_maker.pl text.txt text_out.txt
где text_in.txt – входной текстовый файл; text_out.txt – файл, который содержит разделенный на предложения текст. Для запуска
скриптов на языке Perl предварительно на компьютер нужно установить транслятор с этого языка, например Active Perl или аналогичный.
2. Выполняем нормализацию текстового корпуса:
perl cleanup.pl text_out.txt text_clean.txt
где text_clean.txt – выходной файл.
3. Создаем частотный словарь словоформ из данного текста:
text2wfreq <text_clean.txt> dict.wfreq
где dict.wfreq – файл, содержащий словарь слов из текстового корпуса. Мы получим частотный словарь из 586 слов, начальный фрагмент которого показан на рис. 4.5.
4. Создадим из полученного частотного словаря алфавитный
словарь.
производств 4
использовать 5
разрешать 5
гимнастике 5
было 22
быть 30
посочувствовать 5
если 30
есть 9
предосторожности 3
…
Рис. 4.5. Фрагмент частотного словаря
61
Строка запуска выглядит следующим образом:
wfreq2vocab –top A <dict.wfreq> dict.vocab
или
wfreq2vocab –gt B <dict.wfreq> dict.vocab
где dict.vocab – алфавитный словарь слов из текстового корпуса; параметр –top задает максимальный размер словаря, то есть в словарь
будет записано A наиболее частотных слов; параметр –gt указывает
порог B частоты появления слова, начиная с которой слова будут
записываться в словарь. Если параметры –top и –gt не указаны, то в
словарь будет записано 20000 слов с наибольшей частотой. Поскольку в данном примере размер словаря составляет всего 586 слов, то
есть меньше 20000, то параметр –top/gt можно не задавать. Таким
образом, строка запуска будет выглядеть следующим образом:
wfreq2vocab <dict.wfreq> dict.vocab
Фрагмент полученного словаря показан на рис. 4.6. Строки, начинающиеся символами «##», являются комментариями.
5. Создаем транскрипции для слов, которые вошли в алфавитный словарь. Удаляем из файла dict.vocab закомментированные
строчки, и создаем транскрипции для слов из этого файла:
Trans.exe dict.vocab transcr.txt
где transcr.txt – файл, содержащий транскрипции слов.
## Vocab generated by v 2 of the CMU-Cambridge Statistcal
## Language Modeling toolkit
##
## Includes 586 words ##
</s>
<s>
автомат
автомобилей
автопрома
адекватным
ажиотажа
азербайджана
акваторию
аналогичного
армении
…
Рис. 4.6. Начальный фрагмент алфавитного словаря
62
Для слов, которые автоматически не были транскрибированы,
нужно либо создать транскрипции вручную, либо в дальнейшем
удалить их из модели языка. Нетранскрибированные слова сохраняются в файле oov.txt.
6. Создаем список биграмм (N = 2) с их частотой появления в
данном тексте:
text2idngram –vocab dict.vocab –n 2 –write_ascii <text_clean.txt>
idngram.txt
где 2 – значение n для n-грамм, idngram.txt – файл, содержащий
список n-грамм; с их частотой появления в обучающем корпусе. Список биграмм имеет вид, показанный на рис. 4.7. Первые
две цифры в строке означают порядковый номер слова в алфавитном словаре, а третья цифра означает частоту появления биграммы в обучающем тексте. Получается 1008 биграмм для нашего
примера.
7. Удаляем n-граммы с частотой появления менее трех:
perl cut.pl idngram.txt dict.vocab idngram_cutoff.txt 2
где idngram_cutoff.txt – выходной файл; 2 – значение порога для
отсечки n-грамм. В результате осталось 932 биграммы.
8. Удаляем биграммы со словами, для которых нет транскрипций:
perl ngrams_final.pl idngram_cutoff.txt transcr.txt dict.vocab
voc_new.txt ngrams_final.txt
где transcr.txt – словарь транскрипций для слов из собранного корпуса; voc_new.txt – сформированный словарь, содержащий только те слова, транскрипции для которых присутствовали в файле
transcr.txt; ngrams_final.txt – выходной файл n-грамм, в этом файле id n-грамм соответствует словарю voc_new.txt. В списке осталось
930 биграмм.
1 2 499
2 18 8
2 31 24
2 51 5
2 57 2
2 58 14
2 59 5
2 61 8
2 64 6
2 102 4
…
Рис. 4.7. Фрагмент списка n-грамм
63
9. Создаем биграммную модель языка. Строка запуска:
idngram2lm –idngram ngrams_final.txt –vocab voc_new.txt –arpa
lm.arpa –ascii_input –n 2 –calc_mem –vocab_type T
где lm.arpa – выходной файл, содержащий модель языка в формате
ARPA; параметр –calc_mem указывается для того, чтобы рассчитать, сколько памяти необходимо выделить, параметр –vocab_type
задает тип словаря, величина T может принимать значения от
0 до 2. Словарь может быть открытым или закрытым. При T = 0
словарь является закрытым, это означает, что в модели языка
нет внесловарных слов, то есть слов, отсутствующих в словаре
voc_new.txt. Открытый словарь разрешает появление внесловарных (неизвестных для словаря) слов, при этом все внесловарные
слова будут обозначены одним символом «<UNK>». Открытый словарь может быть двух видов: T = 1 означает, что внесловарные слова будут трактоваться так же, как и любые другие слова в словаре;
Т = 2 предполагает, что в модели языка нет внесловарных слов, но
они могут быть в текстовых данных, которые будут использоваться
для тестирования модели языка. Если модель языка создавалась по
описанному выше алгоритму, то словарь, используемый для создания модели языка (voc_new.txt) будет полностью покрывать модель
языка, и внесловарных слов не возникнет. В этом случае нужно задавать T = 0 в случае, если можно гарантировать, что в тестовых
данных нет внесловарных слов, и T = 2, если в тестовых данных
могут быть внесловарные слова.
Создадим модель языка с открытым словарем типа 2:
idngram2lm –idngram ngrams_final.txt –vocab voc_new.txt –arpa
lm.arpa –ascii_input –n 2 –calc_mem –vocab_type 2
Фрагмент модели языка представлен на рис. 4.8.
10. Удаляем биграммы, содержащие слова, которые присутствуют в биграммах не во всех позициях:
perl del.pl lm.arpa ngrams_final.txt voc_new.txt transcr.txt
ngrams_final_del_1.txt 2
где ngrams_final_del.txt – выходной файл, содержащий список
n-грамм, в котором удалены n-граммы, встречающиеся не во всех
позициях. Теперь список составляют 928 биграмм.
Создаем модель языка для сокращенного списка биграмм.
idngram2lm –idngram ngrams_final_del_1.txt –vocab voc_new.
txt –arpa lm_del_1.arpa –ascii_input –n 2 –calc_mem –vocab_type 2
Поскольку модель языка сократилась, необходимо проверить,
не возникли ли другие слова, которые встречаются в биграммах не
во всех позициях:
64
...
\data\
ngram 1=586
ngram 2=930
\1-grams:
-99.0000 <UNK>
-99.0000 </s>
-1.0263 <s> -2.5633
-99.0000 автомат
-3.0228 автомобилей
-3.1198 автопрома
-2.9437 адекватным
-2.9437 ажиотажа
…
0.0000
0.0000
0.0000
-0.7722
-0.6990
-0.8446
-0.8446
\2-grams:
-1.7933 <s> боже
-1.3161 <s> в
-1.9974 <s> возможно
-1.5502 <s> вот
-1.9974 <s> впечатление
-1.7933 <s> впрочем
-1.9182 <s> время
…
\end\
Рис. 4.8. Фрагмент модели языка в формате ARPA
perl del.pl lm_del_1.arpa ngrams_final_del_1.txt voc_new.txt
transcr.txt ngrams_final_del_2.txt 2
idngram2lm –idngram ngrams_final_del_2.txt –vocab voc_new.
txt –arpa lm_del_2.arpa –ascii_input –n 2 –calc_mem –vocab_type 2
Модель языка сократилась еще на 2 биграммы, поэтому предыдущие два шага надо снова повторить:
perl del.pl lm_del_2.arpa ngrams_final_del_2.txt voc_new.txt
transcr.txt ngrams_final_del_3.txt 2
idngram2lm –idngram ngrams_final_del_3.txt –vocab voc_new.
txt –arpa lm_del_3.arpa –ascii_input –n 2 –calc_mem –vocab_type 2
Теперь количество биграмм составляет 925.
perl del.pl lm_del_3.arpa ngrams_final_del_3.txt voc_new.txt
transcr.txt ngrams_final_del_4.txt 2
idngram2lm –idngram ngrams_final_del_4.txt –vocab voc_new.
txt –arpa lm_del_4.arpa –ascii_input –n 2 –calc_mem –vocab_type 2
Количество биграмм стало 924.
65
perl del.pl lm_del_4.arpa ngrams_final_del_4.txt voc_new.txt
transcr.txt ngrams_final_del_5.txt 2
idngram2lm –idngram ngrams_final_del_5.txt –vocab voc_new.
txt –arpa lm_del_5.arpa –ascii_input –n 2 –calc_mem –vocab_type 2
Теперь количество биграмм не уменьшилось, значит можно переходить к следующему шагу.
11. Создаем словарь для получившегося списка биграмм:
ngram2voc.pl ngrams_final_del_5.txt voc_new.txt voc_new_del_5.txt
где voc_new_del_5.txt – словарь, в котором содержатся слова из модели языка.
Размер словаря составил 542 слова.
12. Для того чтобы в модели языка не было униграмм со словами, отсутствующими в n-граммной модели, нужно запустить программу ngrams_final.pl, где вместо словаря транскрипций указать
словарь, созданный на шаге 11:
perl ngrams_final.pl ngrams_final_del_5.txt voc_new_del_5.txt
voc_new.txt words.txt ngrams_final(final).txt
В полученном списке биграмм индексы слов будут соответствовать словарю words.txt.
13. Создаем финальную модель языка по полученному списку
n-грамм и словарю:
idngram2lm –idngram ngrams_final(final).txt –vocab words.txt –
arpa lm(final).arpa –ascii_input –n 2 –calc_mem –vocab_type 2
14. Переводим модель языка в формат SLF:
perl lmconvert.pl lm(final).arpa words.txt lm(final).slf 2
где lm(final).slf – файл с моделью языка в формате SLF, 2 – значение n для n-грамм. Фрагмент модели языка в формате SLF представлен на рис. 4.9, где I – порядковый номер словоформы; W –
словоформа; J – порядковый номер биграммы; S – порядковый
номер первого слова в биграмме; E – порядковый номер последнего
слова в биграмме; l – десятичный логарифм вероятности появления
биграммы в тексте.
Для оценки созданной модели языка воспользуемся оценочным
текстом, находящимся в файле test_text.txt (в файле http://www.
spiiras.nw.ru/speech/sirius.zip). Расчет производится по модели
языка в формате ARPA:
evallm –arpa lm(final).arpa –context context.ccs
где test_text.txt – тестовый текстовый корпус; context.ccs – файл,
содержащий символы начала и конца предложения. Этот файл
необходимо указать, чтобы данные символы не учитывались при
оценке модели языка. После ввода этой команды запускается программа и ждет дальнейших инструкций от пользователя.
66
VERSION=1.0
N=542
L=924
I=0
W=</s>
I=1
W=<s>
I=2
W=автомобилей
I=3
W=автопрома
I=4
W=адекватным
I=5
W=ажиотажа
I=6
W=азербайджана
…
J=0
S=1
E=16
J=1
S=1
E=29
J=2
S=1
E=47
J=3
S=1
E=54
J=4
S=1
E=55
J=5
S=1
E=57
J=6
S=1
E=60
J=7
S=1
E=97
...
l=-1.7880
l=-1.3109
l=-1.9921
l=-1.5450
l=-1.9921
l=-1.7880
l=-1.9129
l=-2.0890
Рис. 4.9. Фрагмент модели языка в формате SLF
Коэффициент неопределенности модели языка можно вычислить, задав команду:
perplexity –text test_text.txt –oovs oov_file.txt
где test_text.txt – тестовый текстовый корпус, отличный от корпуса, используемого для обучения; oov_file.txt – файл, куда записываются отсутствующие в словаре слова.
Выход из программы осуществляется командой quit. Результаты работы будут выведены на экран (см. рис. 4.10).
perplexity -text test_text.txt -oovs oov_file.txt
Computing perplexity of the language model with respect
to the text test_text.txt
Out of vocabulary words will be written to file oov_file.txt
Perplexity = 297.95, Entropy = 8.22 bits
Computation based on 454 words.
Number of 2-grams hit = 95 (20.93%)
Number of 1-grams hit = 359 (79.07%)
614 OOVs (57.49%) and 200 context cues were removed
from the calculation.
Рис. 4.10. Вычисление коэффициента неопределенности
и энтропии для оценочного текста
67
Показанные результаты означают следующее. Величина коэффициента неопределенности составляет 297,95; информационной
энтропии – 8,22 бит/слово. Количество совпадений биграмм, то
есть количество биграмм в тестовом корпусе, которые присутствуют в модели языка, составляет 95. В тексте присутствует 614 внесловарных слов (57,49 % от общего числа слов в тексте). Внесловарные слова не учитывались при вычислениях. Также не учитывались символы контекста (<s>, </s>).
Отсортируем частотный словарь по частоте встречаемости слов.
Строка запуска:
perl sort.pl dict.wfreq dict_sort.wfreq
Фрагмент отсортированного частотного словаря показан на
рис. 4.11.
Теперь определим 10 наиболее частотных биграмм в обучающем
текстовом корпусе:
perl id2words.pl ngrams_final(final).txt wngram.txt words.txt
mostfreq.txt 10
где idngram.txt – файл со списком n-грамм; wngram.txt – выходной файл со списком n-грамм; преобразованных в слова; dict.
vocab – словарь; соответствующий данному списку n-грамм;
mostfreq.txt – название выходного файла для записи наиболее частотных n-грамм; 10 – количество выводимых наиболее частотных
n-грамм.
Результат, который будет записан в файле wngram.txt, показан
на рис. 4.12. При запуске данной программы последние два параметра являются необязательными, если они не указаны, то файл с
наиболее частотными n-граммами не создается.
<s> 500
</s> 500
не 184
и 149
в 136
я 118
это 93
что 85
мы 77
на 58
…
Рис. 4.11. Фрагмент отсортированного частотного словаря
68
<s> я 53
<s> это 37
<s> но 30
<s> и 28
<s> в 24
<s> если 24
с ним 19
я не 18
<s> мы 17
что это 17
Рис. 4.12. Десять наиболее частотных биграмм
в обучающем текстовом корпусе из модели языка
В результате выполнения представленных шагов создан один из
ключевых компонентов системы автоматического распознавания
речи – стохастическая модель языка предметной области. Интеграция этой модели с акустико-фонетической моделью и словарем
позволяет проектировать и создавать речевые интерфейсы ввода,
распознавания и интерпретации голосовых сообщений и команд
на русском языке для применения в интеллектуальных системах
управления.
Вопросы и упражнения
1. Какие системы распознавания речи вы знаете?
2. Какие существуют программные средства для создания статистических моделей языка?
3. Для чего применяется программный комплекс CMU SLM?
4. Какие программные модули входят в комплекс программ
CMU SLM?
5. Что такое частотный словарь?
6. Что такое внесловарные слова при автоматическом распознавании речи?
7. Для чего применяется нормализация обучающего текстового
корпуса?
8. Какие форматы моделей языка вы знаете?
9. Приведите структуру ARPA-формата для вероятностной триграммной модели языка системы распознавания речи.
10. В чем отличие закрытого словаря распознавания от открытого словаря?
11. Перечислите модули (этапы обработки), входящие в блок
распознавания речи программного комплекса SIRIUS.
69
12. Подготовьте произвольный связный текст объемом не менее
500 предложений для обучения модели языка. При помощи предоставленных программных средств для этого текста выполните следующие задания: подсчитайте количество словоупотреблений в
тексте и размер словаря слов, создайте частотный словарь и определите 10 наиболее частотных слов в этом корпусе, сформируйте биграммную модель языка по этому тексту и определите 10 наиболее
частотных биграмм, вычислите величину коэффициента неопределенности и информационной энтропии для тестовых данных.
70
Библиографический список
1. Amdal I. Learning pronunciation variation. A data-driven approach to
rule-based lexicon adaptation for automatic speech recognition. PhD thesis.
Department of Telecommunications Norwegian University of Science and
Technology. Norway. 2002.
2. Arisoy E., Dutagaci H., Arslan, L. A unified language model for large
vocabulary continuous speech recognition of Turkish. Signal Processing, Elsevier, 86(10):2844–2862, 2006.
3. Bahl L. R., de Souza P. V., Gopalakrishman P.S., Nahamoo D., Picheny M.A. Decision trees for phonological rules in continuous speech. Proc.
ICASSP-91, Toronto, Canada, 1991. pp. 185–188.
4. Baum L. E. An inequality and associated maximization technique in statistical estimation for probabilistic functions of Markov processes // Inequalities, vol.3, 1972, pp. 1–8.
5. Benesty J., Sondhi M., Huang Y. (eds.) Springer Handbook of Speech
Processing. Springer, 2008, 1176 p.
6. Bolotova O., Gusev M., Smirnov V. Speech Recognition System for the
Russian Speech. In Proc. of 12-th International Conference on Speech and
Computer SPECOM. Moscow. Russia. 2007. pp. 475–480.
7. Cole et al. Survey of the state of the art in human language technology,
Cambridge University Press, New York, NY, 1997.
8. Fosler-Lussier E., Morgan N. Effect of speaking rate and word frequency
on pronunciations in conversational speech. Speech Communication. vol. 29.
1999. pp. 137–158.
9. Hirschman L., Thompson H. S. Overview of evaluation in speech and
natural language processing. In: R. Cole et al. (eds.) “Survey of the State
of the Art in Human Language Technology”, Cambridge University Press,
1997
10. Hirsimäki T., Pylkkönen J., Kurimo M. Importance of High-Order NGram Models in Morph-Based Speech Recognition, IEEE Trans. on Audio,
Speech and Language Processing, 17(4):724–732, 2009.
11. Ipšić I., Martinčić–Ipšić S. Croatian Speech Recognition // Advances
in Speech Recognition / Noam R. Shabtai, editor(s). Rijeka, Croatia: SCIYO,
2010. pp. 123–140.
12. Kanevsky D., Monkowski M., Sedivy J. Large Vocabulary Speaker-Independent Continuous Speech recognition in Russian Language // Proc. International Workshop SPECOM’96. St.Petersburg. Russia. 1996. pp. 117–121.
13. Kanungo T. An Efficient k-Means Clustering Algorithm: Analysis and
Implementation / T. Kanungo, et al // IEEE Transactions on Pattern Analysis
and Machine Intelligence. 2002, vol. 24, № 7. p. 881–892.
14. Karpov A., Kipyatkova I., Ronzhin A. Very Large Vocabulary ASR for
Spoken Russian with Syntactic and Morphemic Analysis. In Proc. INTERSPEECH-2011 International Conference, ISCA Association, Florence, Italy,
2011.
71
15. Kessens J. M., Wester M., Strik H. Improving the performance of
Dutch CSR by modeling within-word and cross-word pronunciation variation.
Speech Communication. vol. 29. 1999. pp. 193–207.
16. Korenevsky M., Bulusheva A., Levin K. Unknown Words Modeling in
Training and Using Language Models for Russian LVCSR System. In Proc.
10th International Conference on Speech and Computer SPECOM, Kazan,
2011.
17. Kurimo M., Hirsimäki T., Turunen V.T., Virpioja S., Raatikainen N.
Unsupervised decomposition of words for speech recognition and retrieval //
Proceedings of 13-th International Conference “Speech and Computer” SPECOM’2009. St. Petersburg. 2009. pp. 23–28.
18. Merkel A., Klakow D. Improved Methods for Language Model Based
Question Classification // Proceedings of 8th Interspeech Conference. Antwerp. 2007. pp 322–325.
19. Moore G. L. Adaptive Statistical Class-based Language Modelling. PhD
thesis. Cambridge University. 2001. 193 p.
20. Oparin I., Glembek O., Burget L., Cernosky J. Morphological random
forest for language modeling of inflectional languages. In Proc. 2nd IEEE
Workshop on Spoken Language Technology, Goa, India, 189–192, 2008.
21. Rabiner L., Juang B.-H. Fundamentals of Speech Recognition. Prentice
Hall. 1993. 507 p.
22. Riley M. D., Ljolje A. Automatic speech and speaker recognition: Advanced topics, ch. Automatic generation of detailed pronunciation lexicons.
Kluwer. 1996. pp. 285–301.
23. Rotovnik T., Maucec M.S., Kacix Z. Large vocabulary continuous
speech recognition of an inflected language using stems and endings. Speech
Communication, Vol.49, No.6, 2007. pp. 437–452.
24. Saraclar M. Pronunciation Modeling for Conversational Speech Recognition. PhD thesis. Baltimore, USA. 2000.
25. Stuker S., Schultz T. A grapheme Based Speech Recognition System
for Russian // Proc. International Conference SPECOM’2004. St.Petersburg.
Russia. 2004 pp. 297–303.
26. Svenson M., Bhanuprasad K. Errgrams – A Way to Improving ASR
for Highly Inflective Dravidian Languages. Proc. 3rd International Joint
Conference on Natural Language Processing IJCNLP’08, India, 805–810,
2008.
27. Szarvas M., Furui S. Finite-state transducer based modeling of morphosyntax with applications to Hungarian LVCSR. in Proc. ICASSP, HongKong, China, 368–371, 2003.
28. The CMU Statistical Language Modeling (SLM) Toolkit. http://www.
speech.cs.cmu.edu/SLM_info.html (дата обращения: 16.05.2011).
29. The Hidden Markov Model Toolkit (HTK). http://htk.eng.cam.ac.uk/
(дата обращения: 16.05.2011).
30. Vaičiūnas A. Statistical Language Models of Lithuanian and Their Application to Very Large Vocabulary Speech Recognition. Summary of Doctoral
Dissertation. Vytautas Magnus University. Kaunas. 2006. 35 p.
72
31. Vesa S., Teemu H., Mathias C., Mikko K. Unlimited vocabulary speech
recognition based on morphs discovered in an unsupervised manner. Proceedings of Eurospeech, 2003. pp. 2293–2296.
32. Viterbi A. J. Error bounds for convolutionalcodes and an asymmetrically optimum decoding algorithm // IEEE Transactions on Information Theory,
1967. – vol. IT-13, pp. 260–267.
33. Whittaker E. W. D., Woodland P. C. “Efficient class-based language
modelling for very large vocabularies”, in Proc. ICASSP’01 Conference, Salt
Lake City, USA, 545–548, 2001.
34. Young S. et al. The HTK Book (for HTK Version 3.4). Cambridge. UK,
2009. 375 p.
35. Афанасьев В. П. и др. Архитектура речевого телефонного терминала
МАРС-2 «Электроника МС7602» // Труды Всесоюзного семинара АРСО14. Каунас, 1986. С. 77.
36. Винцюк Т. К., Скрипник А. Г. Модуль анализатора речи СРД «Речь2» // Тезисы докладов 16-го всесоюзного семинара (АРСО-16), 1991.
C. 250–251.
37. Джелинек Ф. Распознавание непрерывной речи статистическими
методами // ТИИЭР. 1976. Т. 64. № 4. С. 131–160.
38. Русская разговорная речь / под ред. Е. А. Земской. М.: Наука, 1973.
485 с.
39. Карпов А. А. Модели и программная реализация распознавания русской речи на основе морфемного анализа: дис .... канд. техн. наук. 2007.
129 c.
40. Карпов А. А., Ронжин А. Л., Ли И. В. SIRIUS – система дикторонезависимого распознавания слитной русской речи // Известия ТРТУ. № 10.
2005. С. 44–53.
41. Разработка системы распознавания русской речи / А. А. Кибкало,
М. М. Лотков, И. Г. Рогожкин, А. А. Туровец // Вопросы атомной науки
и техники. Сер. Математическое моделирование физических процессов.
2003. Вып. 3. С. 8–20.
42. Кипяткова И. С., Карпов А. А. Модуль фонематического транскрибирования для системы распознавания разговорной русской речи // Искусственный интеллект. 2008. № 4. С. 747–757. (Донецк, Украина).
43. Кипяткова И. С., Карпов А. А. Опыт разработки модели распознавания речи со сверхбольшим словарем // Материалы международной научно-технической конференции «Открытые семантические технологии
проектирования интеллектуальных систем». Минск, Беларусь. 2011.
С. 409–412.
44. Косарев Ю. А. Естественная форма диалога с ЭВМ. Л.: Машиностроение, 1989. 143 с.
45. Лобанов Б. М., Цирульник Л. И. Моделирование внутрисловных
и межсловных фонетико-акустических явлений полного и разговорного
стилей в системе синтеза речи по тексту // Труды первого междисциплинарного семинара «Анализ разговорной русской речи». СПб.: ГУАП, 2007.
C. 57–71.
73
46. Лобанов Б. М., Цирульник Л. И. Компьютерный синтез и клонирование речи. Минск: Белорусская наука, 2008. 344 с.
47. Марков А. А. Исчисление вероятностей. СПб.: Типография Императорской Академии Наук, 1913. 382 с.
48. Пилипенко В. В. Распознавание дискретной и слитной речи из
сверхбольших словарей на основе выборки информации из баз данных //
Искусственный интеллект. 2006. № 3. С. 548–557. (Донецк, Украина).
49. Протасов С. В. Вывод и оценка параметров дальнодействующей
триграммной модели языка // Материалы международной конференции
«Диалог 2008». М., 2008. C. 443–449.
50. Большая советская энциклопедия / гл. ред. А. М. Прохоров. Т. 23.
М.: Советская энциклопедия, 1976. 638 с.
51. Рабинер Л. СММ и их применение в избранных приложениях при распознавании речи // ТИИЭР. 1989. Т. 77. № 2. С. 86–
120.
52. Ронжин А. Л. Топологические особенности морфофонемного способа представления словаря для распознавания русской речи // Вестник
компьютерных и информационных технологий. 2008. № 9. С. 12–19.
53. Ронжин А. Л., Карпов А. А., Ли И. В. Речевой и многомодальный интерфейсы. М.: Наука, 2006. 173 с.
54. Cайт программы Emsa HTML Tag Remover http://www.e-systems.
ro/.
55. Сайт компании MetaProducts. http://www.metaproducts.com/default.asp (дата обращения: 16.05.2011).
56. Светозарова Н. Д. Некоторые особенности фонетики русской спонтанной речи // Бюллетень фонетического фонда русского языка. № 8. Фонетические свойства русской спонтанной речи. СПб.: Бохум, 2000. С. 7–15.
57. Трунин-Донской В. Н. Опознавание набора слов с помощью цифровой вычислительной машины // Работы по технической кибернетике.
М.: ВЦ АН СССР, 1967. С. 37–51.
58. Холоденко А. Б. О построении статистических языковых моделей
для систем распознавания русской речи // Интеллектуальные системы.
Т. 6. Вып. 1–4. 2002. С. 381–394.
59. Шеннон К. Работы по теории информации и кибернетике. М.: Изд.
иностр. лит., 2002.
60. Русская грамматика: в 2 т. / гл. ред. Н. Ю. Шверова. М.: Наука, 1980. 783 с.
74
СОДЕРЖАНИЕ
Предисловие.............................................................................. 1. Основные методы и модели автоматического распознавания речи... 1.1. Классификация систем распознавания речи...........................
1.2. Параметрическое представление сигнала...............................
1.3. Применение скрытых марковских моделей для распознавания
речи. ......................................................................................
1.4. Метод распознавания слитной речи.......................................
1.5. Критерии оценки качества распознавания речи......................
1.6. Обзор автоматических систем распознавания русской речи......
Вопросы и упражнения..............................................................
2. Методы моделирования вариативности произношения слов в разговорной речи................................................................................ 2.1. Обзор основных методов моделирования вариативности произношения слов.......................................................................
2.2. Комбинированный метод моделирования вариативности произношения..............................................................................
Вопросы и упражнения..............................................................
3. Методы языкового моделирования речи...................................... 3.1. Разновидности статистических моделей языка.......................
3.2. Вычисление энтропии
и коэффициента неопределенности модели языка.........................
Вопросы и упражнения..............................................................
4. Описание комплекса программных средств для проектирования
речевого интерфейса.................................................................... 4.1. Архитектура комплекса программных средств.......................
4.2. Пример создания стохастической модели языка для системы
автоматического распознавания русской речи..............................
Вопросы и упражнения..............................................................
Библиографический список.......................................................... 3
4
6
9
13
22
24
26
29
30
30
34
41
42
44
48
49
51
51
61
69
71
75
Учебное издание
Карпов Алексей Анатольевич
Кипяткова Ирина Сергеевна
Ронжин Андрей Леонидович
ПРОЕКТИРОВАНИЕ РЕЧЕВЫХ ИНТЕРФЕЙСОВ
ДЛЯ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ
СИСТЕМ
Учебное пособие
Редактор А. В. Подчепаева
Верстальщик С. Б. Мацапура
Сдано в набор 21.02.12. Подписано к печати 13.03.12.
Формат 60×84 1/16. Бумага офсетная. Усл. печ. л. 4,42.
Уч.-изд. л. 4,75. Тираж 100 экз. Заказ № 114.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
2
Размер файла
2 239 Кб
Теги
karpovkipjatkova
1/--страниц
Пожаловаться на содержимое документа