当前位置:文档之家› windows下编译htk3.4傻瓜式教程

windows下编译htk3.4傻瓜式教程

(原创)windows下编译htk3.4傻瓜式教程
作者:ICT superyang
(转载请注明原地址,谢谢!本文中提到的软件在pudn上均有下载,已设置免注册下载,地址为/downloads400/sourcecode/windows/console/detail1706968.html,如有任何问题,请邮件联系cqusuperyang#或登录我的博客/cqusuperyang 留言)
近期我所在的实验室课题组需要做语音识别合成这一块的研究,因此需要用到htk做一些数据方面的分析,基于此,才有了下面这篇windows下编译htk的教程,编译过程中参照了不少网络上的资料,对提供这些资料的朋友表示感谢!
首先简单介绍一下HTK,HTK是用于自动语音识别研究的工具包,它是由剑桥大学工程系()的机器智能实验室开发的开源软件,全称为Hidden Markov Toolkit(隐马尔科夫工具包),具体信息请参考官方网站上的介绍
1、下载官方源码包,/download.shtml
因为是在windows下编译,所以我们需要将windwos downloads下的HTK source code以及HTK samples下载到本地磁盘上
2、解压文件,我在这里是将这两个解压文件放在D盘根目录下,打开HTK source code目录,阅读README里的介绍,在windows下安装有一系列的先决条件,我在这里翻译一下:
1)HTK在visual studio下编译测试通过(主要是为了使用nmake工具,推荐使用VC6.0)
2)测试demo时,需要安装ActivePerl(Perl解释器,为了运行测试脚本)
3)需要7-zip或winzip解压工具
4)需要理解一些DOS命令行知识
5)Path中需要包含路径C:\Program Files\Microsoft Visual 2003\Vc7\bin (Visual 2003)或C:\Program Files\Microsoft Visual Studio\VC98\bin(VC6.0)
3、开始编译
1)打开DOS命令行窗口
点击开始→运行,输入cmd,回车
2)进行入到解压后的HTK source code文件夹下
图1
由C盘换到D盘需要输入D:,进入D盘下目录需要输入cd htk,我这里的是D:\htk,
3)在本目录下创建一名为bin.win32的文件夹
图2
当然也可以用鼠标创建该文件夹,在该目录下右击→新建文件夹,并命名为bin.win32即可,这个文件夹是用来存放htk生成的各个exe程序
4)运行VCV ARS32
找到VC6.0的安装目录下bin文件夹,我的是在C:\Program Files\Microsoft Visual Studio\VC98\Bin,将该路径添加到path变量中,在cmd中输入path=%path%;C:\Program Files\Microsoft Visual Studio\VC98\Bin即可,添加完成后继续输入path,查看有没有添加成功,如果添加成功,输入VCV ARS32
图3
5)编译HTKLib
进入到HTKLib目录里,cd HTKLib,在命令行中输入nmake/f htk_htklib_nt.mkf all进行编译,如果报错htk_htklib_nt.mkf(6):fatal error U1035:syntax error:expected‘:’or‘=’separator Stop.这主要是由于格式编码的问题,我们需要手工修改一下文件的格式,用UltraEdit打开HTKLib目录下文件htk_htklib_nt.mkf,会出现图4所示对话框
图4
我们选择“是”,会出现图5所示界面
图5
按我在图中的标示,将文件中所有空白的行去掉,并选择"另存为",这时会提示是否替换原文件,我们选择是即可,如图6所示:
图6
现在我们重新回到命令行下,输入nmake/f htk_htklib_nt.mkf all,并回车,会出现图7
所示界面:
图7
一段时间后,OK,我们编译成功
6)编译HTKTools
先在命令行中输入cd..,表示返回上一层目录,再输入cd HTKTools,进行HTKTools 目录,输入nmake/f htk_htktools_nt.mkf all编译该目录下文件,如果遇到同样的问题请参考步骤5
7)编译HLMLib
先在命令行中输入cd..,表示返回上一层目录,再输入cd HLMLib,进行HLMLib目录,输入nmake/f htk_hlmlib_nt.mkf all编译该目录下文件,如果遇到同样的问题请参考步骤5
8)编译HLMTools
先在命令行中输入cd..,表示返回上一层目录,再输入cd HLMTools,进行HLMTools 目录,输入nmake/f htk_hlmtools_nt.mkf all编译该目录下文件,如果遇到同样的问题请参考步骤5
这时我们已经编译完所有有exe程序,我们可以打开bin.win32文件夹看一下,如果如图8所示,则证明已经编译成功
图8
4、测试编译生成的程序是否正确
1)为了能在命令行中使用我们编译生成的工具,我们要将生成的工具路径加入到path 中。

在cmd中输入path=%path%;D:\htk\bin.win32并回车,我们输入path查看下添加后的结果,如图9所示:
图9
我们输入HInit查看一下能否成功运行编译后的程序,如果如图10所示,则证明path 已经被正确的添加进来。

图10
2)为了运行perl测试脚本,我们需要在机器中安装perl解释器,这里是ActivePerl的
下载地址:/activeperl/downloads
3)进入到HTKDemo目录,输入perl runDemo.pl configs\monPlainM1S1.dcf运行测试脚本,如图11
图11
运行结果如图12所示
图12
OK,大功告成!之前在实验室的64位linux服务器上编译htk,一直报错未能解决,有空我会再写个linux下htk编译傻瓜教程,朋友们,好好享受htk!
参考资料:
(1)/chenxin_130/article/details/4723068
(2)/s/blog_4c6cec150100cxcg.html
(3)/lastnightcode/blog/item/79d17444c80d2a036b63e55d.html
(4)/view/d8fe4f61caaedd3383c4d379.html。

相关主题