DL/HMM 混合模型 [1-5] 是第一种在 ASR 上取得成功的深度学习架构,而且仍然是这一行业使用的主导模型。几年前,大多数混合系统都是基于 DNN 的。
但是,由于音素和语速的不同,语境信息的最优长度也可能各不相同。这说明像在 DNN/HMM 混合系统中一样使用固定长度的语境窗口(context window)可能并非利用语音信息的最佳选择。近几年,人们已经提出了一些可以更有效地利用可变长度语境信息的新模型。其中最重要的两个模型使用了深度 RNN 和 CNN。
A. 循环神经网络(RNN)
前馈 DNN 仅会考虑固定长度的帧的滑动窗口中的信息,因此无法利用语音信号中的长距离相关性。而 RNN 可以编码自己内部状态中的序列历史,因此有望基于截止当前帧所观察到的所有语音特征来预测音素。但不幸的是,纯粹的 RNN 难以训练。
为了克服这些问题,研究人员开发了长短期记忆(LSTM)RNN [23]。LSTM-RNN 使用输入门、输出门和遗忘门来控制信息流,使得梯度能在相对更长的时间跨度内稳定地传播。
为了得到更好的建模能力,一种流行的做法是将 LSTM 层堆叠起来 [8]。但带有太多 vanilla LSTM 层的 LSTM-RNN 非常难以训练,而且如果网络太深,还会有梯度消失问题。这个问题可以使用 highway LSTM 或 residual LSTM 解决。
在 highway LSTM [29] 中,相邻层的记忆单元通过门控的直接链路连接在一起,这为信息提供了一种在层之间更直接且不衰减地流动的路径。
residual LSTM [30,31] 在 LSTM 层之间使用了捷径连接(shortcut connection),因此也提供了一种缓解梯度消失问题的方法。
另外还有一种二维时频 LSTM(2-D, time-frequency (TF) LSTM)[35, 36],可以在时间和频率轴上对语音输入进行联合扫描,以对频谱时间扭曲(spectro-temporal warping)建模,然后再将其输出的激活(activation)用作传统的时间 LSTM 的输入。这种时间-频率联合建模能为上层的时间 LSTM 提供更好的规范化的特征。
网格 LSTM(Grid LSTM [38] )是一种将 LSTM 记忆单元排布成多维网格的通用 LSTM,可以被看作是一种将 LSTM 用于时间、频谱和空间计算的统一方法。
尽管双向 LSTM(BLSTM)通过使用过去和未来的语境信息能得到比单向 LSTM 更好的表现,但它们并不适合实时系统,因为这需要在观察到整个话语之后才能进行识别。因为这个原因,延迟受控 BLSTM(LC-BLSTM)[29] 和行卷积 BLSTM(RC-BLSTM)等模型被提了出来,这些模型构建了单向 LSTM 和 BLSTM 之间的桥梁。在这些模型中,前向 LSTM 还是保持原样。但反向 LSTM 会被替代——要么被带有最多 N 帧前瞻量的反向 LSTM(如 LC-BLSTM 的情况)替代,要么被集成了 N 帧前瞻量中的信息的行卷积替代。
B.卷积神经网络(CNN)
卷积神经网络(CNN)是另一种可以有效利用可变长度的语境信息的模型 [42],其核心是卷积运算(或卷积层)。
时延神经网络(time delay neural network/TDNN)是第一种为 ASR 使用多个 CNN 层的模型。这种模型在时间轴和频率轴上都应用了卷积运算。
继DNN 在 LVCSR 上的成功应用之后,CNN 又在 DL/HMM 混合模型架构下被重新引入。因为该混合模型中的 HMM 已经有很强的处理 ASR 中可变长度话语问题的能力了,所以重新引入 CNN 最初只是为了解决频率轴的多变性 [5,7,44,45]。其目标是提升稳健性,以应对不同说话人之间的声道长度差异。这些早期模型仅使用了一到两个 CNN 层,它们和其它全连接 DNN 层堆叠在一起。
后来,LSTM 等其它 RNN 层也被集成到了该模型中,从而形成了所谓的 CNN-LSTM-DNN (CLDNN) [10] 和 CNN-DNN-LSTM(CDL)架构。
研究者很快认识到处理可变长度的话语不同于利用可变长度的语境信息。TDNN 会沿频率轴和时间轴两者同时进行卷积,因此能够利用可变长度的语境信息。基于此,这种模型又得到了新的关注,但这一次是在 DL/HMM 混合架构之下 [13,47],并且出现了行卷积 [15] 和前馈序列记忆网络(feedforward sequential memory network/FSMN) [16] 等变体。
最近以来,主要受图像处理领域的成功的激励,研究者提出和评估了多种用于 ASR 的深度 CNN 架构 [14,17,46,48]。其前提是语谱图可以被看作是带有特定模式的图像,而有经验的人能够从中看出里面说的内容。在深度 CNN 中,每一个更高层都是更低层的一个窗口的非线性变换的加权和,因此可以覆盖更长的语境以及操作更抽象的模式。和有长延迟困扰的 BLSTM 不一样,深度 CNN 的延迟有限,而且如果可以控制计算成本,那就更加适用于实时系统。
为了加速计算,我们可以将整个话语看作是单张输入图像,因此可以复用中间计算结果。还不止这样,如果深度 CNN 的设计能保证每一层的步幅(stride)长到能覆盖整个核(kernel),比如基于逐层语境扩展和注意(layer-wise context expansion and attention/LACE)的 CNN [17]和dilated CNN [46],它仅需更少数量的层就能利用更长范围的信息,并且可以显著降低计算成本。