&1. kaldi学习之路 之 kaldi的安装编译

       作为一名研究生,主攻语音识别,实验室只有自己一个人做模式识别方向,所以很苦逼。自入学来自己一人在语音识别领域痛苦挣扎,看了很多篇论文,语音识别领域质量较高的文章大多数还是英文的比较靠谱,看了几个月的论文终于有点头绪了,找到了自己的创新点,开始打算用Tensorflow训练实验,后来经多方人士推荐语音这块还是用Kaldi更好,因为语音识别不仅仅是训练几层神经网络就可以的,训练之前还需要声音信号处理,训练完了之后还需要解码等操作,于是就转战kaldi学习之路。Kaldi是一款基于C++编写的开源语音识别工具箱。这款工具既可以在Windows下编译也可以在Linux下编译。不过早前听人讲工业界还是在Linux下做开发更多,此外,Kaldi官方文档里面也说还是建议在Linux下使用Kaldi。于是我就选择在Linux环境下安装kaldi啦,我是在虚拟机上装了个16.04版本的Ubuntu 。虽然本科开过Linux课程,但是时隔多年,忘得差不多了,好多命令需要靠度娘才能完成,再加上我这电脑简直慢的不行,于是编译Kaldi花费了好几个小时。哈哈,好了,说了这么多废话,接下来进入主题,简要说下Kaldi安装步骤,主要说说安装过程中遇到的问题。

一、下载

       打开终端,直接利用git命令,在你的实验目录下输入命令:

git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk --origin golde

       如下图所示,回车执行就行了。

&1. kaldi学习之路 之 kaldi的安装编译_第1张图片

       哦,对了,在执行以上命令时候需要确保git包已经安装,若未安装git,需要先输入以下命令安装git:

sudo apt-get install git

       下载完毕后可以用cd命令切换到kaldi-trunk目录中,输入ls命令查看都下载了什么:


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

  • ./src目录存放的是Kaldi的源代码。
  • ./egs存放的是Kaldi提供的一些例子。

Question

 安装git时候出现暂时不能解析域名问题,如下图:

&1. kaldi学习之路 之 kaldi的安装编译_第2张图片

       唉,后来发现原来虚拟机没联网,我的解决办法是把虚拟机网络适配器改为桥接模式:

&1. kaldi学习之路 之 kaldi的安装编译_第3张图片

        再执行命令:

sudo apt-get install git

       接着会出现“有几个软件包无法下载”的提示,于是根据提示输入命令:

apt-get update
       发现还是没成功,提示权限不够。

&1. kaldi学习之路 之 kaldi的安装编译_第4张图片

       接着尝试第二个提示,直接在安装git的命令后面加上--fix-missing选项:

sudo apt-get install git --fix-missing

       最后出现以下类似界面就说明git安装成功啦:


&1. kaldi学习之路 之 kaldi的安装编译_第5张图片
       下一步就是编译安装Kaldi依赖的各种库,然后编译安装Kaldi。

二、kaldi的编译安装

       在安装kaldi之前,需要先安装以下依赖库:
apt-get 
subversion 
automake 
autoconf 
libtool 
g++ 
zlib 
libatal 
wget

       直接使用以下命令进行安装:
sudo apt-get install subversion
      接下来是kaldi安装,良心推荐直接按照下载下来的kaldi-trunk/tools和 kaldi-trunk/src这两个文件夹中的INSTALL的说明一步一步安装最好。因为之前我也是百度安装步骤,参照别人博客中的安装方法,但出现了很多别人没有出现的问题,最后直接按照INSTALL中的提示安装一步到位。接下来就参照INSTALL中的步骤简单说一下。
       首先,在终端将当前工作目录切换到 kaldi-trunk/tools目录下,输入命令:
 extras/check_dependencies.sh
       接着,输入命令:
make -j 4
       开始编译 ,注意:输入ma ke -j num 命令可以加快速度(多核并行处理),其中num是你的处理器的个数,我的有4个处理器,不并行处理就直接输入命令make即可。
      下图是./tools文件夹中INSTALL内容:
&1. kaldi学习之路 之 kaldi的安装编译_第6张图片
      之后切换到kaldi-trunk/src目录下,输入以下命令:

./configure
      进行配置,然后输入命令:
make depend -j 4
      完成之后输入命令:
make -j 4
      进行编译。 当然这个过程也可以并行处理加速,输入make -j 4。经过漫长的编译过程以后,就安装完毕了。
      下图是./src文件夹中INSTALL内容:
&1. kaldi学习之路 之 kaldi的安装编译_第7张图片

Question:

       在安装kaldi之前,安装依赖库zlib和libatal出现无法定位软件包问题,并且apt-get update仍未解决。

&1. kaldi学习之路 之 kaldi的安装编译_第8张图片
       经百度得知Ubuntu16.04中zlib名称改为zlib1g,libatal改为libatlas3-base,解决办法执行命令:
sudo apt-get install zlib1g
sudo apt-get install libatlas3-base
       最后可以使用命令:
dpkg -s 包名
       或者

sudo apt-cache show 包名
       查询该安装包是否已安装成功。

       第一次写CSDN博客,还是写的很认真的,只是应该边安装边记录更好,安装完了有些问题都忘了,很浪费时间。比如忘记了libatal依赖包修改后的形式libatlas3-base,找了半天,唉!

你可能感兴趣的:(Kaldi)