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)。

网络结构

Listen,Attend and Spell(LAS)论文阅读笔记

LAS在标签序列中不做独立假设,也不依赖于HMMs。LAS是基于注意力的Seq2Seq学习框架,它由编码器循环神经网络(RNN)和解码器循环神经网络(RNN)组成。Listener是一个金字塔形的RNN,它将低级的语音信号转换为高级的特征信号。speller是一个RNN,它通过注意机制指定字符序列上的概率分布,将这些高级特征转换成输出话语,Listener和Speller联合训练。

网络输入

滤波器组光谱特征( filter bank spectra features)的输入序列:x = (x1,……,xT )

网络输出

字符序列:y = (,y1,……,ys,)

目标函数

Listen,Attend and Spell(LAS)论文阅读笔记

模型结构

Listen

采用3层512个nodes的金字塔形BiLSTM(pBiLSTM)网络结构:
Listen,Attend and Spell(LAS)论文阅读笔记
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是由注意机制产生的:
Listen,Attend and Spell(LAS)论文阅读笔记
其中CharacterDistribution是一个softmax的MLP,RNN是一个两层的LSTM,ci封装了用以生成下一个字符的声学信号信息,AttentionContext生成上下文向量c。

Learning

无需pre-train,seq2seq模型基于前一个字符来预测下一个字符,并最大化log概率:
Listen,Attend and Spell(LAS)论文阅读笔记

Decoding & Rescoring

在推理过程中,通过最大化log概率找出输入声学中最有可能的字符序列:
Listen,Attend and Spell(LAS)论文阅读笔记
结合语言模型LM来消除短对话的偏差(bias),其中语言模型的权重设置为0.008:
Listen,Attend and Spell(LAS)论文阅读笔记

性能对比

Listen,Attend and Spell(LAS)论文阅读笔记

注意力可视化

Listen,Attend and Spell(LAS)论文阅读笔记

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