【2019.6.21】Ubuntu下Kaldi完整安装步骤以及初步跑通过程

2023-10-25 17:38

本文主要是介绍【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完整安装步骤以及初步跑通过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284133

相关文章

Flutter实现文字镂空效果的详细步骤

《Flutter实现文字镂空效果的详细步骤》:本文主要介绍如何使用Flutter实现文字镂空效果,包括创建基础应用结构、实现自定义绘制器、构建UI界面以及实现颜色选择按钮等步骤,并详细解析了混合模... 目录引言实现原理开始实现步骤1:创建基础应用结构步骤2:创建主屏幕步骤3:实现自定义绘制器步骤4:构建U

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Win安装MySQL8全过程

《Win安装MySQL8全过程》:本文主要介绍Win安装MySQL8全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Win安装mysql81、下载MySQL2、解压文件3、新建文件夹data,用于保存数据库数据文件4、在mysql根目录下新建文件my.ini

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据