一、利用可变长度上下文信息的声学模型
DL/HMM混合模型是ASR中成功的第一个深度学习体系,仍然是工业中使用的主流模型。DL/HMM够利用上下文信息是其优越性能的一个重要因素。在大多数系统中,9~13帧的窗口(overlap 4~6帧)的特征用作DNN的输入,以利用来自相邻帧的信息以提高精度。
最优的上下文长度是受语速和音调影响的,因此需要变长的上下文信息。
A. RNNs
前馈DNNS只考虑固定长度滑动窗口中的信息,因此不能利用语音信号中的长距离的相关性。而RNNs能够记录历史状态,因此能根据之前的记忆对当前进行预测。
time-frequency LSTM同时对时域和频域扫描,
由于Bi-LSTM需要处理反向的依赖,所以需要整句话说完才能进行依赖关系的处理,因此无法用于实时识别。
因此提出如下两种改进的LSTM:
- 时延控制LSTM(LC-BLSTM):最多有N个帧的前瞻
- 行卷积LSTM(RC-BLSTM):集成了前向N帧中的信息
选择恰当的N能够平衡实时性与时延。
B. CNNs
- CLDNN
- TDNN
- CDL
二、CTC 声学模型总结
1. CTC对数据有什么要求?
CTC要求训练数据量必须要大,因为CTC不是对逐帧进行标注,而是对整个序列,需要更多的信息来训练网络。
2. CTC和CE相比有什么优势?
- 在数据量足够大的时候,引入上下文依赖的输出单元的CTC效果要比CE好;
- 由于CTC的输出单元一般是音素或者是大于音素级别的,因此CTC可以采用更大的步长。假设原来以10ms作为一帧,现在将3个10ms的语音帧进行stack输入CTC,这样做的话,评价模型准确度,以及解码时会比原来快3倍;
3. CTC对字符进行预测的优势:
- 更加的端到端,能够省去词典的构建,去掉了专家知识对系统的影响;
- 对于带有口音的语音更加健壮,因为直接预测字符受音素发音影响更小;
- 还有人研究了比字符级别大,但是比词级别小的输出单元;
4. CTC基本输出单元的确定,Gram-CTC能够学习目标序列的合适的分解:
Gram-CTC是基于字符的,但允许在每个时间步长输出可变数量的字符;这不仅提高了建模的灵活性,还提高了最终ASR系统的精度。
5. CTC对word预测,如何处理OOV:
- 以词作为CTC基本输出单元,难以处理未登录词OOV;结合字符级CTC,在word-based CTC产生OOV时,调用char-based CTC对该片段进行预测;
- 在训练时,通过将OOV分解成频繁的单词和字符的混合单元序列;在测试时,使用greedy search来在一步中生成假设,而不需要使用两阶段处理;
6. CTC训练技巧:
为了避免网络初始化不好的问题,可以先将训练数据分为短句【易训】和长句【难训】,先用短句对模型进行训练,然后用长句对模型进行训练,之后,随机选择样本对模型进行训练;能显著提高CTC收敛的效果。
7. CTC解码优化:
CTC输出的序列中,大部分都是blank标签;对blank标签进行搜索是多余的,因此提出了Phone Synchronous Decoding,即,在CTC解码过程中,不搜索blank段来加速解码过程。获得了2~3倍的加速,同时没有准确度的损失。
8. CTC延时效应:
CTC预测的label相比于label真实的位置会滞后一些,因此CTC无法处理实时的问题。有人提出限制前向-后向搜索时路径的数目来降低延迟,效果不明显。
9. CTC帧独立假设:
CTC的帧与帧之间独立假设受到了很大的质疑。有几种尝试通过放宽或消除这样的假设来改进CTC,Attention。
最近受到CTC的启发,lattice-free maximum mutual information (LFMMI) 训练CTC。
AM发展主线:DNN – LSTM – CTC