HTK搭建大词汇量连续语音识别系统(四)

语言学模型训练

1)数据准备

使用python把timit中train目录下的txt文本搜集在一个文本里,格式如下:

<s> SHE HAD YOUR DARK SUIT IN GREASY WASH WATER ALL YEAR </s>

<s> DON'T ASK ME TO CARRY AN OILY RAG LIKE THAT </s>

<s> EVEN THEN IF SHE TOOK ONE STEP FORWARD HE COULD CATCH HER </s>

<s> OR BORROW SOME MONEY FROM SOMEONE AND GO HOME BY BUS </s>

<s> A SAILBOAT MAY HAVE A BONE IN HER TEETH ONE MINUTE AND LIE BECALMED THE NEXT </s>

<s> THE EMPEROR HAD A MEAN TEMPER </s>

<s> HOW PERMANENT ARE THEIR RECORDS </s>

<s> THE MEETING IS NOW ADJOURNED </s>

<s> CRITICAL EQUIPMENT NEEDS PROPER MAINTENANCE </s>

<s> TIM TAKES SHEILA TO SEE MOVIES TWICE A WEEK </s>

<s> SHE HAD YOUR DARK SUIT IN GREASY WASH WATER ALL YEAR </s>

测试用的文本一样。

2)模型训练
a. 建立空表:LNewMap 0f WFC Holmes empt.wmap
b. 统计文本语料词频信息:

LGPrep -T 1 -a 100000 -b 200000 -d  holmes.0 -n 4 “timit” empty.wmap -S train/train.txt

如果train.txt这种文件比较多,用-S train.scptrain.scp存放txt的路径

可以使用命令查看统计信息:
LGList holmes.0/wmap holmes.0/gram.0

 

c. 对统计文件排序并去除重复字串:

LGCopy -T 1 -b 200000 -d holmes.1 holmes.0/wmap holmes.0/gram0


 

结果如图:

HTK搭建大词汇量连续语音识别系统(四)_第1张图片

d. 过滤屌字典中不存在的词:

LGCopy -T 1 -o -m lm_timit/ timit.wmap -b 200000 -d  lm_ timit -w timit.wlist holmes.0/wmap holmes.1/data.0


HTK搭建大词汇量连续语音识别系统(四)_第2张图片

e. 生成语言学模型ugw文件

生成一元语言学模型,命令:

LBuild -T 1 -n 1 lm_timit/timit.wmap lm_timit/ug holmes.1/data.0 lm_timit/data.0


 

生成结果与界面:

\data\

ngram 1=4898

 

\1-grams:

-3.8220    !!UNK

-4.6002    </s>

-99.9900   <s>

-1.6652    A

-3.7551    ABBREVIATE

-4.6002    ABIDES

-4.2992    ABILITY

-4.1231    ABLE

-3.7551    ABLY

-3.7551    ABOLISH

-4.6002    ABORIGINE

-4.6002    ABORIGINES


HTK搭建大词汇量连续语音识别系统(四)_第3张图片

生成二元语言学模型,命令:

LBuild -T 1 -c 2 1 -n 2 -l lm_timit/ug lm_timit/timit.wmap lm_timit/bg1 holmes.1/data.0 lm_timit/data.0


 

生成结果与界面如下,有个警告:

BIGRAM: method Katz, cutoff 1

  coef[7]: 0.000000 0.311304 0.447630 0.990000 0.990000 0.990000 0.001000

 

\data\

ngram 1=4898

ngram 2~3129

 

\1-grams:

-3.8220    !!UNK

-4.6002    </s>

-99.9900   <s>

-1.6652    A   -0.1047

-3.7551    ABBREVIATE +0.0100

-4.6002    ABIDES

-4.2992    ABILITY    -0.1507

-4.1231    ABLE   -0.2465

-3.7551    ABLY   -0.0004

HTK搭建大词汇量连续语音识别系统(四)_第4张图片

同样的,生成三元语言学模型:

LBuild -T 1 -c 2 1 -n 3 -l lm_timit/bg1 lm_timit/timit.wmap lm_timit/tg1 holmes.1/data.0 lm_timit/data.0


 

生成结果与界面如下,有两个警告:

 

TRIGRAM: method Katz, cutoff 1
  coef[7]: 0.000000 0.277236 0.990000 0.990000 0.990000 0.990000 0.001000

\data\
ngram 1=4898
ngram 2~3129
ngram 3~2677

\1-grams:
-3.8220	!!UNK
-4.6002	</s>
-99.9900	<s>
-1.6652	A	-0.1047
-3.7551	ABBREVIATE	+0.0100
-4.6002	ABIDES
-4.2992	ABILITY	-0.1507
-4.1231	ABLE	-0.2465


HTK搭建大词汇量连续语音识别系统(四)_第5张图片

 

f. 语言学模型转换为图结构,可以被HVite所使用

将二元语言学模型转换为图结构,在timit.wlist开头加入!!UNK,然后使用其命令:

HBuild -n lm_timit/bg1 -s "<s>" "</s>" timit.wlist bigram.net

生成的bigram.net形式如下:

VERSION=1.0
N=4899 L=12923
I=0    W=!NULL               
I=1    W=!!UNK               
I=2    W=</s>                
I=3    W=<s>                 
I=4    W=A                   
I=5    W=ABBREVIATE          
I=6    W=ABIDES              
I=7    W=ABILITY             
I=8    W=ABLE  

 

 

复制dict3dict6,在dict6中开头加入:

!!UNK           sil      
!NULL           sil 
</s>            sil 
<s>             sil


 

和之前测试一样,使用HVite命令生成识别结果:

HVite -T 1 -H hmms/hmm15/macros -H hmms/hmm15/hmmdefs -s 10.0 -S test/test.scp -I results/recout_lm.mlf -w dict/bigram.net -C config/config2 -t 250.0 -n 4 20 -q Atal -z lat dict/dict6 lists/tiedlist


 

完成后使用HResults进行评测:

HResults -I test/testwords.mlf lists/tiedlist results/recout_lm.mlf

 

还是注意:testwords.mlf的路径应该和recout_lm.mlf的路径一致,不一致就用python修改一下。结果如下:

HTK搭建大词汇量连续语音识别系统(四)_第6张图片

比之前的要好点了。。。

 

 

你可能感兴趣的:(语音识别,htk,大词汇量,连续语音)