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

Урок 1

Уважаемый пользователь!

Вы приступаете к изучению системы распознавания речи HTK. Это изучение будет в виде уроков. Надеемся, что наше изложение будет вполне доступным нормальному здоровому индивидууму, интересующемуся распознаванием речевых сигналов.

Желаем успеха!

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

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

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

Шаг 1.

----------

{С целью обучения распознаванию необходимо произнести обучающую выборку(ОВ), составленную из определенных слов, например,из тех слов, которые Вы собираетесь распознавать.} Записываются слова, например, в программе CoolEdit. {Параметры записи слов:} {частота дискретизации} 16khz {(частоты дискретизации меньше 8000 Гц ухудшают качество речевого сигнала, а свыше 22050 Гц являются избыточными) }, {разрядность} 16bit {(возможно 8-16-24-32bit, 16 дают наилучший результат, 24-32bit есть избыточными)}, mono {(еще есть возможность stereo,но это ни к чему)}.

При записи между словами делается пауза не меньше одной секунды. Для обучения 2 раза произносится список слов из ОВ {(можно 1 раз, 3 раза и более)}.

Например, ОВ составлена из 10 нижеперечисленных слов:

один

два

три

четыре

пять

шесть

семь

восемь

девять

десять

Каждое слово записывается в отдельный файл {например, слово "один" записывается в файлы: v0001.wav - первая реализация слова, t0001.wav - вторая реализация слова}. В начале и конце файла обязательно должны быть паузы не меньше 0.3 секунды. Список слов из ОВ с файлами, в которые они должны быть записаны:

один - 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.

Для проверки надежности распознавания тот же список слов произносится и записывается в файл 10.wav (произносится один раз, между словами обязательно должна быть пауза не меньше 0.3 сек).


Шаг 2.

---------

Вручную, в строгом соответствии с правилами русского языка (безграмотным будет тяжело), составить словарь фонемных транскрипций {записанных слов}, {записать в файл} dict10 {:}

odin A D' I1 N

dva D V A1

tri T R' I1

chetyre CH E T Y1 R' E

pat P' A1 T'

shest SH E1 S T'

sem S' E1 M'

vosem V O1 S' E M'

devat D' E1 V' A T'

desat D' E1 S' A T'

sil sil

В первой колонке - текст произнесения; фактически это то, что увидит пользователь {на экране дисплея} после распознавания. Затем идет транскрипция, {в которой} фонемы отделяются друг от друга пробелами. Последнее слово sil (обязательно должно присутствовать) - пауза между словами, состоит из одной фонемы-паузы. {В названии файла dict10 число 10 после dict указывает количество слов в словаре}.

ПРИМЕЧАНИЕ: все формируемые Вами файлы должны оканчиваться пустой строкой, иначе HTK будет выдавать ошибку!!!!


Шаг 3.

---------

(ПРЕЖДЕ, ЧЕМ ВЫПОЛНЯТЬ, ПРОЧИТАЙТЕ ДАННЫЙ ШАГ ДО КОНЦА!!!!!)

Вручную составить словарь фонем {,которые используются в данном словаре,} {записать в файл} monophones21:

A1
A
D
D'
E
E1
I1
M'
N
O1
P'
R'
S
S'
T
T'
V
V'
CH
Y1
SH
sil

В данном случае собраны только те фонемы, которые присутствуют в обучающей выборке, плюс фонема_пауза sil. {В названии файла monophones21 число 21 после monophones указывает количество фонем в обучающей выборке(ОВ) без sil}.

{С другой стороны, с целью избежания трудоемкого подсчета и идентификации встречающихся в ОВ фонем, можно воспользоваться (и авторы Вам это рекомендуют) файлом monophones, в котором перечислены все фонемы русского языка и который прилагается. Это было бы более практично. По желанию, пользователь может придумывать и вводить в систему свои фонемы, лишь бы это все было отражено в соответствующих файлах. }