训练步骤详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HTK识别器的建立和使用--第一步:准备数据
以下五个步骤就是准备数据的全过程。
Step 1.创建语法和网络文件
如果要识别的是一些简单的拨号命令,如:
Dial three three two six five four
Dial nine zero four one oh nine
Phone Woodland
Call Steve Y oung
按照这些命令编辑语法文件,格式如下:
$digit = ONE | TWO | THREE | FOUR | FIVE |
SIX | SEVEN | EIGHT | NINE | OH | ZERO;
$name = [ JOOP ] JANSEN |
[ JULIAN ] ODELL |
[ DA VE ] OLLASON |
[ PHIL ] WOODLAND |
[ STEVE ] YOUNG;
( SENT-START ( DIAL <$digit> | (PHONE|CALL) $name) SENT-END )
假设语法文件名为gram,则利用HTK中的HPARSE工具创建单词网络文件wdnet,命令
格式为:
HParse gram wdnet
注:wdnet的具体形式见E:\HMM\HTKSample\WordNet
其中J表示支路,I表示节点内容,S表示支路起始,E表示支路结束。
作wdnet的目的是为了求得词词间的转移概率,以及建立三因子模型时考虑因子间的连接。
Step 2.创建词典文件
该文件创建比较复杂。所用的命令格式为:
HDMan -m -w wlist -n monophones1 -l dlog dict beep names
其中,wlist是单词列表文件,它有着自己的格式,最初可以将它写成文本格式的
文件,例如:
S0001 ONE V ALIDA TED ACTS OF SCHOOL DISTRICTS
S0002 TWO OTHER CASES ALSO WERE UNDER ADVISEMENT
S0003 BOTH FIGURES WOULD GO HIGHER IN LA TER YEARS
S0004 THIS IS NOT A PROGRAM OF SOCIALIZED MEDICINE
etc
然后,利用HTK提供的工具prompts2wlist可以将其转化为符合要求的wlist文件,
在这个文件中,每行只有一个单词,而且按照字母顺序排列,而且在面向任务的识
别器中,单词的范围是限定的。
注:wlist的具体形式见E:\htk\htk训练\文件实例\wlist.txt
wlist内的每个单词占一行,这样便于加入停顿信息。
接着,有了源词典beep和names,从这些词典中,可以搜寻到wlist文件里所列出的
各个单词的发音,beep是一般单词的发音词典,可以下载得到。而names则是手工
创建的文件,给出了识别任务里所用到的姓名的发音。
-l dlog将把已建立的辞典的各种统计信息输出到日志文件dlog中去,这些信息
可以告诉你是否遗漏某些单词。-n monophones1则把用到的音子都输出到文件mon ophones1中,在以后的步骤中,每一个这里的音子都会相应地被创建一个HMM模型。最后是词典文件dict的一般格式:
WORD [outsym] p1 p2 p3 ....
意思就是,单词WORD的发音是按照音子序列p1 p2 p3的顺序发出的,当单词被识别出来,它就以方括号里面的字串作为结果输出。[outsym]是个可选项,如果没有
它,则单词以本身的形式输出;如果有但是方括号里面为空,则什么也不输出。
注:wlist的具体形式见E:\htk\htk训练\文件实例\dict.txt
之所以建立这样一个小范围的词典,是为了缩小搜索空间。
monophones1的具体形式见E:\htk\htk训练\文件实例\monophones1.txt
建立monophones1只是便于查看用到的因子。
Step 3.录制数据
HSLab提供录音和标注的功能。它的格式为:
HSLab 文件名,可以用来录制训练数据和测试数据。训练数据的数据源可以来自
已有的语音数据库,而测试数据的数据源可以利用HSgen工具从现成的网络文件和
词典文件中产生,它能够随机地通过单词网络并输出每一个遇到的单词,其命令格
式为:
HSGen -l -n 200 wdnet dict,其中-n 200表示产生句子的数目为200个。
Step 4.创建转换文件
为了训练HMM模型,每一个训练数据文件都必须有一个相关联的音子层次上的转换。由于训练数据不能够自展成一系列的转换模型,所以需要用一个平稳的方案,
得用两次音子转换。第一次转换在词与词之间不加入停顿(sp),接下来,一旦
产生合理的音子模型,一个sp模型就将被插入到单词之间,以表示由说话者引入的
暂停。对于训练数据,可以用文本编辑器,也可以用HTK提供的工具prompts2mlf
来生成其转换。例如,对于数据库提供的训练数据:
S0001 ONE V ALIDA TED ACTS OF SCHOOL DISTRICTS
用prompts2mlf生成的便是如下形式:
#!MLF!#
"*/b"
ONE
V ALIDA TED
ACTS
OF
SCHOOL
DISTRICTS
.
数据标号转换为路径名,每个单词占一行,每一句话以一个句号作为终结。第一行
则定义了此文件为Master Label File(MLF)。这样单个的文件包含了一套完全的转
换,虽然每个转换可以单独存在一个文件里,但是显然使用MLF更加高效。路径名