LINUX7下安装kaldi实战,需要升级gcc版本。还需要将kaldi相关的github.com替换为kgithub.com。
1 升级安装gcc过程
我是在LINUX7.5下安装部署得kaldi。自带的gcc版本为4.8.5,所以需要安装升级gcc.
1.1 安装说明
gcc库包含3个依赖库:gmp、mpfr、mpc
这3个库的安装需要按gmp → mpfr → mpc的顺序,因为后面的库编译安装时需要依赖前面已安装的库
1.2 安装gmp
cd /usr/local
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
tar -jxvf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
mkdir gmp-build
cd gmp-build
../configure --prefix=/usr/local/gmp-6.1.0
make
make install
1.3 安装mpfr
cd /usr/local
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
tar -jxvf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
mkdir mpfr-build
cd mpfr-build
../configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-6.1.0
make
make install
1.4 安装mpc
cd /usr/local
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
tar -zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
mkdir mpc-build
cd mpc-build
../configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4
make
make install
1.5 添加环境变量
```bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-6.1.0/lib:/usr/local/mpc-1.0.3/lib:/usr/local/mpfr-3.1.4/lib
1.6 安装gcc
mkdir /usr/local/gcc-4.8.5/
mv /usr/bin/{gcc,g++,c++} /usr/local/gcc-4.8.5
ln -s /usr/local/gcc-6.1.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-6.1.0/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-6.1.0/bin/c++ /usr/bin/c++
1.7 检查gcc版本
gcc --version
g++ --version
c++ --version
1.8 加载动态库
添加gcc-6-1-0.conf,内容如下
cat /etc/ld.so.conf.d/gcc-6-1-0.conf
/usr/local/gcc-6.1.0/lib64
Ldconfig
ldconfig -v
2 安装kaldi
2.1下载kaldi
git clone https://kgithub.com/kaldi-asr/kaldi.git
请注意,我用的kgithub,这个是github在中国的镜像。
我下载的本地目录是/home/kaldi/
2.2 编译过程
2.2.1 tools编译
cd //home/kaldi/kaldi/tools
按照当中的步骤进行
cat INSTALL
按照结果的提示进行,如果没有问题会显示all ok(大概意思)
需要把tools的Makefile中的github替换为kgithub
需要把tools/extras目录下的install_irstlm.sh、install_kaldi_lm.sh、install_portaudio.sh中的github替换为kgithub。不然会因为组件下载失败导致后续的很多问题
extras/check_dependencies.sh
如果编译出错,重新编译需要make clean
make
2.2.2 src编译
服务器上需要有GPU显卡,需要安装cuda相关的组件及开发库
cd /home/kaldi/kaldi/src
cat INSTALL
出现Successfully就可以了
./configure --shared
make -j clean depend
make
2.2.3 检查编译结果
跑一个yesno测试一下:
cd /home/kaldi/kaldi/egs/yesno/s5
sh run.sh
结果如下,就基本没什么问题了