Windows下搭建HTK
转自:http://blog.csdn.net/yanli0823/article/details/8186382
亲测有效,环境:
- windows 8.1
- perl版本:

- HTK版本:Hidden Markov Toolkit (HTK) 3.4.1
〇、HTK简介
HTK(HMM Tools Kit)是一个剑桥大学开发的专门用于建立和处理HMM的实验工具包,主要应用于语音识别领域,也可以应用于语音合成、字符识别和DNA排序等领域。HTK经过剑桥大学、Entropic公司及Microsoft公司的不断增强和改进,使其在语音识别领域处于世界领先水平,另外,HTK还是一套源代码开放的工具箱,其基于ANSI C的模块化设计方式可以方便地嵌入到用户系统中。
一、准备事项
安装Microsoft Visual Studio开发环境(以下简称VS),因为HTK代码需要通过VS来编译。
安装ActivePerl工具,测试的时候需要用到Perl命令
安装解压缩工具(解压下载下来的HTK文档)
如果对DOS命令行窗口及命令语句熟悉就更好了,在编译、安装和运行HTK时都需要它。
添加环境变量:在系统环境变量里添加Microsoft Visual Studio下VC环境的bin路径,如我使用vs2010,并将其安装在D盘,就需要将以下路径添加到环境变量Path中:D:\Program Files\Microsoft Visual Studio 10.0\VC\bin。注:Path里自带的值不要作任何修改。
二、安装VS环境
这个没什么特别注意的地方,根据向导一步步安装即可。
三、安装ActivePerl(Windows下的perl运行环境)
详见windows下的perl运行环境文档。
四、HTK配置
HTK的官网:http://htk.eng.cam.ac.uk/docs/inst-win.shtml,先进行注册才能下载文件。
第一步,下载HTK源代码,http://htk.eng.cam.ac.uk/download.shtml
这两个文件都下载下来,其中samples是用来测试安装是否成功,后面会介绍到。当然在下载之前,会要求注册会员。
第二步,解压所下载的HTK源代码,最好在根目录下,文件用英文。如D:\HTK,便于后来在DOS下的编译和其他操作。
第三步,进入DOS界面,点开始-->运行-->输入CMD回车,我的代码是安装在D:\HTK下,所以输入d:(回车),然后输入cd d:\HTK,进入HTK的目录下;再输入cd htk,进入子目录。
命令输入顺序:
D:
cd d:\HTK
cd htk
第四步,使用命令创建一个文件夹,用来存放编译后生成的exe文件
mkdir bin.win32
第五步:把vs下的vcvars32,复制到HTK根目录下,在DOS使用命令打开VCVARS32.
VCVARS32
第六步,编译HTK Library,为HTK提供函数功能,
cd HTKLib
nmake /f htk_htklib_nt.mkf all
cd ..
第七步,编译HTK工具
Ø cd HTKTools
nmake /f htk_htktools_nt.mkf all
cd ..
Ø cd HLMLib
nmake /f htk_hlmlib_nt.mkf all
cd ..
Ø cd HLMTools
nmake /f htk_hlmtools_nt.mkf all
cd ..
现在,HTK工具已经创建完成,编译生成的exe文件都存放在第一步创建的bin.win32目录下。此时需要在系统环境变量的PATH中添加bin.win32路径的值。
五、测试安装是否成功
安装完成后,需要使用下载的sample来验证安装的是否正确,有以下几个步骤:
1. 把下载的压缩包解压:

2. 通过命令创建相应目录
cd HTKDemo
mkdir hmms
cd hmms
mkdir tmp
mkdir hmm.0
mkdir hmm.1
mkdir hmm.2
mkdir hmm.3
cd ..
mkdir proto
mkdir acc
mkdir tes
多说一句:
不知道原作者为什么mkdir这么多文件夹,逐个检查,其中空文件为:
hmm.3
tmp
acc
tes
会不会类似cache那样作为临时存储?还是就没有用处,以后用到再分析。
3.分析
perl runDemo.pl configs\monPlainM1S1.dcf
这里多说一句:
运行时如果报错:'perl' 不是内部或外部命令,也不是可运行的程序,需要将perl\bin添加系统环境变量:

这样就可以了:

Windows下搭建HTK的更多相关文章
- Windows下搭建Spark+Hadoop开发环境
Windows下搭建Spark+Hadoop开发环境需要一些工具支持. 只需要确保您的电脑已装好Java环境,那么就可以开始了. 一. 准备工作 1. 下载Hadoop2.7.1版本(写Spark和H ...
- Android学习——windows下搭建Cygwin环境
在上一篇博文<Android学习——windows下搭建NDK_r9环境>中,我们详细的讲解了在windows下进行Android NDK开发环境的配置,我们也讲到了在NDk r7以后,我 ...
- Android学习——windows下搭建NDK_r9环境
1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...
- react-native —— 在Windows下搭建React Native Android开发环境
在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...
- Windows下搭建PHP环境:Apache+PHP+MySQL
本文简单记录一下Windows下搭建PHP环境的过程,一些细节可以参照本文参考资料,此文不再赘述 准备工作: Windows下手工搭建PHP环境需要先下载相应的软件,需要注意的是Apache与PHP的 ...
- Windows下搭建Git开发环境
Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...
- windows下搭建学习objective-c 的运行环境【转载】
对于Iphone开发学习者而言,Object -c 是必修的语言.但是由于苹果的自我封闭的产业链发展模式(从芯片.机器.开发语言.终端产品.服务)的限制,要想开发针对苹果iPhone等产品的应用程序, ...
- Windows下搭建论坛
Windows下搭建论坛 真正的O基础架构,一步一步走向成功 转载请注明原作者出处 环境准备篇 安装集成包软件 解压后如下 以管理员身份运行setup的批处理 选择推荐的apache版本 选择推荐的m ...
- Windows下搭建MySQL Master Slave[转]
Windows下搭建MySQL Master Slave 一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用k ...
随机推荐
- directio mysql 编绎选项
http://www.myexception.cn/linux-unix/495407.html http://www.iyunv.com/thread-25950-1-1.html
- Singleton 单例模式(懒汉方式和饿汉方式)
单例模式的概念: 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 关键点: 1)一个类只有一个实例 这是最基本 ...
- MySQL round函数
在mysql中,round函数用于数据的四舍五入,它有两种形式: 1.round(x,d) ,x指要处理的数,d是指保留几位小数 这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整 ...
- 用C语言实现面向对象的开发
C语言的对象化模型 面向对象的特征主要包括: .封装,隐藏内部实现 .继承,复用现有代码 .多态,改写对象行为 采用C语言实现的关键是如何运用C语言本身的特性来实现上述面向对象的特征. 1.1 封装 ...
- OpenCV学习(3) OpenCV框架
OpenCV是一个开源的视觉库,其中包括很多计算机视觉的算法实现.在版本2.2以后,OpenCV采用C++特征的API,在1.x版本中,OpenCV函数都是传统的C语言形式. ...
- calibre,完成对各种格式的电子书籍的管理和格式转换及同步
Calibre是免费的电子书制作.阅读软件,源代码开放,拥有跨平台的设计,支持多个基于不同系统的便携式移动设备,包括苹果iPhone.Amazon电子书等设备.它是一个完整的电子图书馆,包括图书馆管理 ...
- VMware虚拟机的磁盘文件共享给物理机
启动VMware程序 → 选中某虚拟主机('关闭'状态) → 菜单栏'虚拟机(M)' → '设置(S)' 或直接"编辑虚拟机设置". 2 在“硬件”标签下点击“硬盘(SCSI)”→ ...
- java 中函数的参数传递详细介绍
java中函数的参数传递 总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象. 2.当将基本类型或基本类型的包装集作为参数传递时 ...
- Orchard运用 - 整合Disqus评论插件
评论对于博客系统那是必须具备的一个功能,Orchard本身也默认实现了评论模块,你可以集成到其他内容,比如博客随笔,不过觉得有点寒碜,样式有点呆板.幸运的是,你可以简单集成第三方评论插件,比如Disq ...
- go语言基础之输入的使用
1.输入的使用 第一种写法:fmt.Scanf("%d", &a) 第二种写法:fmt.Scan(&a) 示例: package main //必须有一个main包 ...