Здесь дан неполный перевод некоторых глав. Присылайте свои варианты.
Глава 1
Основы HTK
HTK - пакет разработчика для построения Скрытых Моделей Маркова (HMMs). HMMs можно использовать для моделирования любых временных последовательностей, аналогично ядро HTK разработано как ядро общего назначения. Тем не менее, изначально пакет HTK разрабатывался для создания инструментов обработки речи на основе HMM, для конкретных устройств распознавания. Таким образом, большая часть поддерживаемой инфраструктуры HTK посвящена этой задаче. Как показано на изображении выше, существует два основных этапа обработки. Во-первых, обучающие инструментальные средства HTK используются для оценки параметров набора HMMs, путем использования обучающих высказываний и связанных с ними транскрипций.
Во-вторых, неизвестные высказывания переписываются путем использования инструментальных средств распознавания HTK.
Основная часть этой книги посвящена описанию механизма этих двух процессов.
Тем не менее, прежде, чем углубляться в детали, необходимо понимать некоторые основные принципы HMMs. Полезно иметь представление о пакете разработчика, а также представлять, как организованы процессы подготовки и распознавания в HTK.
Эта первая попытка предоставить данную информацию в формате книги. В 1-ой главе описаны основные идеи HMMs и их применение для распознавания речи. Следующая глава дает краткий обзор HTK и выделяет основные различия в версии 2.0 и выше для пользователей предыдущих версий. Наконец, в главе 3 первой части руководства описывается процесс создания устройcтва распознавания речи на основе HMM. С этой целью дается описание конструкции небольшого простого словаря для устройства распознавания слитной (или непрерывной) речи.
Вторая часть книги вновь касается тем, рассмотренных здесь, но дает их подробное описание. Ее можно прочитать вместе с третьей и заключительной частью книги, оформленной в виде справочника по HTK. Она включает описание каждого инструмента, обобщает использование различных параметров для конфигурирации HTK и содержит список сообщений об ошибках, генерируемых, когда что-нибудь идет неправильно.
Наконец, вам следует учесть, что эта книга только описывает HTK как средство-комплект. В ней отсутствует информация по использования библиотек HTK как среды программирования.
1.1 Общие принципы HMMs
------------------
s1 s2 s3 и т.п.
s1 s2 s3
Речь в виде звука
Речевые Векторы
Понятие: последовательность символов
Параметризация
Распознать
--------------------------
Рис. 1.1 Кодирование/декодирование сообщения
Системы распознавания речи обычно предполагают, что речевой сигнал является реализацией некоторого сообщения, закодированного в виде последовательности одного или нескольких символов (смотрите Рис. 1.1 ). Для того, чтобы произвести обратное действие распознавания основной символьной последовательности, давшей устное высказывание, непрерывный речевой сигнал преобразуется сначала в последовательность одинаковых дискретных параметрических векторов. Эта последовательность параметрических векторов принята для того, чтобы сформировать точное представление речевого сигнала на том основании, что на протяжении каждого единичного вектора (обычно 10мс или около того), речевой сигнал можно считать неизменным. Хотя это не соответствует истине, это разумная аппроксимация. Типичные параметрические представления в общем случае - это сглаженные спектры или линейные коэффициенты предсказания плюс различные другие представления, производные от них.
Устройство распознавания должно производить распределение между последовательностями речевых векторов и желаемой основной символьной последовательностью. Две проблемы делают этот процесс очень трудным. Во-первых, переход от символов к речи не взаимно-однозначный, поскольку другие основные символы могут вызывать аналогичные речевые звуки. Кроме того, есть большие изменения в реальном речевом сигнале из-за изменчивости докладчика, его настроения, среды, и т.п. Во-вторых, границы между символами не могут быть явно определены из речевого сигнала. Следовательно, возможно не следует рассматривать речевой сигнал как последовательность соединенных статичных образцов.
Вторая проблема незнания точного положения границ каждого слова может быть аннулирована путем перехода к задаче распознаванию раздельной речи (изолированных слов). Как показано на Рис. 1.2, это подразумевает, что речевой сигнал соответствует единственному основному символу (напр., слову), выбранному из фиксированного словаря. Несмотря на то, что это простая проблема будет отчасти искусственной, тем не менее, она имеет большое разнообразие практических применений. Кроме того, это послужит хорошей основой для освоения основных идей распознавания речи на основе HMM перед работой с более сложным случаем распознавания слитной (непрерывной) речи. Следовательно, вначале рассмотрим задачу распознавания раздельной речи с использованием скрытых марковских моделей.
1.7 Адаптация к диктору.
Хотя, описанные выше технологии подготовки и распознавания могут послужить основой для построения высокопроизводительных систем распознавания речи, эти системы могут быть улучшены путем подстройки HMMs к характеристикам конкретного диктора. HTK содержит инструментальные средства HERest и HVite для выполнения адаптации с использованием небольшого количества зачисленных или адаптационных данных. Два инструментальных средства отличаются тем, что HERest выполняет offline адаптацию под контролем оператора, в то время как HVite распознает адаптационные данные и использует сгенерированные транскрипции для выполнения адаптации. Обычно, более точная адаптация выполняется под контролем оператора с помощью HERest, но HVite, получив на входе набор хорошо обученных моделей, может все еще достичь заметного повышения производительности. Подробное описание адаптации и использование HTK дано в Главе 9.
Глава 2
Обзор инструментальных стредств HTK
Основные принципы процесса распознавания на основе HMM были изложены в предыдущей главе, где уже было упомянуто большинство ключевых инструментов НТК. В этой главе описывается архитектура программного обеспечения инструментария HTK. Затем дается краткий обзор всех инструментов (утилит) НТК и способ их совместного использования с целью построения и проверки устройсва распознавания на основе HTK. В интересах существующих пользователей НТК, здесь перечислены основные изменения в последних версиях HTK.
В следующей главе будет описано использование инструментария HTK на практическом примере построения простой системы распознания слитной речи.
2.1 Архитектура программного обеспечения НТК
Большинство функций HTK встроено в библиотечные модули. Эти модули являются гарантией того, что каждый инструмент будет иметь одинаковый интерфейс с внешним миром. Они также предоставляют общий ресурс для часто используемых функций. Рис. 2.1 иллюстрирует структуру программного обеспечения типичного инструментария HTK и показывает его входные / выходные интерфейсы.
Пользовательский ввод/вывод и взаимодействие с операционной системой контролируется библиотечным модулем HShell, управление памятью реализуется в HMem. Математическую поддержку обеспечивает HMath, а операции обработки сигналов, необходимые для анализа речи, реализованы в HSigP. Каждый из типов файлов, необходимых HTK, имеет специальный интерфейсный модуль. HLabel обеспечивает интерфейс для файлов этикеток(маркеров), HLM - для файлов модели языка, HNet - для сетей и решеток, HDict для словарей, HVQ - для VQ кодовых книг и HModel - для определений HMM.
Рис. 2.1
Весь речевой ввод и вывод на уровне звуковых волн реализован через HWave, а на уровне параметризации - через HParm. Также, обеспечивая последовательный интерфейс, HWave и HLabel поддерживают многочисленные файловые форматы, допускающие импорт данных из других систем. Прямой аудиоввод обеспечивает HAudio, а простая диалоговая графика обеспечивается модулем HGraf. HUtil обеспечивает множество подпрограмм для манипуляции HMMs, тогда как HTrain и HFB содержат поддержку для различных тренировочных инструментов HTK. HAdapt отвечает за различные инструментальные средства адаптации HTK. Наконец, HRec содержит основные функции, необходимые для процесса распознавания.
Как отмечено в следующей секции, управление поведением этих библиотечных модулей осуществляется простой установкой переменных конфигурации. Подробное описание функций библиотечных модулей дано во второй части этой книги, и важные переменные конфигурации описаны по мере их использования. Для удобства поиска, полный список дан в главе 18.
2.2 Общие Свойства инструментария HTK
Инструментальные средства HTK работают из командной строки с традиционным стилем интерфейса. Каждый инструмент (утилита) имеет множество необходимых аргументов плюс дополнительные аргументы. Последние всегда имеют префикс - знак "минус". Например, следующая команда должна запустить средство mythical HTK с названием HFoo
HFoo -T 1 -f 34.3 -a -s myfile file1 file2
Эта утилита имеет два основных аргумента с именами file1 и file2, плюс четыре дополнительных аргумента. Опции всегда вводятся с виде единственного символа со значением опции там, где это необходимо. Величина опции всегда отделена от имени опции символом "пробел". Таким образом, в этом примере величина
опции -f является действительным числом, величина опции -T является целым числом и величина опции -s является строкой. Опция -a не имеет величины, и она используется как простой флаг для добавления или отключения некоторой характеристики утилиты. Опции, чьи имена являются Прописными буквами, имеют одно и то же значение для всех инструментальных средств. Например, опция -T всегда используется для управления выводом на экран для утилит HTK.
Дополнительно к командным аргументам строки, операция средства может управляться параметрами,
загруженными из файла конфигурации. Например, если выполнена команда HFoo -C config -f 34.3 -a -s myfile file1 file2, утилита HFoo загрузит параметры, указанные в файле конфигурации config во время своей процедуры инициализации. Многочисленные файлы конфигурации могут быть определены путем повтора опции -C, например,
HFoo -C config1 -C config2 -f 34.3 -a -s myfile file1 file2
Параметры Конфигурации иногда могут использоваться как альтернатива аргументам командной строки.
Например, опции экранного вывода всегда могут быть устанавливаны в пределах файла конфигурации. Тем не менее, основное назначение файлов конфигурации - точное управление поведением библиотечных модулей, от которых зависят все инструментальные средства HTK.
Хотя этот стиль командной строки работы может показаться старомодным по сравнению с современными
графическим интерфейсом пользавателя, у него есть много преимуществ. В конкретном случае, это упрощает процесс написания сценариев оболочки для управления средствами HTK. Это важно для настраиваемого крупномасштабного системного построения и экспериментирования. Кроме того, определять всех операций базирующихся текстовых команд использования допускает детали системной конструкции или экспериментальной процедуры, которая нужно записывать и подтверждалась.
Наконец, необходимо отметить что короткая справка по командной строке и опциям для любого инструмента HTK можно получать путем простого запуска без аргументов.
2.3 Пакет разработчика
Инструментальные средства HTK наилучшим образом описываются с помощью пошагового построения
распознавателя слитной речи на основе субслов. На Рис. 2.2 показаны 4 основные фазы: подготовка данных, тренировка, испытание и анализ.
2.3.1 Инструментальных средства Подготовки Данных
Для построения набора HMMs потребуется набор файлов с речевыми данными и связанные с ними транскрипции.
Очень часто речевые данные поступают в виде архивов баз данных, часто расположенных на CD-ROM-ах.
Перед их использованием в фазе подготовки, их необходимо преобразовать в подходящую параметрическую форму, а любые связанные транскрипции необходимо преобразовать в правильный формат и использовать необходимые этикетки фонов или слов. Если необходимо записать речь, то может быть использована утилита HSLab одновременно для записи речи и ручной разметки с любыми необходимыми транскрипциями.
Хотя все инструментальные средства HTK могут "на-лету" параметризировать звуковой сигнал, на практике лучше параметризировать данные только один раз. Для этого используют утилиту HCopy. Как видно из названия, HCopy предназначена для копирования одного или более исходных файлов в один выходной файл.
Обычно, HCopy копирует файл целиком, но предусмотрен ряд механизмов для извлечения сегментов из файлов и конкатенации файлов. Устанавливая подходящие переменные конфигурации, все входные файлы могут быть преобразованы в параметрическую форму так, как они прочитаны. Таким образом, простое копирование каждого файла в этом способе выполняет необходимое кодирование. Можно использовать утилиту HList для того, чтобы проверить содержимое любого речевого файла, а поскольку оно также может "на-лету" преобразовать входной сигнал, с его помощью можно проверить результаты любых преобразований перед обрабаткой больших количеств данных. Транскрипции также нужно подготовить. Обычно этикетки, используемые в оригинальных исходных транскрипциях, не соответствуют необходимых требованиям, например, из-за различий в используемых фоновых наборах.
Также, фаза подготовки HMM может потребовать, чтобы этикетки были контекстно-зависимым. Средство HLEd является редактором этикеток под управлением сценариев, который предназначен для выполнения необходимых преобразований для разметки файлов. HLEd может соединить файлы в один Файл Основной Разметки MLF, формат которого обычно более удобен для последующей обработки. Наконец, на этапе подготовки данных, HLStats может собрать и отобразить статистику о файлах этикеток(разметки). Там, где необходимо на этапе подготовки, можно использовать HQuant для формирования VQ codebook для построения дискретной статистической системы на основе HMM.
2.3.2 Инструментальные средства обучения
Второй шаг построения системы должен определить топологию, необходимую для каждой HMM путем записи определения прототипа. HTK позволяет создать HMMs с любой желаемой топологией. Определения HMM могут храниться отдельно, как простые текстовые файлы и, следовательно, их можно редактировать в любом удобном текстовом редакторе. Кроме того, стандартный пакет HTK включает множество примеров прототипов HMM и сценарий для автоматической генерации наиболее общей топологии. За исключением вероятностей перехода, игнорируются все параметры HMM, данные в определении прототипа. Определения прототипа предназначены только для определения общих характеристик и топологии HMM. Фактические параметры будут вычислены позже с помощью инструментов обучения. Значительные величины для вероятности перехода должны быть даны, но процесс обучения очень нечувствительный к ним. Приемлемая и простая стратегия для выбора этих вероятностей - это сделать равновероятными все переходы из любого состояния.
) и загрузили архив fst_htk.zip, то уже могли ознакомиться с результатами проверки обученной модели. Ед. недостатком этого проекта является необходимость ручной подготовки файлов.