第一阶段:./cmd.sh . ./path.sh(设置执行路径以及命令脚本名字)
ps:decode 解码 train 训练
第二阶段:data preparation(数据准备阶段)
执行 local/ thchs-30_data_prep.sh
为了创建: wav.scp, utt2spk.scp, spk2utt.scp, text 还有words.txt phone.txt
- 循环遍历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个文件夹
上图为目录,下图为utt2spk(由上图数据生成下图数据)
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.
查看两个生成文件语句,从resource包中复制dict文件夹到 项目中的data文件夹
看一下dict里面的文件 lexicon.txt 以及phones.txt
上图为lexicon.txt
格式为: <词汇> <音素>
上图为: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
参考文献:https://blog.csdn.net/dzp443366/article/details/54094018