Kaldi(A0)安装

简介

Kaldi是什么大家百度一下就知道了。大概就是一堆语音识别和处理有关的程序包啦。里面各个例子的.sh脚本也是来系统地执行这些程序来得到最终结果的,所以如果我们想要利用这些程序搭建自己的一个语音识别或者语音识别相关的程序,或是想要研究其内部算法是怎么实现语音识别的,可以来学习一下它。

自己的学习路径

首先是看了一下语音识别的原理,然后了解到了传统的HMM-GMM模型,并研究Kaldi的sh脚本,研究它各个阶段是做什么的;接着阅读到Kaldi的Online Decoder之后我终于开窍了,sh脚本只是来调用一些可执行程序的,所以后面就开始修改这些可执行程序的源码来为自己的项目所用。当然了,看sh脚本都蒙蔽,修改C++源码更是蒙蔽了,所以这一部分涉及到在Windows平台上使用VS编译调试Kaldi。最终,投入到项目中,这一部分涉及到把Kaldi的功能移植到Android平台。

Ref

  • Kaldi官网 http://kaldi-asr.org/doc/index.html 包括一大堆原理和工具的使用说明,有什么问题请首先看这个。
  • Kaldi Lecture http://www.danielpovey.com/kaldi-lectures.html 相比于上一个会给一个更简略的原理、流程介绍。
  • Kaldi中文翻译1 如果感觉英语读起来比较头疼的话建议搜一下这个来看看,是对官网上文件的翻译。这个文档来源于一个学习交流Kaldi的QQ群。
  • Kaldi中文翻译2 https://shiweipku.gitbooks.io/chinese-doc-of-kaldi/content/index.html
  • 《语音识别实践》俞栋 大概是唯一能get到的中文参考书籍了吧- -涉及到初步的原理介绍。

1、Kaldi运行环境

Linux, Windows均可,在这里国产的Deepin和Ubuntu都试过,Deepin用起来软件多一些,安装比较友好。
Windows下编译调试请参考另外一篇文章。

Linux安装

使用UltraISO制作Ubuntu的U盘,使用Deepin自带的软件制作安装U盘。
安装分区教程
主要是分区挂载的问题,包括/,/home,SWAP,Boot分区等。

Kaldi(A0)安装_第1张图片
分区信息

2、Kaldi代码下载

安装git后运行

git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk --origin golden

速度过慢可以参考
github下载提速
通过http://git.oschina.net/离线下载的方式

git clone https://gitee.com/cocoon_zz/kaldi.git kaldi-trunk --origin golden

3、Kaldi编译及测试

如何安装参考下载好的目录内INSTALL文件

This is the official Kaldi INSTALL. Look also at INSTALL.md for the git mirror installation.
[for native Windows install, see windows/INSTALL]

(1)
go to tools/  and follow INSTALL instructions there.

(2)
go to src/ and follow INSTALL instructions there.

出现问题首先查看各个目录下面的INSTALL文件,有些配置的问题(例如gcc的版本以及CUDA等)都可以查看该文档进行解决。

依赖文件编译

首先检查依赖项

cd extras
sudo bash check_dependencies.sh

注意make -j4可以多进程进行

cd kaldi-trunk/tools
make

配置Kaldi源码

cd ../src
#如果没有GPU请查阅configure,设置不使用CUDA
./configure --shared

编译Kaldi源码

make all
#注意在这里有可能关于CUDA的编译不成功,原因是configure脚本没有正确的找出CUDA的位置,需要手动编辑configure查找的路径,修改CUDA库的位置

测试安装是否成功

cd ../egs/yesno/s5
./run.sh

Kaldi(A0)安装_第2张图片
安装成功效果图

解码的结果放置在 exp目录(export)下,例如我们查看一下
~/kaldi-bak/egs/yesno/s5/exp/mono0a/log$ vim align.38.1.log
yesno结果

这里面0,1就分别代表说的是no还是yes啦。

你可能感兴趣的:(Kaldi(A0)安装)