HTK安装和测试

来源:互联网 发布:金克丝神龙烈焰淘宝 编辑:程序博客网 时间:2024/05/21 15:48

         整了大半天,终于把HTK安装完成并测试成功了,查了不少资料,为了感谢前辈的成果,我也记录一下~

         HTK的全称是”Hidden Markov Model Toolkit”,是英国剑桥大学工程学院开发的隐马尔可夫模型(后面简称为隐马模型)工具包,可以方便有效的建立及操作隐马模型。隐马模型在许多人工智能领域都有着成功的应用,比如语音识别,当前国际上主流的语音识别系统仍是基于隐马模型建立的。HTK的开发也主要是针对语音识别的应用及研究。

         HTK是一个开源工具包,http://htk.eng.cam.ac.uk/是其官网,可以在http://htk.eng.cam.ac.uk/download.shtml进行下载需要的工具,其中sources和samples(本文用samples中的HTKDemo文件夹)会在测试的时候用到, http://htk.eng.cam.ac.uk/进行免费下载,工具包中包含许许多多的模块及工具,都是用纯C代码写成的,基本都以H开头。其中也有非常详细的文档可供参考。http://htk.eng.cam.ac.uk/docs/inst-win.shtml是整个安装过程的官网介绍,可以耐心看下~

        安装:

        第一步:HTK要使用 Microsoft Visual Studio进行编译,所以要6.0以上版本。

        第二步:侧似乎需要一个Perl翻译,所以需要安装一个ActivePerl.(下载地址http://www.activestate.com/activeperl)

      (注意:如果自己电脑中已经安装过oracle,可以会报“无法启动此程序,计算机丢失Perl58.dll’”的错误,点击确定后报出错误信息:Can't load     D:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-threa d/auto/File/Glob/Glob.dll' for module File::Glob: load_file:找不到指定的模块。 a t D:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/XSLoader .pm line 68.

       此错应该是早前安装的Oracle与新装的Perl冲突了,而且冲突是因为Oracle在安装的时候往我们系统中添加了一个Perl5Lib的环境变量,而这个环境变量指向的则是Oracle安装目录下那个模块不全的Perl,从信息提示可以知道为Oracle Home/perl目录。改进方法如下:

       1、经常与Oracle打交道而偶尔玩下perl的一类朋友:如果是这样的话,建议就不要对环境变量Perl5Lib动手了。在运行Perl命令之前,设置下当前命令行窗口的临时Perl5Lib变量就可以了。如笔者的Perl10安装在G盘根目录下,则在运行Cmd后,使用命令Set Perl5Lib="G:\\Perl\bin\"改变下环境变量Perl5Lib的指向,该命令作用域为Session级的,即重开Cmd后还得再次设置。

       2、 与上述情况相反的:可以先备份下Per5lLib的内容,然后将Perl5Lib清空或者设置为G:\\Perl\Lib即OK

       3、两者都经常打交道的:将G:\\Perl\Bin加到Perl5Lib的前面,注意,不是替换。

 

        第三步 :解压HTK-3.4.1.zip到E盘

         1、开始\运行\cmd 回车

         2、 进入 e:\htk 目录。这里用到两条命令: e: 和 cd htk

         3、建立文件夹: mk bin.win32

         4、运行命令:VCVARS32。如果提示找不到命令,大概解决办法是安装VC++6.0 或者其后版本。然后设置好path变量(在环境变量中的系统变量path后面添加D:\Program Files\Microsoft Visual Studio 10.0\VC\bin,记得路径之间分号隔开);

         5、输入如下命令,来编译HTK Library:

              cd HTKLib(进入路径)
              nmake /f htk_htklib_nt.mkf all
              cd ..(返回上级目录)

              同理编译HTK TOOLS ,输入以下命令:

              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 ..

               6、编译成功后,打开bin.win32文件夹,会发现刚才6,7步编译结果就存在此文件夹中,如图:(http://www.zhaomingming.cn/HTK语音识别/HTK工具.jpg)所示,其中, 你可以找找有没有这些文件,在使用篇中我们用的到:

               HSLab.exe     录音,标记工具
               Hcopy.exe     从语音提取特征参数的工具
               HInit.exe 和 HCompV.exe 对HMM模型初始化的工具,注意,这里需要对每个模型都要使用此命令进行初始化
               HRest.exe     对模型进行迭代训练的工具
               HParse.exe    语法转网络的工具,发音转本文用到的。
               HSGen.exe    语法查错工具
               HVite.exe      解码工具,也就是识别工具。可以用命令行方式使用,也可以用交互方式使用。
               其他命令本文将不会用的到。

               7、.既然安装好了,不妨测试一下安装是否成功,这里需要电脑安装有 ActivePerl,将sampless文件夹下HTKDemo文件复制到E:\htk下,

               配置环境变量输入命令 path=%path%;e:\htk\bin.win32

              测试,输入命令  HInit

              然后使用如下命令(测试Demo):

              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 test
              perl runDemo.pl configs\monPlainM1S1.dcf(这可能会提示perl不是内部命令,需要在系统变量中配路径D:\Perl\bin,如果安装了oracle,解决方案按文章最初所给方法解决)

         (重点提示)如果无法识别HSLab不是内部命令,将将htk目录下的HTKLib中的HGraf.null.obj替换为HGraf_WIN32.obj、HGraf.null.olv替换为 HGraf_WIN32.olv。

              测试完成,ok了  ,碰到问题,最好找谷歌。。。

我主要参看(http://www.cnblogs.com/mingzhao810/archive/2012/08/03/2617674.html)

附加一些网站吧:http://my.oschina.net/jamesju/blog/112602         

    http://www.cnblogs.com/yangecnu/archive/2012/03/30/KinectSDK_Geting_Started.html

原创粉丝点击