当前位置: 代码迷 >> 综合 >> kaldi-ctc的安装和编译
  详细解决方案

kaldi-ctc的安装和编译

热度:79   发布时间:2023-11-20 04:16:30.0

首先从github上下载源码:github:https://github.com/lingochamp/kaldi-ctc

解压后根据文件夹中的readme的步骤一步一步执行:
1.进入tools路径:

cd tools

编译:

make

再执行:

make openblas

make openblas这一步可能会报错提示要安装gfortran,直接apt-get install就行。
安装完成后,可能还要报错:“/usr/bin/ld: 找不到 -lgfortran”,这里说是没有gfortran的库函数,所以执行

sudo apt-get install libgfortran-4.8-dev

下载好库函数后,将该函数放入local/lib下:

sudo cp libgfortran.so /usr/local/lib/

一切顺利后再执行一遍make openblas就行,实在不行就从make开始,一般出现done就说明编译好了,否则就再找找有什么报错,一般都是没安装什么东西。

2.按照readme里的步骤接下是:

bash extras/install_cudnn.sh

可以尝试用这个脚本进行下载cudnn,但一般也会报错:”your cuda is too new or too old“,但我之间跑kaldi的chain时就已经安装好了cuda8.0,不知道咋解决就自己去官网下载cudnn了:

https://developer.nvidia.com/rdp/cudnn-archive

我下的是 cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0,好像只能下载install_cudnn.sh里提供的两个版本。然后就解压下载好的cudnn-8.0-linux-x64-v5.1.tgz,解压出来就一个叫CUDA的文件夹。此时按照readme里的要求要“copy include/lib[64] dirs to system’s CUDA path yourself.”,就是把下载好的cudnn里的include的路径和lib64路径覆盖你之前安装好的cuda路径里面的同名目录,怕出问题的同学可以给以前的文件备个份。首先执行:(注意:yourcuda_same_dir就是你安装的cuda的同名路径)

Sudo cp -r CUDA/include/cudnn.h yourcuda_same_dir
Sudo cp * -r CUDA/lib64 yourcuda_same_dir

再给覆盖后的路径读写权限:

Sudo chmod a+r the_copy_file

3.编译源代码
进入src目录:

cd src

配置cuda路径:(注意:YOUR_CUDNN_ROOT就是你的cuda路径,应该就是那个叫CUDA的文件夹的路径,有点忘了)

./configure --cudnn-root=YOUR_CUDNN_ROOT --openblas-root=../tools/OpenBLAS/install

配置没有问题后,就执行:

make depend -j8

j后面的数字根据自己电脑的配置自行取就行了,然后执行最后一步:

make -j8

这一步会编译很久,可能要个接近10分钟,那种很快就编译完了的一般都报错了,好好找找吧。如果出现done就证明编译成功啦。