亲自动手用HTK实现YES NO孤立词识别
很久以前的发在研学论坛的帖子了,再重新整理了一下,希望对新手有用。
完整版链接: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孤立词识别的更多相关文章
- 机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)
最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量.观察变量和实际问题中变量的对应关系, ...
- 基于HTK语音工具包进行孤立词识别的使用教程
选自:http://my.oschina.net/jamesju/blog/116151 1前言 最近一直在研究HTK语音识别工具包,前几天完成了工具包的安装编译和测试,这几天又按耐不住好奇,决定自己 ...
- 如何用kaldi做孤立词识别-初版
---------------------------------------------------------------------------------------------------- ...
- yesno孤立词识别kaldi脚本
path.sh主要设定路径等 export KALDI_ROOT=`pwd`/../../.. [ -f $KALDI_ROOT/tools/env.sh ] && . $KALDI_ ...
- 如何用kaldi做孤立词识别三
这次wer由15%下降到0%了,后面跑更多的模型 LOG (apply-cmvn[5.2.124~1396-70748]:main():apply-cmvn.cc:162) Applied cepst ...
- 如何用kaldi做孤立词识别二
基本模型没有变化,主要是调参,配置: %WER 65% 下降到了 15% 后面再继续优化... Graph compilation finish!steps/decode.sh -- ...
- Qt5.7 实现Https 认证全过程解析(亲自动手版)
#### NetworkRequestManager.h #include <QSsl>#include <QSslKey>#include <QSslSocket> ...
- 亲自动手实现Python+pygame中国象棋游戏
功能1:实现游戏整体界面显示 一.创建基本的结构 代码如下: import time import pygame def main(): # 初始化pygame pygame.init() # 创建用 ...
- 机器学习&数据挖掘笔记_14(GMM-HMM语音识别简单理解)
为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的.不得不说,网络上关于语音识别的通俗 ...
随机推荐
- perspective属性
1. 目前只有safari和chrome浏览器支持 -webkit-perspective. 2. 单位为像素 { -webkit-perspective:500 } 该属性只影响子元素的的透视效果.
- 隔离click事件
有一些应用,不需要我们自己的定义的click函数,例如: $(document).on('click', '#inp', function(e){ alert('hello world!'); }); ...
- Python + OpenCV2 系列:3 - python 字符串,类,编码规范
首先,强烈推荐<<简明 Python 教程>> Swaroop, C. H. 著 沈洁元 译 其实,这本书里已经把python的最基本的用法,编码等等介绍的很好,这里把我用到的 ...
- nginx和fpm的进程数配置和502,504错误
502 和 php-fpm.conf 1.php-cgi进程数不够用.php执行时间长,导致没有空闲进程处理新请求. 2.php-cgi进程死掉.php-fpm超时时间短,当前进程执行超时关闭连接. ...
- 跟着ttlsa一起学zabbix监控呗
本章转载至:http://www.ttlsa.com/zabbix/follow-ttlsa-to-study-zabbix/ 虽然接触zabbix时间很长,但是中间相当一段时间没去配置,这次算是重新 ...
- 软删除脏数据job笔记
某次处理一个case,发现线上库里有很多数据有问题.于是决定写一个job来将有问题的数据软删除掉.涉及到的两条SQL语句如下: <select id="loadTSKTVBillDai ...
- inet_ntoa、 inet_aton、inet_addr
inet_addr() 简述:将一个点间隔地址转换成一个in_addr. #include <winsock.h> unsigned long PASCAL FAR inet_addr ...
- 一个Struts2的实例
对Web应用程序而言,需要跨越HTTP协议的两个障碍——无状态和基于文本. 在没有使用struts的时候,你会有一个很真切的体会,就是如何把html页面上的数据提交给后台处理,以什么格式提交? 这是个 ...
- [译]git pull
git pull把git fetch和git merge压缩成了一条命令. 用法 git pull <remote> 作用和git fetch <remote> &&a ...
- Request 传值 遇到的中文乱码问题
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="xxxx.aspx.cs&quo ...