HTK语音识别示例(Ubuntu)
一、简介
HTK(Hidden Markov Model Toolkit)是一款语音识别工具包,诞生于Cambridge University Engineering Department (CUED),后来几经易手,目前的HTK3由CUED和Microsoft维护。现在Microsoft对HTK依旧保留一定的版权,但是源码可以免费获得,用于教学和科研是没有问题的。
这里是我使用的源码与教程的当时版本HTK-3.4.1:
源码:http://pan.baidu.com/s/1gf9qAD9
教程htkbook:http://vdisk.weibo.com/s/A9EtgmXv-mEgn
其他高手中文版教程(针对windows):http://pan.baidu.com/s/1jHsiPpW
最新源码与文档可以查询官网:
http://htk.eng.cam.ac.uk/
以下是我在范例中使用到的音频和相关脚本文件等资料:
字典文件:http://pan.baidu.com/s/1mgJZPFE
相关脚本:http://pan.baidu.com/s/1i3Hyfv3
训练音频:http://pan.baidu.com/s/1dDEOxtJ
测试音频:http://pan.baidu.com/s/1jGuvyPS
鉴于HTK Book里给的sample一点而都不simple,作为初学者,各种麻烦还是很折腾人的。
这里,我“篡改”了HTM Book示例的部分流程,以求简单。
二、流程概览:
整个流程就如同下图一样,首先我们录制语音,然后HMM模块处理语音文件,之后便被识别出相应的文本文件。

那么,htk扮演的角色是什么呢?如下图,htk的作用就是训练出HMM模块。
为什么说是“训练”呢?简单的说,就是因为各个人的口音不同,所以,如果要“训练”HMM模块来适应不同的口音。

以下,我将训练出这样的HMM模块:识别“RED”, “YELLOW”, “BLUE”三个单词,步骤为
在此,还感谢前辈的探索,帮了我帮了我不少:
http://blog.csdn.net/wbgxx333/article/details/17639373
HTK语音识别示例(Ubuntu)的更多相关文章
- Ubuntu中安装编译并测试HTK语音识别库
1.在网上看到首先必须确保电脑上安装了g++和libx11 g++ --version //检测g++版本 sudo apt-get install libx11-dev:i386 2.然后可从HTK ...
- 【百度语音识别】JavaAPI方式语音识别示例
https://ai.baidu.com/forum/topic/show/496730
- 机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)
最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量.观察变量和实际问题中变量的对应关系, ...
- 基于HTK语音工具包进行孤立词识别的使用教程
选自:http://my.oschina.net/jamesju/blog/116151 1前言 最近一直在研究HTK语音识别工具包,前几天完成了工具包的安装编译和测试,这几天又按耐不住好奇,决定自己 ...
- HTK学习2:工具使用
选自:http://www.cnblogs.com/mingzhao810/archive/2012/08/03/2617674.html 这个是重点,呵呵,本部分会讨论到如下内容: 1. 建立语音材 ...
- HTK学习1:安装编译
选自:http://www.cnblogs.com/mingzhao810/archive/2012/08/03/2617674.html HTK(HMM Toolkit)一款基于hmm模型的语音处理 ...
- 英特尔实感SDK 代码示例
原文地址 摘要 本套代码示例针对巴西英特尔实感动手实验室创建,旨在帮助参与人员了解如何使用英特尔® 实感™ 软件开发套件. 12 个示例使用 C# SDK 包装程序,提供了简单的基于控制台的应用,支持 ...
- 如何在Ubuntu Server 18.04 LTS中配置静态IP地址
安装Ubuntu Server 18.04后需要分配一个的静态IP地址.先前的LTS版本Ubuntu 16.04使用/etc/network/interfaces文件配置静态IP地址,但是Ubuntu ...
- linux下gcc编译多个源文件、gdb的使用方法
一. gcc常用编译命令选项 假设源程序文件名为test.c. 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理.汇编.编译并链接形成可执行文件.这里未指定输出文件,默认 ...
随机推荐
- Visual Studio自动添加头部注释 -C#开发2010-2013验证
在团队开发中,头部注释是必不可少的.但在开发每次新建一个类都要复制一个注释模块也很不爽,所以得想个办法让开发工具自动生成我们所需要的模板.....操作方法如下: 找你的vs安装目录, 比如我的是在D盘 ...
- JS笔记一:动态修改css样式
---恢复内容开始--- 最近在学习CSS/JS的样式,两个合学习一起学习,加深JS的书写和了解. 一.通过Javasript修改图片大小 通过函数来传递图片id,height,width,使用doc ...
- 【学习笔记】C# 构造和析构
构造方法 构造方法是一个特殊的方法,负责初始化对象 构造方法名必须和类名一致 构造方法没有返回值,但可以有参数,能够重载 构造方法可以不写,系统会自动为类添加一个无参的默认构造 如果将构造方法设置为P ...
- Codeforces_776E: The Holmes Children (数论 欧拉函数)
题目链接 先看题目中给的函数f(n)和g(n) 对于f(n),若自然数对(x,y)满足 x+y=n,且gcd(x,y)=1,则这样的数对对数为f(n) 证明f(n)=phi(n) 设有命题 对任意自然 ...
- join和wait
最近看多线程的时候发现对于join的理解有些错误,在网上查了不少资料,根据自己的理解整理了一下,这里之所以把join和wait放在一起,是因为join的底层实现就是基于wait的,一并讲解更容易理解. ...
- iOS开发中frame与bounds的区别
闲话不多说,先上两张图,大伙们就已经明白了: 显示出来的效果是这样子滴: 总结: 要理清这两者的区别,最主要的要理解一下几个概念:frame可以理解为可视的范围,而bounds可以理解为可视范围内的 ...
- (转)maven打包时跳过测试
1 运行mvn install时跳过Test 1.1 方法一 <project> [...] <build> <plugins> <plugin> &l ...
- python开发部署时新增数据库中表的方法
在项目版本让运维部署时,涉及到数据库表的增加问题,想了一下,可以有四种方法 1.使用SQLAlchemy的db.create_all()方法 # -*- coding:utf-8 -*- from f ...
- Python学习记录----语法学习
一控制语句 http://blog.csdn.net/lynn_yan/article/details/5464911 if 语句 二 字典详解 http://blog.csdn.net/moodyt ...
- TCP/IP协议之IP层
TCP/IP协议的结构参见下图.有应用层,运输层,网络层,链路层. 但是如果更细化的话,其实还有几层没在这上面体现出来. 1 表示层:数据格式化,代码转换,加密. 没有协议 2 会话层:解除或者建立与 ...