HTK搭建大词汇量连续语音识别系统(三)
今天七夕节,祝大家七夕快乐!
但这与我这种秃头女程序猿又有什么瓜系.jpg,继续搭建模型。。
由于昨天关闭了电脑,今天打开cmd之后要先做运行VCVARS32和连接bin.win32两步,具体操作见第一个教程开头。
十、绑定三音素
首先,制作一个脚本文件mktri.led,放在data/scripts文件夹中,内容为:
WB sp
WB sil
TC
!!!!记得最后要有一行换行
执行命令:
HLEd -n labels/triphones1 -i labels/wintry.mlf scripts/mktri.led labels/aligned.mlf
得到triphones1和wintry.mlf两个文件。
这里要对wintry.mlf用python代码处理,将路径修改为“*/XXXX”。代码如下:
a1=open("d:/data/labels/wintry.txt",'r+')
b=[]
str='S'
txt1=a1.readlines()
a1.close()
for lines in txt1:a=linesc=aif a.find(str)>=0:b=a.split('S',1)c='"*/S'+b[1]#print(c)a2=open("d:/data/labels/wintry_new.txt",'a')a2.write(c)a2.close()
再把wintry_new.txt修改为wintry.mlf即可。
执行命令:
perl scripts/maketrihed monophones0 labels/triphones1
在data文件夹中找到mktri.hed文件,并放入scripts文件夹中。
执行命令:
HHEd -H hmms/hmm9/macros -H hmms/hmm9/hmmdefs -M hmms/hmm10 scripts/mktri.hed monophones0
似乎有warning,不过应该不重要 。
重估两次:
HERest -A -D -T 1 -C configs/config -I labels/wintry.mlf -t 250.0 150.0 1000.0 -S scps/train.scp -H hmms/hmm10/macros -H hmms/hmm10/hmmdefs -M hmms/hmm11 labels/triphones1
HERest -A -D -T 1 -C configs/config -I labels/wintry.mlf -t 250.0 150.0 1000.0 -s stats -S scps/train.scp -H hmms/hmm11/macros -H hmms/hmm11/hmmdefs -M hmms/hmm12 labels/triphones1
接着,使用脚本生成fullist和tielist文件。
首先制作脚本文件global3.ded,内容如下:
RS cmu
MP sil sil sp
TC
!!!!记得最后要有一行换行
然后,在dict3的基础上制作新发音字典dict4。去掉了以下内容:
SILEN sil
SEND-END [] sil
SEND-START [] sil
执行如下命令:
HDMan -b sp -n lists/fullist -g global3.ded -l floag dict/dict4-tri dict/dict4
可能会有如下报错:
ERROR [+1452] ReadDictProns: word – out of order in dict dict/dict4
FATAL ERROR - Terminating program HDMan
把dict4里面的“-- sp”这一行换到“A”的上面就好了。之后在data/lists中生成fullist文件。
然后对fullist文件进行处理。用记事本打开fullist,在最后添加如下内容:
sil
ay
em
ow
ax
!!!!记得最后要有一行换行
接下来生成tree.hed文件。
首先,在HTK samples文件夹中找到mkclscript.prl,将其复制到data/scripts文件夹中,再执行以下命令:
perl scripts/mkclscript.prl TB 350.0 monophones0>tree.hed
在data文件夹中找到生成的tree.hed,但这个文件还缺少一些内容,因为生成的tree.hed只有TB开头。
按照路径打开HTK\samples\RMHTK\libquests.hed文件,ctrl+a复制全部内容,粘贴在生成的tree.hed的前面,然后在开头、中间、结尾分别按如下形式添加:
(添加)RO 100 stats
(添加)TR 0
QS “R_NonBoundary” { + }
QS “R_Silence” { +sil }
QS “R_Stop” { +p,+pd,+b,+t,+td,+d,+dd,+k,+kd,+g }
………………….
QS “L_y” { y- }
QS “L_z” { z-* }
(添加)TR 2
TB 350.0 “ST_ax_2_” {(“ax”,"-ax+",“ax+","-ax”).state[2]}
TB 350.0 “ST_b_2_” {(“b”,"-b+",“b+","-b”).state[2]}
TB 350.0 “ST_r_2_” {(“r”,"-r+",“r+","-r”).state[2]}
……………………
TB 350.0 “ST_sil_4_” {(“sil”,"-sil+",“sil+","-sil”).state[4]}
TB 350.0 “ST_sp_4_” {(“sp”,"-sp+",“sp+","-sp”).state[4]}
(添加)TR 1
(添加)AU lists/fullist
(添加)CO lists/tiedlist
(添加)ST trees
新建hmms/hmm13,hmms/hmm14,hmms/hmm15,执行如下命令:
HHEd -H hmms/hmm12/macros -H hmms/hmm12/hmmdefs -M hmms/hmm13 tree.hed labels/triphones1>log
这时你会发现在lists文件夹中生成了tiedlist文件。
然后重估两次:
HERest -C configs/config -I labels/wintry.mlf -t 250.0 150.0 1000.0 -S scps/train.scp -H hmms/hmm13/macros -H hmms/hmm13/hmmdefs -M hmms/hmm14 lists/tiedlist
知道你看到了很多WARNING,但不要怕,继续重估 。
HERest -C configs/config -I labels/wintry.mlf -t 250.0 150.0 1000.0 -S scps/train.scp -H hmms/hmm14/macros -H hmms/hmm14/hmmdefs -M hmms/hmm15 lists/tiedlist
仍然有很多WARNING,但没有关系,做到这里,我们就可以进行最后的评估步骤了。
————————————————————————————————————————————
分割线。重估的时候要用到新的配置文件,是在data/configs/config的基础上添加如下两行内容:
FORCECXTEXP = T
ALLOWXWRDEXP = F
得到新的配置文件config2。
!!!!记得最后要有一行换行。
最后,执行评估命令:
HVite -C configs/config2 -H hmms/hmm15/macros -H hmms/hmm15/hmmdefs -S scps/test.scp -l * -i results/recout_hmm15.mlf -w dict/wdnet -p 0.0 -s 5.0 dict/dict3 lists/tiedlist
然后耐心等待结果,这里用时大概1个小时。。。
来康康recout_hmm15.mlf长什么样子,这里还放了右图语音原句做对比。
很好!!句子识别成功!!
再来康康具体数据,使用如下命令:
HResults -I test/testwords.mlf lists/tiedlist results/recout_hmm15.mlf
可以看到优化效果还是蛮显著的,句正确率提升10.00%,词正确率提升15.59%,词准确率提升20.16%。
至此,用HTK搭建大词汇量连续语音识别系统系列教程结束~
HTK搭建大词汇量连续语音识别系统(三)相关推荐
- HTK搭建大词汇量连续语音识别系统(一)
使用HTK搭建大词汇量语音识别系统,这里使用的是timit语音库. 本人python小白,只学了两三天,代码写的有点菜..希望多多包涵 一.建立抄本文件trainprompts 所使用的python版 ...
- 使用HTK搭建英文大词汇量连续语音识别系统(一)
在整个语音识别系统的搭建中,参考了博客https://blog.csdn.net/qq_43150721/article/details/98646889,自己动手搭建时,遇到了博客中没提到的问题,故 ...
- 使用HTK搭建英文大词汇量连续语音识别系统(三)
接下来采用三音素模型进行改进. 一.绑定三音素 首先,制作一个脚本文件mktri.led,放在data/scripts文件夹中,内容为: WB sp WB sil TC 最后有一行换行 执行命令: H ...
- 使用HTK搭建英文大词汇量连续语音识别系统(二)
六.提取特征参数,生成.mfc文件 在data/configs文件中编写配置文件wav_config,内容: SOURCEFORMAT=NIST TARGETKIND=MFCC_0_D_A TARGE ...
- 一种连续语音识别系统的制作方法
本发明涉及一种连续语音识别系统,属于语音识别设备领域. 背景技术: 近五十年的时间里,自动语音识别一直是一个活跃的研究领域,它一直被认为是促进人类与机器,人类与人类通信的一个重要的桥梁.近些年,语音识 ...
- 高并发的大数据量查询导致系统频繁死机
我们的大数据量查询是数据库分页的, 但是导出和打印功能是基于全部数据的. 系统投入使用后,对于导出和打印功能的使用远远要高于我们的预期. 而我们的系统的硬件设备是有限的 不能再升级了. 抓取内存大对象 ...
- 背单词数量c语言过程,英语之从3000到一万词汇量的历程 (三)
没有一定量的词汇基础,文章基本上是看不懂的,看的过程很晦涩难懂,经常会没有耐心看完全文,半途而废.所以说,一定量的词汇量是理解文章的基础.而词汇量的增加其实是最容易的,背单词谁都会,最主要是怎么背,还 ...
- 从0到1搭建大数据平台之调度系统
目前大数据平台经常会用来跑一些批任务,跑批处理当然就离不开定时任务.比如定时抽取业务数据库的数据,定时跑hive/spark任务,定时推送日报.月报指标数据.任务调度系统已经俨然成为了大数据处理平台不 ...
- 语音识别系统及科大讯飞最新实践
http://geek.csdn.net/news/detail/96948 语音作为最自然便捷的交流方式,一直是人机通信和交互最重要的研究领域之一.自动语音识别(Automatic Speech R ...
- 干货:科大讯飞最新语音识别系统和框架深度剖析
雷锋网按:本文作者魏思,博士,科大讯飞研究院副院长,主要研究领域为语音信号处理.模式识别.人工智能等,并拥有多项业界领先的科研成果.张仕良,潘嘉,张致江科大讯飞研究院研究员.刘聪,王智国科大讯飞研究院 ...
最新文章
- PTA(BasicLevel)-1007素数对猜想
- 《数据中心布线系统的设计与施工技术白皮书》目录
- Java 内存模型和 JVM 内存结构真不是一回事
- java怎么缓存行填充_为什么java的Exchanger.Slot缓存行填充像这样?
- vue3中ref、reactive、shallowRef、 shallowReactive、toRaw、unref、toRef、toRefs、customRef使用与区别
- 智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习
- js三元判断html,JS 三元条件运算符
- 用贪婪算法解决背包问题_解决主要算法问题的贪婪策略
- 相乘的c语言,c语言矩阵相乘
- OpenGL学习一:OpenGL简介
- 电容触摸屏测试软件,电容式触摸屏FPCA的整板测试方案
- 【Choco Disco】MMD镜头+动作打包下载.zip
- SOJ-4484-后缀数组
- 【DSU+思维】CF855G Harry Vs Voldemort
- C语言数字图像处理---2.5图像频域滤波
- 云服务器系统一键安装,一键安装服务器系统
- “警视”公安指挥决策系统
- 时间序列模型(1)--移动平均法
- NAGVIS安装详解
- Java加密算法—非对称加密
热门文章
- 随便说说IE和Firefox的兼容性
- Excel基础学习笔记
- 在J.U.C多线程中,AQS维护这一个CLH同步队列,这个队列遵循着FIFO原则
- 第三章 栈和队列(含答案)
- java实现两张图片合并起来。
- MATLAB求分段函数最大值,如何用MATLAB求分段函数的最小值和最大值?
- 全球与中国高炉系统(钢铁厂)市场深度研究分析报告
- windows上开启winrm服务
- php iconv translit,php iconv translit for removing accents: not working as excepted?
- cad计算机土方软件,CAD土方工程量算量插件(土方工程量计算工具)V1.1 正式版