




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽中科大讯飞信息科技有限公司Anhui USTC iFlyTek CO.,LTD. The EasyTraining Toolkit系统概览及流程指南科大讯飞 版权所有(2006)可以加上你的名字和详细日期、版本1.0第23页目 录目 录0一系统概述1二上下文相关(Context-dependent)模型的训练流程32.1 上下文无关模型的训练42.1.1 用CompV估计全局方差42.1.2 用ModelGen克隆monophone52.1.3 分割训练数据列表52.1.4 用HLEd将词级MLF文件转为音素级MLF文件52.1.5 HERest训练不带sp的monophone模型62.1.6 在monophone中加入停顿模型sp72.1.7 HERest训练带sp的monophone模型82.1.8 校正训练数据102.1.9 用校正后的数据训练模型112.2 克隆上下文相关(context-dependent)模型132.3 状态绑定上下文相关模型152.4 分裂高斯162.5 生成最终模型18三右相关声母及带调韵母模型的训练流程193.1 无关模型的训练流程193.2 克隆右相关声母及带调韵母模型193.3 分裂高斯203.4 得到最终模型20四HTK声学模型测试214.1 HParse生成语法网络214.2 HVite识别214.3 HResults计算识别率22五版本信息23一系统概述The EasyTraining Toolkit是一个以HTK为基础而开发的用于大词汇量连续语音识别系统模型训练和测试的工具包,目前的版本支持上下文相关(context-dependent)模型和、右相关声韵母模型及带调模型的训练和测试,两种模型只需要配置不同的基础文件即可。EasyTraining统一MLE训练的框架流程图如下图所示:图1.1 Easytraining 统一MLE训练框架图The EasyTraining Toolkit的特点:n 统一框架n 跨平台(WIN32、Linux兼容)n 较少基础文件准备n 断点恢复n 训练数据检查n 决策树聚类状态数指定n 清除中间文件n 并行化n 灵活配置表1 上下文相关模型基础文件列表config.allHTK config文件dict.mono dict.test训练及测试词典HHEd.fixsilsil处理命令及问题集HHEd.questionsetHLEd.wrd2mono_nospMLF处理命令文件HLEd.wrd2mono_spHLEd.mono2trimodelgen.cmdMono-phone模型克隆文件proto_E模型原型文件proto_spsyllable.mlf词级MLFtrain.scp训练文件列表表2 右相关声韵母及带调右相关声母及带调韵母模型基础文件列表:config.allHTK config文件sy.dict sy.dict.notone带调及不带调词典HHEd.fixsilsil处理命令及问题集HLEd.wrd2mono_nospMLF处理命令文件HLEd.wrd2mono_spHLEd.mono2symodelgen.cmd.sy66Mono-phone模型克隆文件proto_E模型原型文件proto_spSyllable_tone.mlf词级MLF(带调)train.scp训练文件列表二上下文相关(Context-dependent)模型的训练流程本节以Tri-phone模型训练为例,介绍用HTK对上下文相关(context-dependent)模型的训练流程,Tri-phone单元都是基于基准的上下文无关的音素声韵单元(简称即Mono-phone)进行跨词的上下文扩展所得。其中sil为上下文无关(context independent)的模型,sp为相关可穿越(context free)模型。模型命名规则为:左相关-模型+右相关,例如_a-a+b。下图为声学模型训练过程的基本流程:图2.1 Easytraining基本训练流程图从图中可以看出,整个模型训练的过程可以分成下面四个部分:第一部分:上下文无关模型第二部分:上下文相关模型第三部分:决策树状态绑定模型第四部分:最终测试模型下图为声学模型训练的详细流程图:图2.2 Easytraining声学模型训练的详细流程图2.1 上下文无关模型的训练2.1.1 用CompV估计全局方差HcompV计算出所有训练数据的全局均值和方差,并用全局均值和方差取代原型文件proto中的0均值和1方差,生成global模型作为下一步克隆时的基准原型模型;同时,将全局方差的0.01倍设为方差下限并输出vFloor方差下限文件。命令行如下:$cmd = $g_bin_HCompV -m -f 0.01 -C $g_cf_Mono -S $g_scp_Training -o global -M $g_dir_Mono/Init $g_prt_Proto;输入文件:1. -C $g_cf_Mono为配置文件config;2. -S $g_scp_Training为所有训练数据全目录文件名列表文件train.scp;3. $g_prt_Proto为定义HMM结构的原型文件proto;输出(目录:$g_dir_Mono/Init)文件:1. -o global输出为全局均值和方差的MMF文件global;2. vFloor输出下限方差文件vFloor;2.1.2 用ModelGen克隆monophone此步骤请进一步给出一个modelgen命令文件的例子ModelGen将上一步得到的global作为原型基准模型,克隆出每一个音素(phone)的HMM模型,并把所有克隆出来的音素模型参数保存在MMF文件“hmm0/MODELS”中。 $cmd = $g_bin_EasyTraining -ModelGen -H $g_dir_Mono/Init/global -v $g_dir_Mono/Init/vFloors -M $g_dir_Mono/Init/hmm0/MODELS $g_cmd_EasyTraining_ModelGen;输入文件:1. -H $g_dir_Mono/Init/global为上一步得到的global文件;2. -v $g_dir_Mono/Init/vFloors上一步得到的vFloors文件;3. $g_cmd_EasyTraining_ModelGen编辑命令文件(包含要克隆的phone及其状态数);输出文件:1. -M $g_dir_Mono/Init/hmm0/MODELS克隆后包含所有音素模型的MMF文件;2.1.3 分割训练数据列表SplitScripts将所有训练语音的全路径列表文件$g_scp_Training分割成$g_nSplit等份,用于在下一步分别训练模型乃至实现并行化。命令行如下: $cmd = $g_bin_EasyTraining -SplitScript $g_scp_Training $g_nSplit;参数:1. $g_nSplit需要分割的数量;输入文件:1. $g_scp_Training待分割的全部训练语音的全路径列表文件;输出文件:$g_scp_Training.1,$g_scp_Training.2,$g_scp_Training. $g_nSplit。为分割成$g_nSplit等份后每一部分数据的路径列表文件名。2.1.4 用HLEd将词级MLF文件转为音素级MLF文件此处请加入原始MLF和处理后MLF的例子(就像我ppt里给的那样,可以直接copy过来)。并指出作为基础文件的MLF需严格按照格式来写,即:sil与noise等必须显式的标出,sp则可放宽HLEd将基于词的MLF(Master Label File)标注文件转为基于音素的MLF标注文件;同时,生成不带sp的音素列表文件$hmmlist_mono_sp。命令行如下: $cmd = $g_bin_HLEd -l $strStar -d $g_dict_Mono -i $g_dir_Mono/MLF.mono.nosp -n $g_hmmlist_mono_nosp $g_cmd_HLEd_Word2Mono_nosp $g_mlf_Word;输入文件:1. -d $g_dict_Mono音素词典文件;2. $g_cmd_HLEd_Word2Mono_nosp由词转为音素的编辑命令文件;3. $g_mlf_Word基于词的MLF标注文件;输出文件:1. -i $g_dir_Mono/MLF.mono.nosp不含sp的音素标注MLF文件;2. -n $g_hmmlist_mono_nosp不含sp的音素列表文件;2.1.5 HERest训练不带没有sp的monophone模型HERest对训练数据进行训练,得到不带sp的monophone模型。这个过程可以跳过,即可以直接训练带sp的模型。如果要跳过,直接设置全局布尔变量$g_bTieSilSp即可(流程可见图2.3)。训练这个过程分两步进行训练,首先,对每一个已经分割好的训练语音列表文件$g_scp_Training.i(i表示第i个列表文件)中的语音特征都要进行训练。命令行如下:$cmd = $g_bin_HERest $g_strBinaryFlag -p $j $g_strPruning-C $g_cf_Mono -H $g_dir_Mono/Init/hmm$k/MODELS-M $g_dir_Mono/Init/hmm$i -S $g_scp_Training.$j-I $g_dir_Mono/MLF.mono.nosp $g_hmmlist_mono_nosp;参数:1. -p $j当j0时,进行并行训练,对每一部分训练数据会产生一个HER.acc文件;当j=0时,读取所有HER.acc文件,对所有训练数据进行训练训练结果进行汇总;2. $g_strBinaryFlag二进制标志,如果值为“-B”,表示输出存储为二进制文件;输入文件:1. -C $g_cf_Mono配置文件config;2. $g_dir_Mono/Init/hmm$k/MODELS每轮迭代训练前的MMF文件;3. -S $g_scp_Training.$j第j个训练数据列表文件,表示这一次训练只用-S $g_scp_Training.$j中的数据进行训练;4. -I $g_dir_Mono/MLF.mono.nosp用于训练的MLF音素标注文件(由第3步生成);5. $g_hmmlist_mono_nosp用于训练的音素列表文件(由第3步生成);输出文件:1. -M $g_dir_Mono/Init/hmm$i指定第i轮训练时,产生的HER.acc文件存储目录;上述训练完成后,再用所有数据进行一次训练:命令行如下: $cmd = $g_bin_HERest $g_strBinaryFlag -p 0 $g_strPruning -C $g_cf_Mono -H $g_dir_Mono/Init/hmm$k/MODELS -M $g_dir_Mono/Init/hmm$i -s $g_dir_Mono/Init/hmm$i/occ.0 $g_hmmlist_mono_nosp; for($j=1; $j $g_dir_Mono/Align/LOG.HVite.Split.$j;输入文件:1. -C $g_cf_Mono配置文件config;2. -H $modelnow当前模型文件;3. -I $g_dir_Mono/Align/MLF.align较正后的词级MLF标文件;4. -S $g_scp_Training.$j第j批训练数据;5. $g_dir_Mono/Align/dict.align较正Multi-Pronunciation后的音素词典文件;6. $g_hmmlist_mono_sp音素列表文件;输出文件:1. -i $g_dir_Mono/Align/MLF.Aligned.$j对第j批数据测试的结果;2. $g_dir_Mono/Align/LOG.HVite.Split.$j测试结果日志文件;从日志文件中,选出“合格”的训练数据(初步定为Force-Alignment能存活的文件),并保存,命令行如下:参数:$g_nSplit分割训练列表的个数; $cmd = $g_bin_EasyTraining -GetSVVUtt $g_dir_Mono/Align/LOG.HVite.Split $g_scp_Aligned_Training $g_nSplit;输入文件:1. $g_dir_Mono/Align/LOG.HVite.Split测试结果日志文件;输出文件:1. $g_scp_Aligned_Training较正校正后合格的训练数据列表;2.1.9 用较正校正后的数据训练模型用上一步得到的较正校正后的训练数据再进行训练,首先对数据分开进行训练。命令行为: $cmd = $g_bin_HERest $g_strBinaryFlag -p $j $g_strPruning -C $g_cf_Mono -H $g_dir_Mono/Align/hmm$k/MODELS -M $g_dir_Mono/Align/hmm$i -S $g_scp_Aligned_Training.$j -I $g_dir_Mono/MLF.mono $g_hmmlist_mono_sp;输入文件:1. -C $g_cf_Mono配置文件config;2. -H $g_dir_Mono/Align/hmm$k/MODELS待训练的MMF模型文件;3. -S $g_scp_Aligned_Training.$j较正校正后的训练数据列表文件;4. -I $g_dir_Mono/MLF.mono包含sp的音素标注文件;5. $g_hmmlist_mono_sp包含sp的音素列表文件;输出文件:1. -M $g_dir_Mono/Align/hmm$i第i轮训练时,产生的HER.acc文件存储目录;然后对全部数据进行训练汇总,命令行如下: $cmd = $g_bin_HERest $g_strBinaryFlag -p 0 $g_strPruning -C $g_cf_Mono -H $g_dir_Mono/Align/hmm$k/MODELS -M $g_dir_Mono/Align/hmm$i -s $g_dir_Mono/Align/hmm$i/occ.0 $g_hmmlist_mono_sp; for($j=1; $j=$g_nSplit; $j+) $cmd = $cmd . $g_dir_Mono/Align/hmm$i/HER$j.acc; 输入文件:1. -C $g_cf_Mono配置文件config;2. -H $g_dir_Mono/Align/hmm$k/MODELS待训练的MMF模型文件MODELS;3. $g_hmmlist_mono_sp包含sp的音素列表文件;2. $g_dir_Mono/Align/hmm$i/HER$j.acc所有的HER.acc文件;输出文件:1. -s $g_dir_Mono/Align/hmm$i/occ.0训练过程产生的统计文件occ.0;2. -M $g_dir_Mono/Align/hmm$i第i轮训练完成后,得到新的MMF文件MODELS的存储目录;通过上述9个步骤就完成了整个monophone模型的训练过程,下一步将monophone模型克隆为上下文相关(context-dependent)模型。图2.4给出了对训练数据进行检查的程序流程图:图2.4 Force-alignment检查训练数据流程图2.2 克隆上下文相关(context-dependent)模型首先,用HLEd生成上下文相关模型MLF标注文件请给出例子(下面进行上下文相关模型的训练时需要用到该文件)。命令行如下: $cmd = $g_bin_HLEd -l $strStar -i $g_dir_Context/MLF.context -n $g_hmmlist_context $g_cmd_HLEd_Mono2Context $g_dir_Mono/MLF.mono;输入文件:1. $g_dir_Mono/MLF.mono含sp的monophone音素标注MLF文件;2. $g_cmd_HLEd_Mono2ContextHLEd命令编辑文件;输出文件:1. $g_dir_Context/MLF.context上下文相关音素标注MLF文件;2. $g_hmmlist_context上下文相关音素列表文件;其次,用MakeM2CHHEdCmd生成从Mono-Phone克隆到Tri-Phone的HHEd命令编辑文件。需要指出的是,此编辑文件还将各个phone的状态转移矩阵绑在了一起。命令行如下: $cmd = $g_bin_EasyTraining -MakeM2CHHEdCmd $g_hmmlist_mono_nosp$g_hmmlist_context $g_dir_Context/HHEd.Mono2Context;参数:1. $g_hmmlist_context只将该文件名作为输入参数;输入文件:1. $g_hmmlist_mono_nosp不含sp的音素列表文件;输出文件:2. $g_dir_Context/HHEd.Mono2ContextHHEd命令编辑文件;接着,通过执行HHEd命令将monophone模型转化为上下文相关模型。命令行如下: $cmd = $g_bin_HHEd -C $g_cf_Context -H $modelnow -M $g_dir_Context/hmm0 $g_dir_Context/HHEd.Mono2Context $g_hmmlist_mono_sp;输入文件:1. $g_cf_Context配置文件config;2. -H $modelnow第9步得到的monophone模型MODELS;3. $g_dir_Context/HHEd.Mono2ContextHHEd命令编辑文件;4. $g_hmmlist_mono_sp不含sp的音素列表文件;输出文件:-M $g_dir_Context/hmm0上下文相关模型MODELS存放目录;最后,对得到的上下文相关模型$g_dir_Context/hmm0/MODELS进行迭代训练。和前面训练过程一样分两步进行,即先对训练数据分开进行训练,然后再对全部数据进行训练。对训练数据分开进行训练的命令行如下: $cmd = $g_bin_HERest $g_strBinaryFlag -p $j $g_strPruning -C $g_cf_Context -H $g_dir_Context/hmm$k/MODELS -M $g_dir_Context/hmm$i -S $g_scp_Aligned_Training.$j -I $g_dir_Context/MLF.context $g_hmmlist_context;输入文件:1. -C $g_cf_Context配置文件config;2. -H $g_dir_Context/hmm$k/MODELS待训练的MMF模型文件;3. -S $g_scp_Aligned_Training.$j较正校正后的训练数据列表文件;4. -I $g_dir_Context/MLF.context上下文相关的音素标注文件;5. $g_hmmlist_context上下文相关的音素列表文件;输出文件:1. -M $g_dir_Context/hmm$i第i轮训练时,产生的HER.acc文件存储目录; $cmd = $g_bin_HERest $g_strBinaryFlag -p 0 $g_strPruning -C $g_cf_Context -H $g_dir_Context/hmm$k/MODELS -M $g_dir_Context/hmm$i -s $g_dir_Context/hmm$i/occ.0 $g_hmmlist_context; for($j=1; $j $g_dir_TiedContext/HHEd.Tied.log;输入文件:1. -C $g_cf_TiedContext配置文件config;2. -H $modelnow绑定前的模型文件MMF;3. $g_dir_TiedContext/HHEd.ClusteringHHEd命令编辑文件;4. $g_hmmlist_context上下文相关的音素列表文件;输出文件:1. -M $g_dir_TiedContext/hmm0绑定后的模型文件MMF;2. $g_dir_TiedContext/HHEd.Tied.log绑定的日志文件;3. $g_dir_TiedContext/TREE生成的决策树;4. $g_hmmlist_tiedcontext生成的绑定音素列表文件;最后,根据给定的状态数目对MODELS中的模型和TB值进行调整检查目前所得模型的聚类状态数。如果它不满足设定的状态数条件(目前状态数处于$g_strTiedStates正负百分之$g_strTolerance范围内),则对TB进行修改,并重新进行决策树聚类。这里请给出我ppt中的检查流程,命令行如下: $cmd = $g_bin_EasyTraining -CheckClstStates $g_dir_TiedContext/HHEd.Tied.log$g_dir_TiedContext/Clst.log $g_strTiedStates $g_strTolerance$g_dir_TiedContext/hmm0/MODELS;参数:1. $g_strTiedStates绑定后的状态数目;2. $g_strTolerance输入文件:1. $g_dir_TiedContext/HHEd.Tied.log绑定的日志文件;输出文件:1. $g_dir_TiedContext/hmm0/MODELS调整状态数目后的模型;2. $g_dir_TiedContext/Clst.log聚类日志文件;2.4 分裂高斯前面所做的各个步骤都是基于单个高斯,这一步将单个高斯逐步分裂成多个高斯。EasyTraining被设计成对填塞模型和普通phone模型可以沿着不同的mixture-up path增长高斯。,首先,通过如下命令行生成分裂高斯的HHEd命令编辑文件:$cmd = $g_bin_EasyTraining MakeMUHHEdCmd $g_dir_TiedContext/mix$m/HHEd.MixtureUp $m $g_hmmlist_mono_sp $n $g_strNonPhoneList;参数:1. $mphone的当前高斯数;2. $nNonphone的当前高斯数;3. $g_strNonPhoneList值为“sil sp”填塞模型列表;输入文件:1. $g_hmmlist_mono_sp含sp的音素列表文件;输出文件:1. $g_dir_TiedContext/mix$m/HHEd.MixtureUpHHEd命令编辑文件;得到HHEd命令编辑文件后,HHEd按照该文件中的命令增加模型中的高斯混合数目,命令行如下:$cmd = $g_bin_HHEd -C $g_cf_TiedContext -H $modelnow -M $g_dir_TiedContext/mix$m/hmm0 $g_dir_TiedContext/mix$m/HHEd.MixtureUp $g_hmmlist_tiedcontext;输入文件:1. -C $g_cf_TiedContext配置文件config;2. -H $modelnow当前模型文件;3. $g_dir_TiedContext/mix$m/HHEd.MixtureUpHHEd命令编辑文件;4. $g_hmmlist_tiedcontext决策树绑定后的音素列表文件;输出文件:1. -M $g_dir_TiedContext/mix$m/hmm0m个高斯时初始MODELS存储目录;最后,对分裂高斯后的初始模型进行迭代训练,如下面两个命令行所示:$cmd = $g_bin_HERest $g_strBinaryFlag -p $j $g_strPruning-C $g_cf_TiedContext -H $g_dir_TiedContext/mix$m/hmm$k/MODELS-M $g_dir_TiedContext/mix$m/hmm$i -S $g_scp_Aligned_Training.$j-I $g_dir_TiedContext/MLF.tiedcontext $g_hmmlist_tiedcontext;输入文件:1. -C $g_cf_TiedContext配置文件config;2. -H $g_dir_TiedContext/mix$m/hmm$k/MODELS待训练的MMF模型文件;3. -S $g_scp_Aligned_Training.$j较正校正后的训练数据列表文件;4. -I $g_dir_TiedContext/MLF.tiedcontext决策树绑定后的音素标注文件;5. $g_hmmlist_tiedcontext决策树绑定后的音素列表文件;输出文件:1. -M $g_dir_TiedContext/mix$m/hmm$i第i轮训练时,产生的HER.acc文件存储目录;$cmd = $g_bin_HERest $g_strBinaryFlag -p 0 $g_strPruning -C $g_cf_TiedContext-H $g_dir_TiedContext/mix$m/hmm$k/MODELS -M $g_dir_TiedContext/mix$m/hmm$i-s $g_dir_TiedContext/mix$m/hmm$i/occ.0 $g_hmmlist_tiedcontext;for($j=1; $j=$g_nSplit; $j+) $cmd = $cmd . $g_dir_TiedContext/mix$m/hmm$i/HER$j.acc;输入文件:1. -C $g_cf_TiedContext配置文件config;2. -H $g_dir_TiedContext/mix$m/hmm$k/MOD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字艺术市场交易活跃度2025年报告:艺术市场区域发展差异分析
- 建筑损伤修复方案设计
- 滨海安全生产培训基地课件
- 建筑方案设计总结模板范本
- 活动方案策划人员权力
- 物业项目冬至活动方案策划
- 建筑基坑安全监测方案设计
- 别墅投标施工方案怎么写
- 淳华科技安全培训内容课件
- 85平现代简约施工方案
- 2025年家庭照护者、健康照护师岗位专业技能资格知识考试题(附答案)
- 餐饮用餐协议书范本7篇
- 《中国变应性鼻炎诊断和治疗指南(2022年修订版)》解读
- 《矿山隐蔽致灾因素普查规范》解读培训
- 2024年度人防工程维护保养合同6篇
- 药品研发过程中的管理制度
- 2024德国欧洲氧化亚氮减排经验手册
- 高考作文素材积累与写法总结27 自知与知人作文审题指导及素材积累
- 2024-2030年中国电解二氧化锰(EMD)行业市场发展趋势与前景展望战略分析报告
- 初中+物理运动的描述++人教版八年级物理上册+
- DNDC模型使用手册
评论
0/150
提交评论