htk简介:
HTK是一个构建隐藏马尔可夫模型(HMMs)的工具包。HMMs可以用于任何时间序列的建模建模,HTK的核心就是类似的通用目的。然而,HTK主要设计用于构建基于HMM的语音处理工具,特别是识别程序。因此,大部分HTK中的基础设施支持专门用于此任务。
--------------------------------------------------------------------------------
安装篇
--------------------------------------------------------------------------------
1.下载到HTK-3.4.1.ZIP后,解压,将其中的htk文件夹整个复制到E盘根目录下,路径最好都是英文。
2.确保的环境变量Path包含路径(此为本机vs2013的路径,其它版本可根据安装目录找到):F:\工具文件\vs2013_installation_path\Common7\Tools ,路径根据你安装所在目录作相应改变。此次安装需要加诸多路径到环境变量中,如下图
其中第二个环境变量是运行程序的目录文件夹,需要加到环境变量中,路径是你的HTK安装路径;后面三个都是DOS窗口编译时用nmake编译需要添加的环境变量,路径是你的vs安装路径中的VC文件夹下的文件路径,读者只需添加到环境变量中即可,后续会详细解释。
3.打开DOS 命令窗口, 在命令窗口中输入cd HTK-3.4.1 进入HTK-3.4.1文件夹,在该文件夹下建立一个新文件夹bin.win32 . 输入:mkdir bin.win32就可以新建文件夹(注:HTK的盘符是你安装时候的盘符,笔者已经在E盘安装好了,此时在D盘做试验);
此时可以去你的HTK文件夹下看是否有bin.win32这个文件夹,有的话说明成功。
4.接下来在DOS窗口运行vcvars32,这个文件是在F:\工具文件\vs2013_installation_path\VC\bin目录下,也就是vs安装路径下的VC里面的bin目录下运行vcvars32.bat(注意后缀名也要写上);
5.接下来编译htk库文件:
总共有四个库文件需要编译,分别是HTKLib,HTKTools,HLMLib,HLMTool四个文件,具体步骤如下:
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.编译成功后你会发现在你的htk文件夹中的bin.win32这个文件中会出现很多.exe文件,如图:
HSLab.exe 录音,标记工具
Hcopy.exe 从语音提取特征参数的工具
HInit.exe 和 HCompV.exe 对HMM模型初始化的工具,注意,这里需要对每个模型都要使用此命令进行初始化
HRest.exe 对模型进行迭代训练的工具
HParse.exe 语法转网络的工具,发音转本文用到的。
HSGen.exe 语法查错工具
HVite.exe 解码工具,也就是识别工具。可以用命令行方式使用,也可以用交互方式使用。
此时说明你的四个htk库文件编译成功!
此时要将bin.win32这个文件的路径加入到 环境变量中才能运行生效,E:\HTK-3.4.1\htk\bin.win32加入环境变量 。也就是步骤2中的第二个环境变量的加入;
安装htk后在E:\HTK-3.4.1\htk目录下运行HInit后若出现以下界面,
则说明你的htk已经安装成功一半了!!!
7.此时确保电脑已经安装Active Perl编辑器,用来编译CGI程序;
ActivePerl一个perl脚本解释器。其包含了包括有 Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让用户编写出适用于unix,windows,linux系统的CGI程序来。
此时开始运行HTKDemo程序:
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
先要在HTKDemo文件夹下新建四个文件夹,分别是hmms,proto,acc,test,在hmms文件夹下再创建四个文件夹分别为hmm.0,hmm.1,hmm.2,hmm.3,建立完后然后在E:\HTK-3.4.1\samples\HTKDemo目录下运行以下2代码,若出现以下界面:
perl runDemo.pl configs\monPlainM1S1.dcf
则说明此时htk已经完全地安装成功了!
---------------------------------------------------------------------------------
使用篇
---------------------------------------------------------------------------------
接下来就可以使用htk了!
1. 建立语音材料库,确定识别基本元,比如一个单词 yes no ok等,或者 声母 b p m f 韵母 d t n l 等,确定基本元后,标记好识别基本元。
2. 对语音材料库中的声音文件提取MFCC声纹特征
3.为每一个基本元建立一个HMM模型。
4.利用MFCC声纹特征对每一个HMM模型进行训练,使模型参数与其描述的识别基本元对应。
5.定义输入语音的语法规则等,从发音对应到文字。
6. 识别。
先做第一步:建立语音材料库,确定基本单元;
1.先打开DOS窗口,运行录音标记工具,输入HSLab yes.sig命令,回车;有可能出现以下错误:
“ERROR [+6870] MakeXGraf: Not compiled with X11 support: use HGraf.X.c
FATAL ERROR - Terminating program HSlab”;
这是因为 默认情况下HSLab工具使用的是x11做的图形界面接口,windows不支持,所以需要修改一下生成文件,使用windows GUI。修改htk_htklib_nt.mkf(两处),将HGraf.null.obj替换为HGraf_WIN32.obj,HGraf.null.olv替换为 HGraf_WIN32.olv。
然后(进入HTKLib文件夹 )--> 使用命令:nmake /f htk_htklib_nt.mkf all重新编译HTKLib 下的\htk_htklib_nt.mkf。;打开htk \HTKTools下的Makefile.in(右击用记事本打开),将其中"-lX11"删除(查找);
然后(进入HTKTools文件夹 )-->重新编译生成 htk_htktools_nt.mkf
再按照上面的步骤安装即可。就可以解决上述问题!
这里要用nmake方式编译上述两个配置文件,此时要先找到你的vs安装路径里面的VC文件夹,然后将里面的Include、lib、和bin三个文件夹的路径加到你的系统变量里面去,否则在用nmake编译上述文件夹时会出现错误,所以一定要加到环境变量。
此时再运行htk_htktools_nt.mkf文件时还肯会出现以下错误:
这个问题的解决办法网上的很复杂,我找了很多办法也解决不了,后来摸索出了一种简单的方法,就是再运行htk_htktools_nt.mkf文件时先要运行以下F:\工具文件\vs2013_installation_path\VC\bin文件下的vcvars32.bat文件,然后再运行htk_htktools_nt.mkf文件!
若出现以下界面,则说明nmake /f htk_htklib_nt.mkf all和nmake /f htk_htktools_nt.mkf all两个配置文件运行成功!
此时再运行录音工具HSLab yes.sig命令,激动人心的画面出现了!!!
若出现以上界面,则说明录音工具运行成功,此时可进行录音!
录制声音。点击rec按钮,说:“yes”,然后点击stop按钮。你会看到界面上出现一个语音波形,一条语音样本就录制完成了,你可以点击play播放听一下。