机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)
最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量、观察变量和实际问题中变量的对应关系,因此目前急需一个实际例子来加深对HMM算法的仰慕,大家如有好的例子来具体学HMM算法的话,欢迎分享!众所周知,著名的HMM开源库为Hidden Markov Model Toolkit(以下简称HTK),而HTK在语音识别领域应用很成功,这2天花了些时间学习了HTK的使用,完成的是最简单孤立词的识别,即Yes、No的语音识别,网上这方面的教程纵多,见参考资料部分。
当然了,进行实验的前提是正确安装HTK,安装过程可以结合HTK目录下(HTK解压后所在目录)的readme文件和文章windows下安装编译HTK语音识别工具包。
我主要是参考文章语音识别工具箱之HTK安装与使用中的步骤来完成Yes/No语音识别的,大概的步骤和博主的差不多(这里不再重现该过程,因为这方面资料实在太多),下面主要讲下一些细微的需要注意的地方:
1. 录音的原文件不能太少,不然在进行HMM初始化时很容易报错。我这里Yes和No都录的是25次。
2. 在用HSLab.exe录音时,由于这个小软件实在是不太好用,有些bug。每次录完2个音,把它标注好,重命名(即手动命名,按照一定顺序,不要重名,下次录音前需把该软件给后重新打开,否则即使你是重新new了一个文件后录的音,在你标注音频文件后保存文件时该软件很有可能会把以前标注过的音频信息给重复过来,这样在后面的HInit 步骤会老出错。因此,在每次标注音频文件.lab时,一定要保证其标注的信息只对应一个音频文件.sig。注意标注时,htk时间后面的单位是10us,转换成秒时需要除以10^7.
3. 在进行Hcompv步骤时,只需运行一次来得到vFloors文件(不需要对yes,no,sil分别运行)。
4. 如果在HRest步骤出现与vFloors有关的错误,则可以在HRest命令中省去与vFloors相关的内容,这样一般不太会影响后面HMM的训练和识别。
5. 在HParse步骤时,在建立gram.txt文件时,文件的最后要有一个空行,否则HParse步会一直失败。
其它方面基本按照语音识别工具箱之HTK安装与使用就可以了。另外,还HTK (v.3.1): Basic Tutorial和htkbook也是非常好的参考资料。
由实验可知,这里每个单词都定义为一个HMM模型,HMM模型中状态的个数是人为先验设定的,这里统一采用4个(状态数可以不相同),每个状态的实际含义大致是该单词发音的声母、韵母等(也不一定严格对应),多个状态的序列构成了一个单词。每个状态的输出(即观察变量)为GMM的参数向量,这些参数向量的长度和训练语音断的MFCC特征长度一致,这里都是39维。
参考资料:
HTK (v.3.1): Basic Tutorial.pdf
htkbook.pdf
机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)的更多相关文章
- 机器学习&数据挖掘笔记_14(GMM-HMM语音识别简单理解)
为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的.不得不说,网络上关于语音识别的通俗 ...
- 基于HTK语音工具包进行孤立词识别的使用教程
选自:http://my.oschina.net/jamesju/blog/116151 1前言 最近一直在研究HTK语音识别工具包,前几天完成了工具包的安装编译和测试,这几天又按耐不住好奇,决定自己 ...
- 亲自动手用HTK实现YES NO孤立词识别
很久以前的发在研学论坛的帖子了,再重新整理了一下,希望对新手有用. 完整版链接:http://yun.baidu.com/s/1hapcE 第一步 创建语音文件 录音 命令:HSLab any_nam ...
- 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...
- [转]机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 转自http://www.cnblogs.com/tornadomeet/p/3395593.html 前言: 找工作时(I ...
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考 ...
- 机器学习&数据挖掘笔记_15(关于凸优化的一些简单概念)
没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些可以参考Ng的教学资料:http://cs229.stanford.edu/section/cs22 ...
- 机器学习&数据挖掘笔记_12(对Conjugate Gradient 优化的简单理解)
数学优化方法在机器学习算法中至关重要,本篇博客主要来简单介绍下Conjugate Gradient(共轭梯度法,以下简称CG)算法,内容是参考的文献为:An Introduction to the C ...
- 机器学习&数据挖掘笔记_19(PGM练习三:马尔科夫网络在OCR上的简单应用)
前言: 接着coursera课程:Probabilistic Graphical Models上的实验3,本次实验是利用马尔科夫网络(CRF模型)来完成单词的OCR识别,每个单词由多个字母组合,每个字 ...
随机推荐
- 对于新安装的MySQL如何提升MySQL的安全级别
一 作为最流行的开源数据库引擎,MySQL本身是非常安全的.即便如此,你仍然需要添加额外的安全层来保护你的MySQL数据库不受攻击,毕竟任何经营网上在线业务的人都不想冒数据库受到损坏的风险.接下来,我 ...
- wpa_supplicant代码走读
wpa_supplicant_add_iface wpa_supplicant_init_iface wpa_supplicant_set_driver wpa_config_read wpa_sup ...
- C语言标准定义的32个关键字
关键字 意 义 auto 声明自动变量,缺省时编译器一般默认为auto int ...
- Oracle Profile 使用
一.目的: Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该prof ...
- linux-12基本命令之 cat,more,head, tail ,tr,od,wc,cut,diff
1.cat 命令 用于查看纯文本文件(较短),格式:"cat[选项][文件]" 查看文本文件 [root@localhost /]# cat 文件名 cat 参数 参数 作用 -n ...
- go程序注册为windows服务
cmd下运行:nssm install 服务名 go打包好的exe文件 nssm下载地址:http://nssm.cc/,将下载好nssm.exe放到/windows/system32文件夹下
- phoenix 开发API系列(二)phoenix 各类 api 实现方式
概述 上一篇已经提到如何安装以及利用 phoenix framework 来开发一个简单的 api. 接着上次的工程,下面演示如何通过 phoenix framework 来构建各种类型的 api 来 ...
- 可嵌入式的动态http服务minihttp组件
minihttp是基于c#实现的轻量级的动态WEB服务组件,通过minihttp可以轻松地构一个动态的WEB服务并嵌入到.NET程序中运行部署.由于minihttp完全基于托管代码实现,所以可以轻松运 ...
- 浅谈Excel开发:六 Excel 异步自定义函数
上文介绍了Excel中的自定义函数(UDF ),它极大地扩展了Excel插件的功能,使得我们可以将业务逻辑以Excel函数的形式表示,并可以根据这些细粒度的自定义函数,构建各种复杂的分析报表. 普通的 ...
- AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端
对于HTTPS我在网上找了一堆资料看了下, 各种协议和证书已经有点晕了 最后我现有的感觉是, 在HTTP服务器上放一个证书, 在原本的HTTP访问之前客户端先检查证书是否正确 如果客户端证书检查正确, ...