赞
踩
破防了,最近入门语音识别相关的领域,用的kaldi,结果make的时候是各种报错!!!
我用的操作环境是Vmware16.2 + CentOS7.9 + Xshell7
这只能算是一篇搭建的笔记,具体流程可以看下面的 二,并且关于理论部分不会做太多的阐述
现在整理一下编译时需要注意的一些问题:
make clean
清除失败的东西,不然你重新make仍然会报错make
的过程依据硬件情况而定,一般都比较耗时,请耐心等待,避免ctrl+c
首先呢,我们先来看一下
git clone https://github.com/kaldi-asr/kaldi.git #拉取kaldi
cd kaldi/tools/ #进入文件夹
extras/check_dependencies.sh #执行check_dependencies.sh脚本检查是否缺少相关依赖
sudo yum install ...
extras/install_mkl.sh
安装mkl,安装完成后再次执行extras/check_dependencies.sh
出现:extras/check_dependencies.sh: all OK.说明安装成功可以继续make
开始编译,直到不报错完成!cd ../src/ # 返回src目录查看
./configure --share
出现下面内容说明可以继续make depend
,执行完成后继续make
无报错出现Done,那么说明你tools编译成功!(请收下我的膝盖)cd ../egs/yesno/s5
./run.sh #执行脚本
,若你看到如下输出,说明kaldi各步骤均成功了(请再次收下我的膝盖)make
流程中断出现不可逆错误cd /etc/sysconfig/network-scripts # 切换目录
vim ifcfg-ens33 #用vim打开配置文件
若提示 “bash: vim: 未找到命令” 执行yum install -y vim
# 添加或修改以下内容 (很重要,缺一不可)
BOOTPROTO="static" #设为静态IP
ONBOOT="yes" #设置开机自启动
GATEWAY="192.168.204.2" #网关,看第一步
IPADDR="192.168.204.130" #子网IP
NETMASK="255.255.255.0" #子网掩码,看第一步
#DNS1=192.168.204.2 #这里不要配置,不然网络会阻塞
DNS1="114.114.114.114" #腾讯114
DNS2="1.2.4.8" #中国互联网络中心
DNS3="8.8.8.8" #Google
:wq保存并退出执行
service network restart #重启网卡
systemctl restart network # 重启网络服务
free -h # 查看分区情况
cat /etc/redhat-release #查看操作系统版本
#使用dd命令在根下创建swapfile
dd if=/dev/zero of=/swapfile bs=2M count=2048
# if 表示infile,一般不做修改; of表示outfile,设置为想要创建文件的全路径; bs=2M表示增加的块大小为1M,不加单位默认为bytes,也可以手动指定单位为M或者G;count=2048代表2048个模块,也就是2M*2048=4G空间。
mkswap /swapfile #设置swapfile为swap文件
chmod 0600 /swapfile # 权限设置为0600
swapon /swapfile #启用swap文件
vim /etc/fstab # 添加fstab文件
/swapfile swap swap defaults 0 0
# 查看依赖度 值越高代表对swap依赖程度越高
cat /proc/sys/vm/swappiness
echo "vm.swappiness = 40" >> /etc/sysctl.conf # 设置依赖程度40且永久生效
yum install gcc-c++
,因为默认安装gcc-4.8.5,后面编译根本用不了!# 更新
yum update -y
# 安装 SCL 发行包 centos-release-scl
yum install -y centos-release-scl
# 安装需要的Software Collection。
yum install -y devtoolset-7-gcc*
# 使用已安装的软件集合环境。此时gcc版本是:(GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
scl enable devtoolset-7 bash #临时使用
gcc -v # 查看版本
# 如需退出当前环境。回退到原来的gcc环境。
exit
至此,环境配置基本完成,下面开始真正的操作
git clone https://gitee.com/mirrors/kaldi.git #国内镜像仓库
cd kaldi/tools/
extras/check_dependencies.sh
执行命令安装:
yum install zlib-devel automake autoconf patch bzip2 unzip wget sox libtool subversion python3 -y
安装mkl
extras/install_mkl.sh
再次执行extras/check_dependencies.sh
检查,直到出现" all ok."
make
或者make -j 4
单线程或者启用4个线程进行编译,在我在这折腾了好几天的经验来看,不要进行这样的操作,因为error
无处不在,强烈建议使用下面的方式:make -j
表示多线程编译,请与虚拟机核相对应,否则建议使用make
make openfst -j 4
make cub
make sph2pipe
extras/install_irstlm.sh
extras/install_kaldi_lm.sh
全部无报错执行完成后再继续,否则执行make clean && yun clean all
后继续上面操作.
cd ../src/
再执行下面命令./configure --shared
make depend -j 4 # 这里我的虚拟机有4个核
make -j 4 # 完成最终编译
到这里,那么恭喜你已经完全掌握了kaldi的编译操作,下面可以开始kaldi的学习实践了!
题外: Xshell7连接虚拟机出现 WARNING! The remote SSH server rejected X11 forwarding request.
解决
yum install xorg-x11-xauth -y
有什么问题欢迎留言探讨!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。