Kaldi -1
安装篇
上次做ontonotes时租的服务器到期了。
但我还是需要整一个好用的环境。
我用的是mac,所以下载了docker desktop配置一下ubuntu16.04环境,不然在mac上安装dependencies的时候就开始疯狂报错了。过程大体仿照这篇博文的顺序。
docker ps #找到container ID
docker exec -it <Container ID> /bin/bash
apt-get update
apt-get upgrade
apt-get install git vim
这个时候我们安装必要dependencies
apt-get install libtool autoconf wget perl subversion build-essential gfortran libatlas-dev libatlas-base-dev zlib1g-dev gawk git sox bison swig -y
接下来下载kaldi源码放到/opt目录下解压。
再下载必要的工具包
openfst-1.7.2.tar.gz
sph2pipe-2.5.tar.gz
cub-1.8.0.tar.gz
sctk-20159b5.tar.gz
比较麻烦的是最后一个,按照/tools目录下Makefile文件给出的链接下载下来的是一个SCTK-后面跟着40个字符的压缩文件。要把名字改成小写的sctk-20159b5.tar.gz。
把这些文件都放到\kaldi-master\tools目录下。不放直接make也可以,但我的网速不允许我这么做。就会报错:
Unable to establish SSL connection.
传输文件用
docker cp 本机文件目录 <Container ID>:docker目录
然后切换到tools目录
extras/check_dependencies.sh #检查依赖有没有装完整
make -j 4
数字根据自己设备决定
完了后切换到…/scr目录
./configure --shared
CXX=g++
make depend -j 4
make -j 2
我最后那个其实使用的是make -j 1
因为用make -j 4我的mac可能是分配给docker内存少吧,总是会报错
internal compiler error: Killed (program cc1plus)
...
make[1]: *** [chain-supervision.o] Error 4
...
Makefile:136: recipe for target 'chain' failed
make: *** [chain] Error 2
这种错。
顺利的话,最后echo done,done
退出docker后建立一个新的镜像
docker commit <Container ID> kaldi:latest
好,现在来测试一下是否编译成功了
两个方法,第一个跑一下/egs里的YESNO例子
cd /kaldi-master/egs/YESNO/s5
./run.sh
跑通了就说明你编译好了。
%WER 0.00 [ 0 / 232, 0 ins, 0 del, 0 sub ] exp/mono0a/decode_test_yesno/wer_10_0.0