Kaldi在虚拟机里面安装

虚拟机: Ubuntu 14.04     Ubuntu下载地址  

gcc 建议安装4.8以上版本 ,登陆最好是root, 废话不多说,开始,首先安装虚拟机,  虚拟机安装  , 完成的示意图,快捷键Ctrl+Alt+t打开终端:




在终端中键入sudoapt-get update 命令然后输入密码 回车


kaldi项目现在托管在github上,需要使用git命令将其下载到本地,安装git 在终端中键入sudoapt-get install git


获取kaldi源码在终端中键入  gitclone https://github.com/kaldi-asr/kaldi.git kaldi-trunk    如图所示:




cd kaldi-trunk目录 键入gitcheckout命令检查源码一致性


在终端键入cd kaldi-trunk/tools/extras,键入ls 命令列出当前目录所有文件,键入./check_dependencies.sh执行该脚本检查包依赖情况, 根据提示安装所需要的包






键入sudo apt-get install g++ zlib1g-dev automake autoconf libtool subversion

    sudo apt-get install libatlas3-base

    sudo ln -s -f bash bin/sh (该命令获取shell脚本的执行权)


(1)sudo apt-get install libtool

(2)sudo apt-get install autoconf

(3)sudo apt-get install wget

(4)sudo apt-get install perl

(5)sudo apt-get install subversion

(6)sudo apt-get install build-essential

(7)sudo apt-get install gfortran

(8)sudo apt-get install libatlas-dev

(9)sudo apt-get install libatlas-base-dev

(10)sudo apt-get install zlib1g-dev(中间是数字1)

如果安装出现 function gensub never defined,则需要安装gawk

sudo apt-get install gawk.


在终端键入cd kaldi-trunk/tools,键入ls命令列出当前目录文件, 键入make 进行编译,如下图所示:




这里出现警告IRSTLM库没有安装,其他一切OK,如下图:



根据提示:键入cd kaldi-trunk/tools/extras ,键入 ./install_irstlm.sh安装IRSTLM


kaldi-trunk/tools目录下主要是一些外部库,这部分准备完成,编译kaldi的源码,在终端键入cd kaldi-trunk/src

键入ls命令列出当前目录的文件

键入./configure检查外部库安装情况,根据提示进行安装

键入make depend 进行预编译(make depend -j 4)

键入make 进行编译(make -j 4)

make 耗时较长请耐心等待.............


注意:这里是虚拟机,所以CUDA不存在


检测kaldi是否编译成功,使用kaldi-trunk/egs/yesno例子进行测试

yesno是关于yes和no两个孤立词的识别

在终端键入cd kaldi-trunk/egs/yesno/s5 进入yesno样例目录

键入ls命令查看该目录下有哪些文件



conf文件夹里是一些配置文件例如MFCC的参数 HMM的拓扑结构
local文件夹里主要是一些准备数据的脚本供顶层脚本run.sh调用
steps和utils文件夹里主要是一些运行时调用的脚本
data文件夹里主要存放语言模型、发音字典和音素信息等等。


键入./run.sh该脚本执行孤立词识别流程,结果如下图:


说明我们已经安装成功了!!!!!

下面可以测试timit数据了(timit的数据需要自己下载,对应的脚本加载数据路径也要相应的修改,这里不多说)


说一下我个人安装时遇到的坑吧:

1. 因为编译的时候需要的内存会很大的,所以在创建虚拟机时,最好分配较大的内存,以防编译过程中,内存不足
2. gcc版本,这个ubuntu下面默认的是gcc4.8,这个版本的gcc有bug,会导致kaldi编译失败,而kaldi编译好像是需要4.7以上的版本(我记得好像是),所以这里最好安装较高版本,怎么装就自己百度吧
3. python库最好是2.7(这个版本比较稳定)
4.还有一个错误是编译的时候,出现了internal compiler error:Killed      具体解决方案是:

internal compiler error: Killed (program cc1plus)

在 640M 内存的 vps 做编译的时候出现了上述错误.
几经搜索, 才发可能是系统没有交换分区, 编译过程中内存耗尽, 导致了编译中断 …
解决方式也很简单, 就是增加一个交换分区:

1. 创建分区文件, 大小 2G

dd if=/dev/zero of=/swapfile bs=1k count=2048000

2. 生成 swap 文件系统

mkswap /swapfile

3. 激活 swap 文件

swapon /swapfile

这样就木有问题了, 但是这样并不能在系统重启的时候自动挂载交换分区, 这样我们就需要修改 fstab.
修改 /etc/fstab 文件, 新增如下内容:

/swapfile  swap  swap    defaults 0 0

这样每次重启系统的时候就会自动加载 swap 文件了.

执行命令是最好是管理员权限

看了一下run.sh里面具体是调用其它的一些shell文件,下面准备好好学习下!