1、安装git
yum install -y git
2、
(1)拉取kaldi源码
git clone https://gitee.com/wangbaochao/kaldi.git kaldi-trunk --origin golden
(2)更新源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
进行更新
------------------
安装kaldi
------------------
3、 切换到toos目录
cd kaldi-trunk/tools/
检查依赖的软件 运行此命令可以检查在安装Kaldi 之前系统缺少什么依赖
根据提示进行安装 ,特别是再安装python3的时候不要安装最新版
本人亲自尝试了安装的3.7.1的python版本不行
安装3.6.3的版本可以 在进行安装依赖的时候python3 放到最后安装
不能使用yum 安装 安装流程如下
extras/check_dependencies.sh
根据指示安装缺失的包,直到看到:
extras/check_dependencies.sh: all OK.
下载完毕以后,cd kaldi-trunk进去看看下载了一些什么东西。
其中,tools,src和egs这三个目录是比较重要。
tools目录下面全部都是Kaldi依赖的包。
OpenFST:Weighted Finite State Transducer library,是一个用来构造有限状态自动机的库。我们知道隐马尔科夫模型就可以看成是一个有限状态自动机的。这是最终要的一个包,Kaldi的文档里面说:If you ever want to understand Kaldi deeply you will need to understand OpenFst.诶,要学的好多。
ATLAS:这是一个C++下的线性代数库。做机器学习自然是需要很多矩阵运算的。
IRSTLM:这是一个统计语言模型的工具包。
sph2pipe:这是宾夕法尼亚大学linguistic data consortium(LDC)开发的一款处理SPHERE_formatted数字音频文件的软件,它可以将LDC的sph格式的文件转换成其它格式。
src目录存放的是Kaldi的源代码。egs存放的是Kaldi提供的一些例子。我们现在要做的就是编译安装Kaldi依赖的各种库,然后编译安装Kaldi
安装kaldi需要依赖automake autoconf libtool g++ zlib libatal wget
需要依次安装
-----------
yum install gcc-c++
yum install patch
yum install automake
yum install autoconf
yum install zlib zlib-devel
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
——————
4、安装python3
切换到opt目录下 使用命令
cd /opt/
wget "https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz"
tar -zxvf Python-3.6.3.tgz
cd Python-3.6.3
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3
make
make install
cd /usr/bin/
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
再tools目录下输入make进行安装:输了make命令 如果电脑是多核的 可以输入 make -j n 其中 n 带边CPU核数
make -j 4(虚拟机不要指定)
容易出问题的压缩包地址
https://www.openslr.org/resources/4/sctk-2.4.10-20151007-1312Z.tar.bz2
http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.6.7.tar.gz
完成之后切换到src目录:
cd ../src
make -j 4
./configure
在VMware虚拟机内由于无法使用GPU,所以直接加指令不适用CUDA[3]
具体配置可查看configure文件开头部分的注释
./configure --use-cuda=no
然后按照INSTALL文件中提示安装
make -j clean depend
mkae -j <NPROC>
报错
---------------------
[root@localhost src]# ./configure
Configuring KALDI to use MKL.
Checking compiler g++ ...
Checking OpenFst library in ...
***configure failed: Could not find file /include/fst/fst.h:
you may not have installed OpenFst. See ../tools/INSTALL ***
----------有可能是make出问题(压缩包下载问题,删除tools下的安装包重新下载即可)-----------
make -j 4
如果没有出错 则安装成功
检测 Kaldi 是否编译成功,使用 kaldi-trunk/egs/yesno
例子进行测试
yesno是关于yes和no两个孤立词的识别
在终端键入cd kaldi-trunk/egs/yesno/s5
进入yesno样例目录
键入ls
命令查看该目录下有哪些文件
conf文件夹里是一些配置文件例如MFCC的参数 HMM的拓扑结构;
local文件夹里主要是一些准备数据的脚本,供顶层脚本run.sh调用;
steps和utils文件夹里主要是一些运行时调用的脚本;
data文件夹里主要存放语言模型、发音字典和音素信息等等。
键入./run.sh
[root@localhost s5]# ./run.sh
--2020-11-05 21:12:09-- http://www.openslr.org/resources/1/waves_yesno.tar.gz
正在解析主机 www.openslr.org (www.openslr.org)... 46.101.158.64
正在连接 www.openslr.org (www.openslr.org)|46.101.158.64|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:4703754 (4.5M) [application/x-gzip]
正在保存至: “waves_yesno.tar.gz”