Kaldi语音识别技术(一) ----- 搭建Kaldi环境

2023-05-16

Kaldi语音识别技术(一) ----- 搭建Kaldi环境

从零开始搭建Kaldi环境-解决kaldi编译tools出错相关问题

破防了,最近入门语音识别相关的领域,用的kaldi,结果make的时候是各种报错!!!
我用的操作环境是Vmware16.2 + CentOS7.9 + Xshell7
这只能算是一篇搭建的笔记,具体流程可以看下面的 二,并且关于理论部分不会做太多的阐述

现在整理一下编译时需要注意的一些问题:

  1. 虚拟机的运行内存一定要尽量大最好8G以上,我的4G在kaldi/tools 下make 内存不够用!有条件的物理内存也弄大一点,避免不必要的麻烦!
  2. 一定要设置 swap分区,具体设置方法看下文
  3. 虚拟机网络问题也要设置好,不然由于网络问题也会各种报错,特别是DNS
  4. 如果make失败了,下次make之前一定记得要先运行 make clean清除失败的东西,不然你重新make仍然会报错
  5. make的过程依据硬件情况而定,一般都比较耗时,请耐心等待,避免ctrl+c

首先呢,我们先来看一下

一、正常的kaldi安装流程(以命令排序,具体看注释):

  1. git clone https://github.com/kaldi-asr/kaldi.git #拉取kaldi
  2. cd kaldi/tools/ #进入文件夹
  3. extras/check_dependencies.sh #执行check_dependencies.sh脚本检查是否缺少相关依赖
  4. 根据最下面的提示信息安装缺少的包 sudo yum install ...
  5. 执行extras/install_mkl.sh安装mkl,安装完成后再次执行extras/check_dependencies.sh出现:extras/check_dependencies.sh: all OK.说明安装成功可以继续
  6. 输入make开始编译,直到不报错完成!
  7. cd ../src/ # 返回src目录查看
  8. 在src目录下 ./configure --share 出现下面内容说明可以继续在这里插入图片描述
  9. 在src目录下 make depend,执行完成后继续make无报错出现Done,那么说明你tools编译成功!(请收下我的膝盖)在这里插入图片描述
  10. 用最简单的列子yesno进行验证 cd ../egs/yesno/s5
  11. ./run.sh #执行脚本,若你看到如下输出,说明kaldi各步骤均成功了(请再次收下我的膝盖)在这里插入图片描述
    当然,人生不可能永远一帆风顺,总会有意外,上面的理想操作也是,不论任何问题,尾着我这套步骤,准没错,尤其是结尾!

二、我的操作流程:

  1. 配置虚拟机网络,避免出现网络问题而使得make流程中断出现不可逆错误在这里插入图片描述
  2. 打开虚拟机进行配置
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    # 重启网络服务
  1. 进行swap分区(一定要做,除非你虚拟机RAM>8G)
    交换空间具体大小根据你实际RAM来操作,官方推荐swap分区大小设置如下:
    RAM SWAP
    RAM<=2G 2*RAM
    2G<RAM<8G RAM
    RAM >8G >=4G
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且永久生效
  1. 安装gcc-7.3.1
    gcc至关重要,千万不要直接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

至此,环境配置基本完成,下面开始真正的操作

  1. 拉取kaldi源码
    git clone https://gitee.com/mirrors/kaldi.git #国内镜像仓库
  2. 安装编译依赖库
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."

  1. 安装第三方工具
    这里很多人都直接使用make或者make -j 4单线程或者启用4个线程进行编译,在我在这折腾了好几天的经验来看,不要进行这样的操作,因为error无处不在,强烈建议使用下面的方式:
    补充 make -j 表示多线程编译,请与虚拟机核相对应,否则建议使用make
    在 kaldi/tools 目录下依次执行下列命令
make openfst -j 4 
make cub
make sph2pipe
extras/install_irstlm.sh		
extras/install_kaldi_lm.sh

全部无报错执行完成后再继续,否则执行make clean && yun clean all后继续上面操作.

  1. 编译kaldi
    先切到src目录 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

有什么问题欢迎留言探讨!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kaldi语音识别技术(一) ----- 搭建Kaldi环境 的相关文章

随机推荐

  • 大疆RoboMaster技术总监:我是如何成为一名机器人工程师的

    作者 大疆创新RoboMaster技术总监YY硕 前言 很多朋友私信问我对机器人和人工智能感兴趣 xff0c 该怎么展开学习 最近稍微有点空 xff0c 我写写我的看法 两年前 xff0c 我在知乎回答如何定义 机器人 xff1f YY硕的
  • mysql语言练习题

    教学管理数据库的三个基本表 S SNO SNAME SEX AGE SDEPT SC SNO CNO GRADE C CNO CNAME CDEPT TNAME 试用SQL查询语句表达下列查询 xff1a 1 查询 王志强 所授课程的课程号
  • C语言关键字以及-格式输入输出中“%d,%o,%x,%e,%f”等的含义

    32个关键字 xff1a 数据类型13个 xff1a void signed unsigned short long int float double char enum struct union typedef Bool Imaginar
  • Python制作游戏 — 贪吃蛇

    哈喽 xff0c 我是小圆 我又来分享关于python制作的小游戏啦 今天这个可是当年真正意义上的第一款手机游戏 贪吃蛇 ok xff0c 现在来讲解一下用python做这个游戏的所有步骤 xff0c 超详解说 xff01 据说是贪吃蛇游戏
  • 【下班神器】python写自动关机程序并打包成exe文件

    文章目录 前言实现效果实现步骤 x1f4bb 模块导入 x1f4bb 窗口设置 x1f4bb 创建一个文本标签 x1f4bb 创建一个文本标签和时间栏框 x1f4bb 设置该文件的字体样式和大小 x1f4bb 创建一个日期时间文本框 xff
  • 【Python案例】python批量采集下载dy视频

    嗨嗨 xff0c 大家好 我是小圆 有一说一 某yin里可是人美风景美啊 今天就来抓一抓某yin的小姐姐吧 环境使用 Python 3 8Pycharm谷歌浏览器谷歌驱动 模块使用 requests gt gt gt pip install
  • Python打包exe文件并换图标【最强版教程】

    嗨嗨 xff0c 大家好 xff0c 我是小圆 今天又想来分享一个Python打包exe文件的教程 这次是最强终极版 接下来请欣赏我的表演 Python打包exe可执行文件 xff0c 并给它换一个图标 首先把你的代码准备好 xff0c 尽
  • Python实现秒杀抢购某宝商品,不再害怕双十一抢不到了

    前言 马上就要双十一咯 xff0c 给你们展示一下我在618干的大事 xff0c 直接用Python抢购商品 今天就来分享给你们吧 这又快要到付尾款的日子咯 xff0c 有些哥们需要送礼物给对象的 xff0c 赶紧买这些预售的商品吧 xff
  • 用Python来表白,把情书写进她的照片里

    前言 这不已经十一月了 xff0c 22年马上就过完了 xff0c 各位兄弟有对象了吗 xff0c 现在就是缺钱还缺对象 退一步来说 xff0c 有心仪的人吗啊 xff0c 如果有的话 xff0c 看看这篇 程序员的表白小妙招吧 实现步骤
  • 用Python采集球员信息,成功预测到了球赛胜负?

    前言 嗨嗨 xff0c 最近看球赛的朋友多吗 emm怎么说 xff0c 我对这个虽然兴趣不是很大 但是还是想跟朋友赌赌 xff0c 自己对这些球员也不是很熟悉 xff0c 索性叫我的好同事帮我用Python采集了各国球员的一些信息 xff0
  • Python制作粒子烟花,提前开始跨年?

    前言 跨年倒计时20天 xff1f 我已经开始整烟花了 xff0c 虽然不是很好看吧 xff0c 但是也能将就看看 x1f625 这个的背景图 xff0c 音乐 xff0c 还有文字都是可以自己修改的哦 效果展示 导入库 span clas
  • 最简易的教程 -一篇文章教会你 用Python打包文件

    前言 嗨嗨 xff0c 好久不见 xff0c 我是 我叫 emmm你们好 我是一堆英文字母 xff08 名字乱打的不好yi shi xff09 看到文章的人多不多 xff0c 我不知道 xff0c 招呼我还是要打一个的 x1f44d 今天文
  • 10-26 查询成绩最高的前三名同学(MSSQL)

    本题目要求编写SQL语句 xff0c 查询 C语言 课程成绩最高的前三名同学 提示 xff1a MSSQLServer 评测SQL语句 表结构 请在这里写定义表结构的SQL语句 例如 xff1a 学生表 CREATE TABLE stu s
  • 如何用python代码,更改照片尺寸,以及更换照片底色

    前言 python浅浅替代ps xff1f 如何用代码来p证件照并且更换底色 xff1f 唉 xff0c 有个小姐姐给我扔了张照片 xff0c 叫我帮忙给她搞成证件照的尺寸还得换底色 xff0c 她说自己忙的很 可惜电脑上没有ps只有pyc
  • 五一回家没票?给你分享这个用Python制作出来的查票抢票脚本

    前言 有人想去武汉 xff0c 重庆 xff0c 成都玩的吗 xff0c 我五一想去 xff0c 但是奈何公司假期一直没有公布 xff0c 具体假期耶不知道几天 xff0c 结果今晚上知道了 xff0c 然后马上点开我的12306 xff0
  • 初学Python来用它制作一个简单的界面

    前言 很多刚开始学习python的宝子 xff0c 就想着自己开始琢磨一些界面 xff0c 但是吧很多都是有点难度的 xff0c 自己又琢磨不透 xff0c 只能把代码复制粘贴 43 运行 现在就带你们来了解一个制作简单界面的代码 ttkb
  • 拿到数据,如何用Python来做可视化分析?

    前言 很多朋友现在都是学校布置好作业 xff0c 有了爬下来的数据 xff0c 结果老师说需要做个数据分析 还能怎么办 xff0c 做啊 xff0c 都吩咐下来了 xff0c 只能上网搜搜搜 xff0c 这不今天就有个来找我的 x1f447
  • 解决安装import nonebot后报错importError问题

    一 问题描述 python3 9 12 执行 import nonebot 报错信息如下 xff1a Traceback span class token punctuation span most recent call last spa
  • 解决云服务器上go-cqhttp扫码登录QQ失败问题

    解决云服务器上go cqhttp扫码登录QQ失败问题 搭建环境 go cqhttp v1 0 0 rc1 nonebot V1 9 1 python 3 9 12 CentOs 7 6 本篇文章仅仅分享如何登录的问题 xff0c 当然对于Q
  • Kaldi语音识别技术(一) ----- 搭建Kaldi环境

    Kaldi语音识别技术 一 搭建Kaldi环境 从零开始搭建Kaldi环境 解决kaldi编译tools出错相关问题 破防了 最近入门语音识别相关的领域 用的kaldi 结果make的时候是各种报错 我用的操作环境是Vmware16 2 4