kaldi——用shellscript(bash)制作yesno的recipe(一)

本文的内容是我最近的学习心得,可能有不正之处,欢迎指教,另外可能以后会更新

要看懂以下内容,首先你得会一些基本的shellscript(bash)语言,另外你得看得懂英文(补一句听来的名言:英文差的程序员不是好的程序员)。

 

先从kaldi的安装说起吧

一,kaldi的安装与编译

首先cd到安装的目录下

cd  /wangyu        #wangyu是我建的一个文件夹

然后安装kaldi

git clone https://github.com/kaldi-asr/kaldi.git kaldi –origin upstream

安装完成后,进入安装目录,首先编译kaldi工具

cd wangyu/kaldi/tools

tools下面有说明文件,名叫 INSTALL,当然其他文件夹下一般也有。可以打开这个安装说明文件,按照它的说明进行安装。先检查依存的工具是否具备。

在tools下的extras下有个scipt,名叫check_dependencies.sh,这个script就是干这个事的,直接执行。

extras/check_dependencies.sh

它会提示你还缺什么工具,缺什么就安装什么。因为每个人的环境等都不一样,所以却缺的工具不同,根据它的提示都安装好,然后再运行一次,直到提示信息是:All is ok!

然后编译

make -j 8

8是并行处理时使用的cpu核数,根据自己的cpu进行配置,核数越多编译越快。

完成后,进入src文件夹,进行配置,这个文件夹也有一个安装说明 INSTALL,可以查看,根据步骤安装。

cd wangyu/kaldi/src

运行配置文件

./configure 

 这个时候可能会弹出一些信息,比如我的python时python3,所以需要指定默认使用python3,等之类的信息,根据自己的信息,把这些配置信息补全。

完成后,然后依次运行以下两条命令进行编译

make depend -j 8
make -j 8

完成后,它会提示你,统计语言模型工具包IRSTLM,kaldi默认不安装,需要自己下载安装。这儿,我们安装另外一个工具包SRILM。

首先再官网上下载,下载过程有点麻烦,需要注册信息。

我下载的文件叫做 srilm-1.7.2.tar.gz,然后将它移动到tools下,同时改一个名字(最好改一下名字,不然你接下来要在安装script里面修改一下代码)。

mv srilm-1.7.2.tar.gz tools/srilm.tgz

tools下有一个script,叫做 install_srilm.sh,它就是用来安装这个包的,直接运行就好了

tools/install_srilm.sh

完成后,会生成几条 path 信息,这就是这个工具包的 path,你记不住没关系,这些信息保存在tools下的env.sh文件里面,这个path文件挺重要,要使用srilm工具的话就要导入这个path信息。

好了,以上就安装完成。

下面,检查一下是否安装成功。

kaldi下有一个egs文件下,这个文件夹下,保存着很多作为学习参考用的语音识别系统,有中文的 thchs30 (清华大学开发),日语的 csj(东京工业大学开发,我们研究室新人学习就是使用的这个)等,大部分的都是英文的,你也可以在这建一个自己的语音识别的系统,根据不同的识别任务,所开发的识别系统也各种各样。

比如,我要开发一个自己的语音识别的系统,我使用了一些自己收集到的语音数据,然后使用kaldi提供的工具,比如mfcc特征提取工具等,这个就类似,我要炒菜,现在有了食材,有了锅菜刀等工具,不同的料理有不同的制作方法,我们把这个叫做菜谱,很形象地,kaldi里把这个叫做 recipe,这就需要搭建识别系统的你来写了,一般来说,这个script 叫做 run.sh

下面以一个非常简单的识别系统为例,叫做打开 egs文件下,找到yesno这个文件夹,进入,有一个叫做 s5 的文件夹,以及一个关于这个语音识别系统的说明文件 README,可以读一下。

好了,进入正题。进入s5文件夹,当然下面有一下其他的文件夹和文件,不懂没关系。先找到这个run.sh 然后运行它

cd kaldi/egs/yesno/s5 && bash run.sh

然后这个系统就开始运转了:下载数据,准备数据,准备词典,准备声学模型,准备语言模型,提取MFCC特征,训练模型,制图,测试。

最后弹出一个

%WER:0.00

的东西,就表示这个系统已经正常运转,平且对于测试语音数据的识别结果的 WER(word error rate)为0,表示100%正确。

注:WER是评估语音识别系统性能的通用标准,它的计算公式如下

参考正解:A B C D E F G

识别结果:A V C    E F H G

其中,

置换错误一处:B>V

遗漏错误一处:D>

插入错误一处:  >H

所以词错误率:%WER= (1+1+1)/ 7 = 0.43 左右

关于WER,我的了解暂时还不多,以后再补充

你可能感兴趣的:(软件安装,AI)