官网教程地址:http://kaldi-asr.org/doc/tutorial.html

先对linux依赖进行配置,如下:

sudo apt-get install libtool
sudo apt-get install autoconf
sudo apt-get install wget
sudo apt-get install perl
sudo apt-get install subversion
sudo apt-get install build-essential
sudo apt-get install gfortran
sudo apt-get install libatlas-base-dev
sudo apt-get install zlib1g-dev (中间有个数字1)
如果报function gensub never defined,则需要安装gawk
安装办法:apt-get install gawk

在root权限下,用命令 

sudo su

apt-get update

apt-get install git 

cd /

git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunnk

Kaldi目录介绍开始///

进入Kaldi-trunnk可以看到,./tools,./src和./egs这三个目录是比较重要的。
./tools目录下面全部都是Kaldi依赖的包。其中主要有:
OpenFST:Weighted Finite State Transducer library,是一个用来构造有限状态自动机的库。我们知道隐马尔科夫模型就可以看成是一个有限状态自动机的。这是最终要的一个包,Kaldi的文档里面说:If you ever want to understand Kaldi deeply you will need to understand OpenFst.
ATLAS:这是一个C++下的线性代数库。做机器学习自然是需要很多矩阵运算的。
IRSTLM:这是一个统计语言模型的工具包。
sph2pipe:这是宾夕法尼亚大学linguistic data consortium(LDC)开发的一款处理SPHERE_formatted数字音频文件的软件,它可以将LDC的sph格式的文件转换成其它格式。

./src目录存放的是Kaldi的源代码。

./egs存放的是Kaldi提供的一些例子。

Kaldi目录介绍结束///

进入Kaldi-trunk目录,用命令 cat INSTALL  查看安装步骤

go to tools/  and follow INSTALL instructions there.
go to src/ and follow INSTALL instructions there.

先进行第一步,进入tools目录,用命令 cat INSTALL  查看安装步骤

extras/check_dependencies.sh
make -j X
其中,X是CPU核心数,可用命令 nproc 查看(我用的是虚拟机安装Ubuntu,尝试下来表明不能全开CPU,否则Ubuntu容易死)

注意:终端输出中提示有Warning,现在的kaldi版本已经不默认安装 IRSTLM (一种语言模型工具),如果有需求,可自行安装。如下所示:

extras/install_irstlm.sh

然后进行第二步,进入src目录,用命令 cat INSTALL  查看安装步骤

./configure --shared
make depend
make -j X 

其中,X是CPU核心数,可用命令 nproc 查看

make时间较长,耐心等待,出现Done且不报错时表明已安装结束

现在需要验证一下是否安装成功

进入egs目录,用命令 cat README.txt 查看用例,egs下面包含如voxforge,vystadial_{cz,en},yesno和LDC用例

这里用yesno为例

进入egs/yesno目录,用命令cat README.txt 查看yesno数据集介绍,是一个关于Yes/no识别的简单的数据集

进入egs/yesno/s5目录,执行 ./run.sh 脚本

出现%WER 0.00 [ 0 / 232, 0 ins, 0 del, 0 sub ] exp/mono0a/decode_test_yesno/wer_10_0.0时,恭喜你,Kaldi安装成功!

PS:WER(WordError Rate)是字错误率,是一个衡量语音识别系统的准确程度的度量。其计算公式是WER=(I+D+S)/N,其中I代表被插入的单词个数,D代表被删除的单词个数,S代表被替换的单词个数。也就是说把识别出来的结果中,多认的,少认的,认错的全都加起来,除以总单词数。这个数字当然是越低越好。

Logo

更多推荐