很久以前的发在研学论坛的帖子了,再重新整理了一下,希望对新手有用。

完整版链接:http://yun.baidu.com/s/1hapcE

第一步 创建语音文件 录音

命令:HSLab any_name.sig

第二步:声学分析

抽取yes和no的mfcc特征参数。保存在data/train/lab与data/train/sig下。

命令:HCopy.exe -A -D -C analysis.conf  -S targetlist.txt

第三步:HMM原型定义

建立文件yes.hmm、no.hmm、sil.hmm保存在model/下。

第四步:HMM训练

1.初始化:(建立文件夹yn/train/init)

命令: HInite.exe  -A –D –T 1 –H model/yes.hmm –S trainlist.txt –M mode/proto yes

2.训练

命令: HRest.exe -A -D -T 1 -H model/proto/yes.hmm -S trainlist.txt -M model/proto yes

第五步:任务定义

1.          建立语法规则和字典

建立语法规则文件gram.txt(在yn文件夹下),内容为:

/*

* Task grammar

*/

$WORD = YES | NO;

( { SIL } [ $WORD ] { SIL } )

建立字典文件dict.txt(在yn文件夹下),内容为:

YES [yes] yes

NO [no] no

SIL [sil] sil

2.          建立任务网络

命令:HParse gram.txt net.slf

HSGen -s net.slf dict.txt

第六步:识别

1.  建立文件hmmlist.txt(在yn文件夹下)文件,内容为:

yes

no

sil

注意每一列最后留一个空格。

2.          创建待识别信号并抽取mfcc参数(文件为yes01.mfcc)

3.          命令:Hvite.exe -H model/proto/yes.hmm -H model/proto/ no.hmm -H model/proto/sil.hmm -i reco.mlf -w net.slf dict.txt hmmlist.txt yes.mfcc

(是model/proto/no.hmm 中间没有空格)

识别结果自动存放在文件reco.mlf

#!MLF!#

"yes01.rec"

0 34300000 yes -17771.425781

第七步:识别自己写的一个perl脚本,做了一个简单的统计

.

亲自动手用HTK实现YES NO孤立词识别的更多相关文章

  1. 机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)

    最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量.观察变量和实际问题中变量的对应关系, ...

  2. 基于HTK语音工具包进行孤立词识别的使用教程

    选自:http://my.oschina.net/jamesju/blog/116151 1前言 最近一直在研究HTK语音识别工具包,前几天完成了工具包的安装编译和测试,这几天又按耐不住好奇,决定自己 ...

  3. 如何用kaldi做孤立词识别-初版

    ---------------------------------------------------------------------------------------------------- ...

  4. yesno孤立词识别kaldi脚本

    path.sh主要设定路径等 export KALDI_ROOT=`pwd`/../../.. [ -f $KALDI_ROOT/tools/env.sh ] && . $KALDI_ ...

  5. 如何用kaldi做孤立词识别三

    这次wer由15%下降到0%了,后面跑更多的模型 LOG (apply-cmvn[5.2.124~1396-70748]:main():apply-cmvn.cc:162) Applied cepst ...

  6. 如何用kaldi做孤立词识别二

    基本模型没有变化,主要是调参,配置: %WER     65%  下降到了     15% 后面再继续优化... Graph compilation finish!steps/decode.sh -- ...

  7. Qt5.7 实现Https 认证全过程解析(亲自动手版)

    #### NetworkRequestManager.h #include <QSsl>#include <QSslKey>#include <QSslSocket> ...

  8. 亲自动手实现Python+pygame中国象棋游戏

    功能1:实现游戏整体界面显示 一.创建基本的结构 代码如下: import time import pygame def main(): # 初始化pygame pygame.init() # 创建用 ...

  9. 机器学习&数据挖掘笔记_14(GMM-HMM语音识别简单理解)

    为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的.不得不说,网络上关于语音识别的通俗 ...

随机推荐

  1. Comet、SSE、技术

    1.概念: 利用长时间保留的HTTP请求(‘挂起的GET’)来让服务器向浏览器推送数据的技术,经常被称为Comet. SSE让服务器可以向客户端流式发送文本消息,比如服务器上生成的实时通知或更新.

  2. Flash Builder 4.7 破解

    http://litech.diandian.com/post/2013-03-22/40049178994 Adobe Flash Builder 4.7 For Mac 破解 和Photoshop ...

  3. Occlusion Culling

    遮挡剔除 http://www.bjbkws.com/online/1092/ unity遮挡剔除(应用) http://www.unitymanual.com/thread-37302-1-1.ht ...

  4. PHP file_get_contents设置超时处理方法

    从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_c ...

  5. iOS- Terminating app due to uncaught exception 'NSRangeException'

    错误描述: Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM object ...

  6. VS2015新建asp.net core站点

    摘要 电脑上安装了vs2015,今天就尝尝鲜,新建一个项目试试. BBS 使用vs2015新建一个解决方案,然后新建项目,此时你会发现没有asp.net core项目,这就需要先安装asp.net c ...

  7. vim的寄存器和剪贴簿操作?

    vim 复制/ 删除 多行? 有确定序号的行: :10,15m20, 10,15co20 没有确定序号的行: ndd, nyy. 其中的n表示, 从当前行开始算起(当前行本身要包含!!!), 向下共删 ...

  8. 继承IDbConnection连接不同数据库

    继承IDbConnection连接不同数据库 本方案可实现仅修改app.config即可连接不同数据库,但是设计数据库时需要注意各种数据库的数据类型是不一样的. 各种不同数据库的Connection. ...

  9. [译]git pull

    git pull把git fetch和git merge压缩成了一条命令. 用法 git pull <remote> 作用和git fetch <remote> &&a ...

  10. OC第一节 —— 类和对象

    一.类和对象的概念 1.1类 自己的定义: 具有相同或相似性质对象的抽象. 1.2 对象 自己的定义: 对象是人们要进行研究的任何物体,从最简单的整数到复杂的飞机 等均可以看做是对象. 举例说明: 类 ...