基于HTK的连续语音识别系统搭建学习笔记(一)

该系统能够识别连续说出的数字串和若干组姓名。建模是针对子词(sub-word, eg. 音素),具有一定的可扩充性。当加入一个新名字时,只需修改发音字典和任务语法即可。模型为连续混合高斯输出,运用语音决策树聚类形成的绑定状态式三音素。


1.数据准备

需要录制训练数据和测试数据。为进行校准,还需要数据的标注文本。这里用任务语法(task grammar)产生真值文本(ground truth)。为了处理训练数据,需要定义一个语音集合和一个字典用以涵盖训练和测试数据中涉及的单词。

[step 1]任务语法定义

创建文件:gram

创建位置:根目录下

文件内容:


上面的语法是高层表示,必须通过HParse转成HTK可用的底层表示。

运行:

HParse gram wdnet

生成:wdnet

生成位置:根目录

生成内容:


[step 2]字典定义

创建文件夹:dict lists

创建文件:BEEP语音字典(网上可以下载)beep beep.ded(空) names(手工制作的专有人名的发音,包括SEND-START,SEND-END) name.ded

放入位置:dict

创建文件:global.ded

创建位置:根目录下

文件内容:


此例中利用BEEP语音字典,除去其中的重音符,并在每个发音后加入sp(short pause,小停顿)。如果有哑音标志,就用MP命令把sil和sp合并成sil。

创建文件:wlist

创建位置:lists

创建内容:


执行:

HDMan -m -w .\lists\wlist -g global.ded -n .\lists\monophones1 -l dlog .\dict\dict1 .\dict\beep .\dict\names

生成文件:monophones1 (用于用到的音素列表)

生成位置:lists 

生成文件:dlog(参数文件记录过程)

生成位置:根目录

生成文件:dict1

生成位置:dict

注1 :实际上,这里应该手工修改 dict1 ,为SENT-END 和SENT-START 加上无输出标志,
为了展示队后面步骤地影响,这里故意不添加。


注:HDMan工具的具体详细解释以及使用可以参看HTK BOOK P262 

[step 3]录制语音数据

创建文件夹:labels

HSGen工具可以生成符合task grammar的句子,用来指导录音(HTK BOOK里叫sentence prompts):

执行:

HSGen -l -n 140 wdnet.\dict\dict1>.\labels\trainprompts

执行:

HSGen -l -n 15 wdnet .\dict\dict1>.\labels\testprompts

根据上述指令文件,录制相应的140个训练用语音数据文件和15个测试用语音数据文件。

生成文件:trainprompts testprompts

一个录制的例子如下: 
HSLab .\data\Train\speech\S0001 

注:随本文的压缩包没有包括这些数据文件,但包括了它们对应的特征文件,所以对整个实验没有什么影响。

[step 4]标注数据,得到真值文件

创建文件夹:scripts labels 

创建文件:prompts2mlf(HTK scripts目录下自带)

创建位置:scripts

Perl脚本prompts2mlf(在scripts目录下HTK自带)可以把录音文本截成单词级真值文件。

执行:

perl .\scripts\prompts2mlf.\labels\trainwords.mlf .\labels\trainprompts

perl .\scripts\prompts2mlf.\labels\testwords.mlf .\labels\testprompts

注:要在每个lab路径之前加上“*/”

生成文件:trainwords.mlf testwords.mlf

生成位置:labels

标注编辑器HLEd可把单词级真值文本(wordlevel MLF)转成音素级真值文本(phonelevel MLF):

创建文件:mkphones0.led

创建位置:根目录

创建内容:


EX命令表示按照字典dict1进行展开,IS表示在每个话语的前后插入标志,DE一行表示phones0.mlf中单词间不用sp隔开。

执行:

HLEd -l * -d .\dict\dict1 -i .\labels\phones0.mlf mkphones0.led .\labels\trainwords.mlf

生成文件:phones0.mlf

生成位置:labels

注:HLEd工具的详细讲解可以参考HTK BOOK P284

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值