Listen,Attend and Spell(LAS)论文阅读笔记
文章目录
简介
Listen,Attend and Spell(LAS)是一种学习将语音转换成字符的神经网络。与传统的dnn - hmm模型不同的是,LAS模型联合学习(jointly)语音识别器的所有组件。LAS系统有两个组件:一个监听器(Listener)和一个拼写器(Speller)。Listener是一个接受滤波器组谱作为输入的金字塔递归网络(pBiLSTM)编码器;speller是一种基于注意的周期性网络译码器,它将字符作为输出来发射,该网络生成字符序列时不做任何字符间的独立性假设。这是LAS较以往端到端CTC模型的关键改进。在谷歌语音搜索任务的一个子集上,LAS在没有字典或语言模型的情况下实现了14.1%的单词错误率(WER),而在有语言模型重评分的情况下,实现了10.3%的单词错误率(WER)。
网络结构
LAS在标签序列中不做独立假设,也不依赖于HMMs。LAS是基于注意力的Seq2Seq学习框架,它由编码器循环神经网络(RNN)和解码器循环神经网络(RNN)组成。Listener是一个金字塔形的RNN,它将低级的语音信号转换为高级的特征信号。speller是一个RNN,它通过注意机制指定字符序列上的概率分布,将这些高级特征转换成输出话语,Listener和Speller联合训练。
网络输入
滤波器组光谱特征( filter bank spectra features)的输入序列:x = (x1,……,xT )
网络输出
字符序列:y = (,y1,……,ys,)
目标函数
模型结构
Listen
采用3层512个nodes的金字塔形BiLSTM(pBiLSTM)网络结构:
Listen结构的好处:
1)时间分辨率(time resolution)减少8倍;
2)更方便注意力机制提取信息;
3)深层网络提供更好的非线性特征
Attend & Spell
采用基于注意力(attention-based)的LSTM Transducer。在每个输出步骤中,Transducer根据前面看到的所有字符生成下一个字符的概率分布。yi的分布是解码器状态si和上下文ci的函数。解码器状态si是先前的状态si-1,先前发出的字符yi-1和上下文ci-1的函数。语境向量ci是由注意机制产生的:
其中CharacterDistribution是一个softmax的MLP,RNN是一个两层的LSTM,ci封装了用以生成下一个字符的声学信号信息,AttentionContext生成上下文向量c。
Learning
无需pre-train,seq2seq模型基于前一个字符来预测下一个字符,并最大化log概率:
Decoding & Rescoring
在推理过程中,通过最大化log概率找出输入声学中最有可能的字符序列:
结合语言模型LM来消除短对话的偏差(bias),其中语言模型的权重设置为0.008:
性能对比
注意力可视化
paper与代码链接
paper链接:
https://arxiv.org/pdf/1508.01211.pdf
github链接:
https://github.com/jx1100370217/LAS_Tensorflow_jack.git
colab链接:
https://colab.research.google.com/drive/1uO3C3nUUbOMXDkGIIrWPt6idZsygiiNH#scrollTo=6msUKafD9R4C