4-Embedded Training
在《GMM-HMMs语音识别系统-训练篇》中,默认的训练数据都是进行了手工音素标记的。然而手工分段的数据非常昂贵,400倍于数据时间 (1小时的语音,需要400小时的标记时间),同时手工标记时很难找准音素边界。实际上,语音识别系统在训练每个phone HMM时,是嵌入到整个句子(对整个句子训练),让训练程序自动地找到分割和对齐音素。这种完全自动的声学模型训练方式就被称为Embedded Training。
如下图。一串数字的Transcription通过Lexicon和预先定义隐马尔科夫模型,被建立起这串语音的phone HMMs(Raw HMM);同时这串数字语音也被分帧并提取特征值为Feature Vectors。接下来,交由Baum-Welch算法就能自动地训练好我们的HMM。
整个过程相当于在原有的phone-labeled基础上,把下图的phone states状态扩充为sentence states。即Raw HMM作为下图的纵轴,Feature Vectors作为下图的横轴。(这点应该不难想象)
所以embedde training procedure如下:
(给定:phoneset,lexicon和the transcribed wavefiles)
1. 建立整个句子的HMM
2. a flat start:
- A矩阵初始化;forward和self-loop转移概率设为0.5,其余设为0
- B矩阵初始化;gaussian均值和方差用整个训练样本的均值、方差表示
3. 应用Baum-Welch算法多次迭代,直至收敛
不过Baum-Welch算法是耗时的(time-consuming),实际训练中会利用到Viterbi算法。在Viterbi Training中,我们不用去对所有path求和,而只需选择Viterbi (most-probable) path。这种使用到Viterbi算法的训练方式常被称为force Viterbi alignment或者force alignment。这里force alignment比Viterbi decoding算法要简单,因为单词序列已经知道了,所以只需要计算出正确的状态序列。
同时,这种embedded training也被应用在HMM/MLP或HMM/SVM这样的hybrid HMM系统中。