论文解读:对端到端语音识别网络的两种全新探索

时间:2024-05-20 22:14:19

云从科技基于端到端的语音识别网络进行了两种方法的探索,一种是基于原有的 CNN-RNN-CTC 网络的改进,一种是基于 CTC loss 与 attention loss 结合机制的网络。下面是对这两种方法的详细解读。

1、CASCADED CNN-RESBILSTM-CTC: AN END-TO-END ACOUSTIC MODEL FOR SPEECH RECOGNITION

地址:https://arxiv.org/abs/1810.12001

作者基于百度之前提出的 Deep Speech 2 的模型框架结构,提出了三个改进的点。

第一是把循环神经网络中的长短时记忆层(LSTM)变成了双向的残差长短时记忆层(resBiLSTM)。此举可以更好地保留之前卷积神经网络所提取出的音素信息和之后每一个双向的残差长短时记忆层更好的结合。因为循环神经网络中的每一层主要是负责提取句子中的语义信息,但语义信息的理解也和音素信息紧密相关。随着循环神经网络的深入,原本更底层的层很难接收到卷积神经网络所给出的信息,对于复杂的长句子中音素和语义信息的结合较差,新提出的残差网络可以较好地修正这一问题。

第二点是引入了级联的训练结构,即对于第一个网络中难分(分错)的样本进行二次训练。在实验中我们发现,在第一层网络结构中被分错的样本比全部的样本的平均句长多出了 11% 以上。随着句子的变长,强语法和语义相关的单词会距离更远,那么对于较浅的循环神经网络来说就会更难捕捉到这一个信息。在发现这一区别后,作者在在第二层的级联结构中使用了更深的循环神经网络 (7 层到 13 层),但同时缩减了每一层的隐含节点数(对应样本量的减少,防止出现复杂模型的过拟合问题)。下图是对这两点改进后具体的模型图。

论文解读:对端到端语音识别网络的两种全新探索

最后一点,是作者提出了新的训练方式来提升训练速度。深度学习中的模型一般都会采用随机梯度下降的方式来训练,每一次只训练其实其中一批数据(mini batch)。原来的训练模式是固定批量的大小从一而终。但是对于语音识别这样的问题来说,输入的数据是不定长的,这就会导致训练时,每一批和每一批的数据中最长的那一条是不一样的。为了防止训练时内存溢出,固定批量的方式必然需要迁就数据集中最长的那一个音频。在我们的训练数据集中,最长的音频是最短的音频的 10 倍左右,这样就会带来在训练短音频时的内存浪费。作者提出一种对全部训练集从低到高排序的方式,每次取排序后的一批音频,之后根据批次内最长的音频片段来实时调整批量的大小,从而提升内存利用率并使得训练时间下降了约 25%。在 LibriSpeech 960 小时的训练数据集上,利用在 8 块 1080Ti 上训练一次的时间从 24500 秒降到 18400 秒左右,减少 25%。且此方法并未因排序失去数据选取的随机性而显得效果变差。

作者在前处理上仍旧采用传统简单的快速傅里叶变换(FFT)来提取频谱特征输入改进后的深度学习网络,并采取了基于统计的 N 元组语言模型来对模型输出的文本进行解码和修正。选取这两种方法的原因是处理简单且不需要经过复杂的训练。作者提出的语音模型配合简单的前后处理机制仍旧可以取得很好的效果,更进一步证明了语音模型的优势。最终,在语音识别数据集 Librispeech 上,取得了 3.41% 的错词率。

论文解读:对端到端语音识别网络的两种全新探索

2、AN IMPROVED HYBRID CTC-ATTENTION MODEL FOR SPEECH RECOGNITION

地址:https://arxiv.org/abs/1810.12020

目前比较流行的端到端的语音识别模型主要包括:单独依赖 CTC 解码的模型,单独依赖 attention 解码的模型,以及混合 CTC 与 attention 共同解码的模型。纯 CTC 解码通过预测每个帧的输出来识别语音,算法的实现基于假设每帧的解码保持彼此独立,因而缺乏解码过程中前后语音特征之间的联系,比较依赖语言模型的修正。纯 attention 解码过程则与输入语音的帧的顺序无关,每个解码单元是通过前一单元的解码结果与整体语音特征来生成当前的结果,解码过程忽略了语音的单调时序性。为了兼顾两种方法的优缺点,作者采用混合解码的框架模型。网络结构是卷积层加 BiLSTM 层的 Encoder 结构后分别连接基于 Attention 以及 CTC 的 Decoder 结构,由两种解码器共同输出识别结果。

论文解读:对端到端语音识别网络的两种全新探索

混合模型的 Loss 计算是 CTC-Loss 与 Attention-Loss 做权重相加。作者在实验中发现,在混合模型中 CTC 权重越低效果会越好。当把 CTC-Loss 的权重降低时,整体网络在计算反向梯度时由 Attention 部分得到的梯度会占主要部分,这样的结果就是网络优先朝着优化 Attention 解码的方向进行参数调整,最后训练得到的 CTC 解码效果就相对较差。考虑这一点,作者在 CTC 解码器部分单独增加了一个 BiLSTM 层,该层不与 Attention 部分共享,单独依靠 CTC-Loss 的反向梯度进行优化,从而弥补了 CTC 权重低带来的不足,使 Attention 解码效果最优的情况下尽可能提升 CTC 部分的效果。

在本文中,作者使用了基于子词(subword)的编解码方式。子词是介于字母与单词之间的一种表征方式。由于英文单词中的常常出现不发音的字母,在不同单词中相同字母的发音也千差万别,这就给基于字母的编解码模型带来了不小的麻烦,这种模型也更需要依赖语言模型的修正。基于单词的模型则只能解码出参与训练的已有标签的单词,因而完全无法解决 OOV 的问题。将文本按照子词分割开来,就可以同时改善以上两种方法中存在的问题。另一方面,作者为了网络更好的适应对子词的解码,使用了 smoothing-attention 的方法:

论文解读:对端到端语音识别网络的两种全新探索

通常的 attention 方法(包括本文使用的 Loc-Aware)在计算 attention energy 中会使用 softmax,这样使得 attention 得分的分布变得比较尖锐,最终从 attention 得到的特征会集中在某一帧的位置上。和字母级别的解码相比,子词需要相对更宽的上下文特征。作者将 attention 中的 softmax 改为 sigmoid,使 attention 得分的分布变得相对平滑,从而使解码器每个 LSTM 单元的输入特征包含更多的语音上下文特征信息。

最后,作者使用基于 14600 本书的 Librispeech 公开语言模型扩充数据集训练了两层 LSTM 作为语言模型(LM),在语音识别数据集 Librispeech 上,取得了目前已公开的端到端语音识别网络中的最好效果。目前 Espnet 在 github 的模型,使用该扩充语言模型数据集训练的 LM 后在 test-clean 的表现为 WER=4.0%。相比之下,作者的方法效果提升 16.5%。

论文解读:对端到端语音识别网络的两种全新探索