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

Урок 2

{Создание системы пофонемного распознавания отдельно произносимых слов с записью на русском языке}

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

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

Шаг 4.

----------

В редакторе скопировать monophones в monophones_num. В monophones_num через пробел поставить число актуальных состояний для каждой фонемы (рекомендовано 3(три)):

а 3
д' 3
и+ 3
н 3
д 3
в 3
а+ 3
т 3
р' 3
ч' 3
и 3
ы+ 3
э 3
п' 3
т' 3
ш 3
э+ 3
с' 3
м' 3
о+ 3
ь 3
в' 3
sil 3


Шаг 5.

---------

Создать hmmdefs определений HMM для фонем, запустив файл m.bat, который содержит командную строку:

make_hmmdefs.exe proto monophones_num hmmdefs

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

proto - прототип определений HMM (модели фонем);

monophones_num - список фонем с числом состояний.

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

hmmdefs - определения HMM для фонем.

В файле hmmdefs будут находиться определения HMM для тех фонем, которые встречаются в обучающей выборке!

Создать директорию hmm0, переместить hmmdefs в hmm0.



Шаг 6.

----------

Подготовить сеть слов wdnet для распознавания, запустив файл step6.bat (прилагается), который содержит командную строку:

HParse.exe gram wdnet

Предварительно нужно отредактировать файл gram, если это Вам действительно нужно.

Файл gram будет содержать запись:

$wrd =

оди+н |

два+ |

три+ |

четы+ре |

пя+ть |

ше+сть |

се+мь |

во+семь |

де+вять |

де+сять ;

( sil $wrd sil )

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

Последняя строка там имела запись:

( sil )

Эта запись означала, что файл для распознавания может содержать произношения нескольких слов через паузу между ними, ибо угловые скобки в записи означают возможное повторение того, что в них находится. В уроке 2 этих угловых скобок команды из шага 3 не создают. Это значит, что файл для распознавания может содержать произношение только лишь одного слова с паузой впереди этого слова и за ним. В этом случае, если Вы желаете распознавать все те десять слов из файла wavs/10.wav, что были в уроке 1, Вам необходимо записать эти десять слов в отдельные файлы, например:

w0000.wav

...

W0009.wav

В этом случае сценарий файлов тестирования test.scp должен содержать запись:

wavs/w0000.wav

...

wavs/w0009.wav

вместо

wavs/10.wav

Если Вы желаете, чтобы было как в уроке 1, тогда необходимо в файле gram отредактировать последнюю строку, вставив угловые скобки.



Шаг 7.

----------

Скопировать phonems.ml в phones10.mlf (описание файлов обучения).

Откорректировать названия файлов, в которых находятся реализации слов из обучающей выборки, и удвоить по числу реализаций:

#!MLF!#

"wavs/v0000.lab"

sil

а

д'

и+

н

sil

.

...

"wavs/v0009.lab"

sil

д'

э+

с'

ь

т'

sil

.

"wavs/t0000.lab"

sil

а

д'

и+

н

sil

.

...

"wavs/t0009.lab"

sil

д'

э+

с'

ь

т'

sil

.