本文主要是介绍【2019.6.21】Ubuntu下Kaldi完整安装步骤以及初步跑通过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
官方教程:https://kaldi-asr.org/doc/install.html
下载
git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstreamcd kaldi
编译
查看./INSTALL
,提示需要分别编译tools和src下的文件
编译tools
查看./tools/INSTALL
,提示需要根据脚本检查结果安装依赖,总之运行以下命令就对了,整个流程大概需要20分钟:
sudo apt-get install autoconf
sudo apt-get install autoconf
sudo apt-get install wget
sudo apt-get install perl
sudo apt-get install subversion
sudo apt-get install build-essential
sudo apt-get install gfortran
sudo apt-get install libatlas-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install zlib1g-dev
sudo apt-get install gawk
sudo apt install sox
bash extras/install_mkl.sh
运行完后,需要查看g++版本
CXX=g++-4.8 extras/check_dependencies.sh
如果版本不够,就需要更新g++版本,kaldi目前的要求是g++ >= 4.8.3
- 如果没有安装g++,则需要安装g++
sudo apt install g++
- 如果需要更新,则更新版本
sudo apt upgrade g++
随后正式进行编译,可以通过多核加速编译,如果要使用多CPU进行编译,首先运行下面的命令查看CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
该命令会返回CPU核数,随后,将[num]替换为相应的数字
make -j [num]
如:make -j 4
注意: Kaldi安装提示中提示,如果系统默认的编译器不支持C++11
,那么可以通过指定编译器的方式来运行编译指令(如make CXX=g++-4.8
)。
这应该是针对系统内有多个编译器的情况,因为我安装的时候没有出现这种情况,因此读者中如果存在这种情况,请自行调试解决。
最后如果成功的话,应该会报多个警告和一个成功的提示:
在./extras/
目录下,是多个用于安装其他包的脚本,一般是针对kaldi提供的特定示例,如果示例要求你安,那你就安,否则可以不用管。
IRSTLM是一个语言模型工具包,在许多例子中都需要,但对于kaldi并不是必要的,但还是建议运行
bash ./extras/install_irstlm.sh
安装它
编译src
编译./src/
需要完整的编译通过./tools
,该步较为简单,运行以下命令(注意-j 8 是可选项
):
./configure --shared
运行上一行命令会有一堆提示,成功提示混杂在其中不明显,不要以为是报错。
随后运行以下命令
make depend -j 8
make -j 8
这次的编译需要很长时间(25分钟左右),可以耐心的等待,如果电脑配置较差的话,可能需要更长的时间。
试运行
yesno
“yesno” 语料是一个非常小的记录了说多个"yes"和"no"的多个音频,提供语料的官网为:http://www.openslr.org/1
其存在的目的就是用于测试kaldi是否编译完整。
cd ./egs/yesno/s5
bash run.sh
会看到许多输出…最后结果:
说明训练成功。
yesno脚本解读
打开run.sh
可以看到该脚本已经有了一些注释,声明该脚本训练的几个过程,具体如下:
- 数据准备:包括数据下载、准备字典、准备语言模型
- 特征抽取
- 训练模型
- 解码图编译
- 解码
- 测试
数据准备
主要是四条命令,因为涉及我不会的perl,因此只能简单分析一下:
local/prepare_data.sh waves_yesno
一个教程:https://github.com/keighrim/kaldi-yesno-tutorial
local/prepare_dict.sh
utils/prepare_lang.sh --position-dependent-phones false data/local/dict "<SIL>" data/local/lang data/lang
local/prepare_lm.sh
TO BE CONTINUE...
这篇关于【2019.6.21】Ubuntu下Kaldi完整安装步骤以及初步跑通过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!