最近自动语音识别从hybrid-model到i端到端的模型变得比较火。目前有三个做这样研究的比较火,第一个是RNN-T,recurrent neural network transducer。RNN attention-based encoder-decoder (AED), 和 Transformer-AED
一 受欢迎的端到端模型
简短介绍一下E2E模型:RNN-T,RNN-AED,以及transformer-AED。这些模型有声学encoder来生成higfh level 表示。声学encoder可以一致,但是decoder的话,RNN-T和AED是不同的,RNN-T生成下一个label取决于上一个的输出,但是AED同时需要下一次的输出。更重要的是RNN-T工作在帧同步的方式,但是AED采用的是label同步。
1.1 RNN transducer
encoder和预测网络通常使用RNN实现。encoder网络能够转化声学特征X1:T到一个high level的表示Henc 1:T。同时decoder是一个预测网络,通过消耗之前的非空白目标yu−1产生一个高级表示hu-pre。联合网络是一个前馈网络,它将编码器网络输出henct和预测网络输出hpreu相结合,生成联合矩阵ht,u,用于计算软最大输出。这里的t表示时间指数。
1.2 attention-based encoder and decoder
RNN-T由于streaming特性而受到业界更多的关注,而基于注意力的编码解码器(AED)模型因其强大的注意力结构而吸引了学术界更多的研究。RNN-AED和transforemer-AED分别在使用LSTM-RNN和transformer实现编码器和解码器方面存在差异。
注意力增强解码器的操作方式如下所示:
h dec u = LSTM(cu, yu−1, hdec u−1).
而这里的cu是通过编码器输出的加权组合得到的上下文向量。cu应该包含发射下一个令牌所需的声学信息。它是利用注意机制进行计算的。
二. Our model
2.1 model building block
E2E模型的编码器和解码器被构建为本节中描述的多个构建块的堆栈。对于使用LSTM-RNN的模型,我们探索了两种结构。第一个是LSTMcuDNN,直接调用NvidiacuDNN库进行LSTM实现。我们通过连接一个cuDNN的LSTM层来构建每个块,一个线性投影层来减少模型的大小,然后是LN。调用NvidiacuDNN实现使我们能够快速实验地比较不同的模型。
第二种结构,LSTMCustom,将LN和投影层放在LSTM中,,它们对于更好的RNN-T模型训练很重要。因此,我们只通过定制LSTM函数来对RNN-T使用这个结构。然而,这使模型的训练速度减慢了50%。
对于transformer-AED模型,我们去掉位置嵌入部分,使用类VGG卷积模块在transformer块之前对语音特征x1:T进行预处理。将LN置于多头注意层(Pre-LN)之前,这使得梯度在训练的早期阶段表现良好。
我们通过在编码器中添加双向性来实现RNN-T中的非流媒体行为。该RNN-T的编码器由多个双向LSTMcuDNN的数据块组成。利用LSTMcuDNN的多个单向块实现了预测网络。与RNN-T类似,本研究中研究的非流RNN-AED也在编码器中使用多个双向LSTMcuDNN,在解码器中使用单向LSTMcuDNN。这个解码器与一个位置感知一起工作。RNN-AED不使用多任务训练或与CTC联合解码。
流式RNN-T模型具有单向编码器。虽然我们直接将标准LSTM作为LSTMcuDNN或LSTMcu自定义的构建块,但将未来的上下文合并到编码器结构中可以显著提高ASR的准确性。然而,探索未来的上下文框架和层的轨迹结构不同,在本研究中,我们建议只使用上下文建模。我们这样做是为了保存模型参数。