ubuntu 16.04离线安装kaldi
原文链接 https://hlthu.github.io/kaldi/2017/02/06/ubuntu-install-kaldi-without-network.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
在很多科研单位和企业研发部门,服务器是极少被允许连外网的,一般情况下只可以通过内网里的机器访问服务器。由于自己的经历,我曾经接触过这样一台服务器,由于有8张Tesla K80的GPU,我很想在上面安装一个kladi。因此,这里的离线指的是服务器不能访问外网,或者服务器压根不能上网。我下面的操作是在和服务器在同一内网下的Windows机器上进行的,读者也可以直接在服务器上操作(不过一般很难得到许可)。
在阅读本文之前,建议先阅读一下我之前写的文章:ubuntu 16.04在线安装kaldi,以熟悉kaldi安装的大概过程。
1. 下载kaldi并上传
从kaldi在github的代码仓库(https://github.com/kaldi-asr/kaldi)下载源码。然后上传到服务器上并解压。
2. 解决依赖环境
先检查环境是否齐全。
cd KALDI-ROOT-PATH/tools/
./extras/check_dependencies.sh
如果OK,那就可以,否则就按提示解决依赖。需要提醒的是虽然服务器不能访问外网,但是大多数服务器都配备了自己的软件包source,因此使用sudo apt-get install XXX
进行软件安装是行得通的。由于还可能需要以下软件包,再执行:
sudo apt-get install sox
3.下载并上传kaldi的tools
之前在ubuntu 16.04在线安装kaldi一文中,我们可以直接在tools目录下make,以实现工具的编译,但是需要的工具的源代码是从互联网获取的。由于这里服务器不能访问外网,因此必须把tools工具提前下载好,链接在Makefile里面都有。
下载完成后解压,并上传到tools目录下。
4.编译tools
编译的过程和文章ubuntu 16.04在线安装kaldi中编译tools一样,只不过在此之前需要修改一下Makefile文件,把该文件中的下面几行注释掉。
distclean:
rm -rf openfst-$(OPENFST_VERSION)/
rm -rf sctk-2.4.10/
rm -rf sctk
rm -rf ATLAS/
rm -rf sph2pipe_v2.5/
rm -rf sph2pipe_v2.5.tar.gz
rm -rf atlas3.8.3.tar.gz
rm -rf sctk-2.4.10-20151007-1312Z.tar.bz2
rm -rf openfst-$(OPENFST_VERSION).tar.gz
rm -f openfst
rm -rf libsndfile-1.0.25{,.tar.gz} BeamformIt-3.51{,.tgz}
这部分只要是清除之前的软件包,由于我们刚上传了,而不是从网络获取,因此千万不能清除。之后直接执行make即可。
make -j n
5.编译src
和文章ubuntu 16.04在线安装kaldi中的一样。
cd ../src/
cat INSTALL
./configure --shared
make depend -j8
make -j8