日期:2014-05-16  浏览次数:20467 次

用HTK搭建语音识别器实录(TIDigits数据库)

TIDIGITS数据库包含11个孤立数字,分别为one,two,three,four ,five,six,seven,eight,nine,oh,zero.

1.数据准备

1.1.1 建立任务语法

它的任务语法如下:

$digit= ( one | two | three | four | five |six | seven | eight | nine | zero | oh );

([sil] <$digit sp> [sil])

将上面内容保存为digit.gram文件

注:|竖线表示可选择。尖括号<>表示一次和多次重复,[]中括号表示:可选择

HTK识别器需要一个用Standard Lattice Format (SLF)建立的词的网络。该网络描述词与词之间的转移。该词的网络可以用Hparse命令进行创建。

Hparsedigit.gram digit.net

其中digit.gram为任务语法,digit.net为生成的词网络。

digit.gram为手工编辑。

1.1.1 建立词典

建立词典之前需要一个词列表,对于简单的任务,可以用用手工的方法建立所需的词列表。这里用手工的方法制作。如下:保存为digitlist文件

one

two

three

four

five

six

seven

eight

nine

zero

oh

sil

sp

注:创建字典之前,需要创建一个词的列表文件,在本实验中,可以很方便的用手工制作这样一个文件。如果任务非常复杂的识别,需要从训练数据的句子中生成词的列表。可以从句子集sentence prompts中建立词列表 word list

这里以词作为HMM模型,所以发音模型为整词。对于连续语音识别要用音素。

beep文件用手工编写,如下:

eight eight

five five

four four

nine nine

oh oh

one one

seven seven

sil sil

six six

sp sp

three three