1. 先看一下声学模型的三个要素
Q [ = q1 q2 ...qN ]:subphones 状态集合
A [ = a01a02 ...an1 ...ann ]:subphones 转移概率矩阵 A, Q 和 A 共同构成 发音字典 (pronunciation lexicon),一般 self-loop 和 到下一个 subphone 的概率设置为 0.25,0.75
B [ = bi(Ot) ]: 观察似然的集合,也叫做发射概率,[表示:给定 subphone 状态 i,对应倒谱特征向量的概率]
2. 训练方法
最简单的训练方法就是人工标注的孤立词训练,给定人工标注的数据库,直接通过训练数据就可以计算出“
Gaussians observation likelihoods ” B, 和 “transition probabilities ” A。
转移概率 A, 对应每个字,高斯,则在多个字含有共同音素时共享。
3. embedded 是什么含义
人工标注:一方面非常昂贵,另一方面 在标注比 phone 更不的 subphone 时,人工标注区分 subphone 边界很差,因此,语音识别训练中,常常是通过每一个 phone HMM 内嵌在整个句子中,作为训练中的一部分,进行自动对齐,整个声学模型训练的过程就叫做嵌入式训练。
4. 嵌入式训练过程
一般嵌入式训练总结一下共 4 步:
1)为每个句子构造 “句子级” HMM
2) 初始化自转与转下一状态的状态转移概率 A 0.5
3)初始化概率 B ( 用整个训练集的均值和方差代替每个高斯的均值和方差)。
4) 通过 Baum-Welch 算法多次迭代
5. 实际中并非使用 Baum-Welch 算法
由于 Baum-Welch 算法可以收敛于全局最优,但非常耗时,实际中,一般是使用 Viterbi 算法来加速,基于篱笆网络的特点,取前 N 条最优路径。因此也可称为 Viterbi 对齐或者强制对齐。
对齐在大概过程:左侧是对应 wav 的标注, 右侧是 wav
1) 左侧,标注通过发音字典转换为音素序列,以该音素序列整体得到 HMM。
2) 右侧,wav 特征提取,生成对应的特征向量。
3) 通过上述的训练算法多次迭代自动对齐。