kaldi

第一阶段:./cmd.sh . ./path.sh(设置执行路径以及命令脚本名字)

kaldi_第1张图片

ps:decode 解码 train 训练


第二阶段:data preparation(数据准备阶段)

执行 local/ thchs-30_data_prep.sh

为了创建: wav.scp, utt2spk.scp, spk2utt.scp, text 还有words.txt phone.txt

kaldi_第2张图片

- 循环遍历thchs30/thchs30-openslr/data_thchs30/data/ 中 dev test train 3个文件夹内的wav 视频(6g视频) 获取它们的名字(如:C08_559 )

- 循环遍历thchs30/thchs30-openslr/data_thchs30/目录下的 data test train 3个文件夹内的wav 视频(6g视频) 获取.wav.trn

- 它们的名字(如:C08_559 ) 生成了 utt2spk, wav.scp 存放在egs/thchs30/s5/data/ 中 dev test train 3个文件夹

- 它们的.wav.trn 生成了phone.txt word.txt 存放在egs/thchs30/s5/data/ dev test train 3个文件夹

- utils包 utils/utt2spk_to_spk2utt.pl 利用 utt2spk 产生 spk2utt (两者排序不同而已) 存放在egs/thchs30/s5/data/ dev test train 3个文件夹

kaldi_第3张图片

上图为目录,下图为utt2spk(由上图数据生成下图数据)

kaldi_第4张图片

ps:C13与C14 是不同的讲话者

更多文件解释在:http://blog.csdn.net/dzp443366/article/details/54094950

第三阶段:产生的MFCC特征以及计算CMVN

MFCC就是语音特征提取

1. steps/make_mfcc.sh

2.steps/compute_cmvn_stats.sh

第四阶段:建立一个大的词汇,包括词的训练和解码

源码备注:(就是上述标题意思)

prepare language stuff

build a large lexicon that invovles words in both the training and decoding.

kaldi_第5张图片

查看两个生成文件语句,从resource包中复制dict文件夹到 项目中的data文件夹

看一下dict里面的文件 lexicon.txt 以及phones.txt

kaldi_第6张图片

上图为lexicon.txt

格式为: <词汇> <音素>


kaldi_第7张图片

上图为:nonsilence_phones.txt

格式为:全部音标

我们把这一步看作准备大量的素材,用于后续构造训练器。

第五阶段 算法训练

步骤为: 单音素训练, tri1三因素训练, trib2进行lda_mllt特征变换,trib3进行sat自然语言适应,trib4做quick

后面就是dnn了

这些操作的文件夹 是

- data/mfcc/train (mfcc模块)

- data/lang (语音模型)

- exp/mono_ali (mono:单音节训练)

- exp/exp/tril

你可能感兴趣的:(kaldi)