Краткий учебный курс по HTK

Урок 3

{Распознавание сочетаний слов, задаваемых грамматиками (например, числа) }

----------------------------------------------------------------------------------------------------

{Краткая инструкция пользователя(пошаговая) в HTK }

Поздравляем! Вы усвоили второй урок и, надеемся, успешно! Все, что было во втором уроке, третий урок не отменяет, а дополняет. В данном уроке будет показано, как HTK позволяет распознавать словосочетания. Покажем это на примере распознавания чисел, от 1 до 999.

Шаг 1.

----------

Обучающая выборка (ОВ) в уроке 1 и 2 была:

один - v0001.wav, t0001.wav;
два - v0002.wav, t0002.wav;
три - v0003.wav, t0003.wav;

четыре - v0004.wav, t0004.wav;
пять - v0005.wav, t0005.wav;
шесть - v0006.wav, t0006.wav;
семь - v0007.wav, t0007.wav;
восемь - v0008.wav, t0008.wav;
девять - v0009.wav, t0009.wav;
десять - v0010.wav, t0010.wav.

Для распознавания чисел от 1 до 999 её необходимо дополнить следующими словами:

одиннадцать - v0011.wav;
двенадцать - v0012.wav;
тринадцать - v0013.wav;
четырнадцать - v0014.wav;
пятнадцать - v0015.wav;
шестнадцать - v0016.wav;
семнадцать - v0017.wav;
восемнадцать - v0018.wav;
девятнадцать - v0019.wav;
двадцать - v0020.wav;
тридцать - v0021.wav;
сорок - v0022.wav;
пятьдесят - v0023.wav;
шестьдесят - v0024.wav;
семьдесят - v0025.wav;
восемьдесят - v0026.wav;
девяносто - v0027.wav;
сто - v0028.wav;
двести - v0029.wav;
триста - v0030.wav;
четыреста - v0031.wav;
пятьсот - v0032.wav;
шестьсот - v0033.wav;
семьсот - v0034.wav;
восемьсот - v0035.wav;
девятьсот - v0036.wav.

Шаг 2.

----------

Файл dict.txt с русскими словами дополнить новыми словами:

оди+н
два+
три+
четы+ре
пя+ть
ше+сть
се+мь
во+семь
де+вять
де+сять
оди+ннадцать
двена+дцать
трина+дцать
четы+рнадцать
пятна+дцать
шестна+дцать
семна+дцать
восемна+дцать
девятна+дцать
два+дцать
три+дцать
со+рок
пятьдеся+т
шестьдеся+т
се+мьдесят
во+семьдесят
девяно+сто
сто+
две+сти
три+ста
четы+реста
пятьсо+т
шестьсо+т
семьсо+т
восемьсо+т
девятьсо+т

Как и в уроке 2, знак + в написании слов означает ударение, пробелы не допускаются. Одно слово на строке. Файл dict.txt необходимо создать в редакторе Notepad.

Шаг 3.

----------

Преобразовать тексты слов из файла dict.txt в словарь dict.trn, который будет состоять из слов и их транскрипций, командой DOS (содержится в файле step2.bat, который прилагается):

trans_rus_hgf.exe dict.txt dict.trn

где

dict.txt - входной файл с русскими словами;

dict.trn - выходной файл.

Файл dict.trn содержит запись слов для распознавания и их транскрипции:

оди+н а д' и+ н
два+ д в а+
три+ т р' и+
четы+ре ч' и т ы+ р' э
пя+ть п' а+ т'
ше+сть ш э+ с' т'
се+мь с' э+ м'
во+семь в о+ с' ь м'
де+вять д' э+ в' ь т'
де+сять д' э+ с' ь т'
оди+ннадцать а д' и+ н ъ ц ъ т'
двена+дцать д в' и н а+ ц ъ т'
трина+дцать т р' и н а+ ц ъ т'
четы+рнадцать ч' и т ы+ р н ъ ц ъ т'
пятна+дцать п' и т н а+ ц ъ т'
шестна+дцать ш ы с н а+ ц ъ т'
семна+дцать с' и м н а+ ц ъ т'
восемна+дцать в ъ с' и м н а+ ц ъ т'
девятна+дцать д' ь в' и т н а+ ц ъ т'
два+дцать д в а+ ц ъ т'
три+дцать т р' и+ ц ъ т'
со+рок с о+ р ъ к
пятьдеся+т п' ь д' и с' а+ т
шестьдеся+т ш ъ з' д' и с' а+ т
се+мьдесят с' э+ м' д' ь с' ь т
во+семьдесят в о+ с' ь м' д' ь с' ь т
девяно+сто д' ь в' и н о+ с т а
сто+ с т о+
две+сти д в' э+ с' т' и
три+ста т р' и+ с т а
четы+реста ч' и т ы+ р' ь с т а
пятьсо+т п' и т' с о+ т
шестьсо+т ш ы с' т' с о+ т
семьсо+т с' и м' с о+ т
восемьсо+т в ъ с' и м' с о+ т
девятьсо+т д' ь в' и т' с о+ т
sil [] sil

Значок [] в последней строке означает, что в дальнейшем встречающаяся запись sil будет заменяться пробелом. Этот значок может и отсутствовать, на Ваше усмотрение, но тогда его необходимо убрать вручную в редакторе.

Шаг 4.

----------

Сформировать файлы, нужные для HTK (выходные файлы), командами

dict_to.bat dict.trn

или

dict_to_htks.exe dict.trn monophones phonems.ml words.ml gram

где

dict.trn - входной файл со словами и их транскрипциями.

Выходные файлы:

monophones - список фонем, которые встречаются в транскрипциях слов из файла dict.trn;

phonems.ml - заготовка mlf файла для обучения;

words.ml - заготовка mlf файла для тестирования;

gram - грамматика для распознавания изолированных слов.

Файлы dict_to.bat и dict_to_htks.exe прилагаются.