Attention在语音识别中的应用(2)
来源:互联网 发布:百姓网发帖软件 编辑:程序博客网 时间:2024/06/06 04:41
上一篇文章介绍了Attention机制在语音识别和MNT中的应用,由于上篇文章篇幅较长,所以分出本章对Attention进行继续介绍。
接下里会介绍2篇文章。
第一篇为William Chan 等人在2015年8月份提出的比较经典的Listen, Attend and Spell[1],
其中Encoder RNN 别名为listener,Decoder RNN别名为speller
listener具体架构为一个金字塔RNN结构,用来把低维的语音信号转成高维的特征,其中金字塔RNN加速了训练收敛的速度。
speller为RNN结构,借助于Attention机制,把高维的特征转成对应的文本句子。其架构如下所示:
其输入x为40-dimensional log-mel filter bank features,输出y为英文字符和标点,空格等字符。
其中Attention计算方式和上一篇中的计算方式一样,公式中的Ci即代表上一篇中的glimpse Gi
Decoder略有区别,为MLP加softmax输出,如下所示:
而s的计算方式和上一篇介绍相同,通过RNN得到,si依赖si-1,yi-1和ci-1,都是依赖上一个step i-1的权重
模型识别率如下所示:
下图中对句子的长短的错误率进行了展示,
可以看到句子太短(字数在5个字以内),或者句子太长(超过16个字),识别率都不是很好
这也印证了,上文中提到的Attention的自身局限性。
第二篇也是William Chan 等人在2016年9月份interspeech-2016的文章[2],
该文章直接用Attention来做中文拼音的预测,不需要解码器,不需要语言模型的情况下,实时预测,并取得了不错的成绩,
最重要的是该篇文章的思路给接下来的研究指明了方向。
架构如下图所示:
其中w为带窗口的Encoder的隐藏层h序列,其Encoder也为金字塔RNN,如下图所示
其架构与上面的一样,Attention数学表达如下:
可以看出与上面的计算方式相同,输出状态s的数学表达如下:
也于上文一致,其输出y表达如下所示:
其WSJ数据集识别率如下表所示:
比CTC下降了5个点,在中文字符+拼音识别率如下:
CER为59.3%,错误率颇高,
但是在WSJ数据集合上识别率较CTC模型相差不多。
该篇文章入选InterSpeech2016理由应该是用Attention模型给无解码器和语言模型做在线实时语音识别做了一个方向的指引
以上2章对Attention在语音识别的应用做了总结和梳理,接下来会对Attention的更多应用进行关注和整理。
[1]Listen, Attend and Spell
[2]On Online Attention-based Speech Recognition andJoint Mandarin Character-Pinyin Training
- Attention在语音识别中的应用(2)
- Attention在语音识别中的应用(1)
- Bayes在语音识别中的实际应用
- HMM在语音识别中的应用
- 中英文语音合成与中文语音识别技术在c#中的应用(2)
- 语音合成与识别技术在C#中的应用
- 语音合成与识别技术在C#中的应用
- 中文语音识别技术在C#中的应用
- Hmm在语音识别中的应用(一)
- HMM及其在语音识别中的若干应用(一)
- 中英文语音合成与中文语音识别技术在c#中的应用(一)
- 中英文语音合成与中文语音识别技术在c#中的应用(二)
- 中英文语音合成与中文语音识别技术在c#中的应用(一)
- 中英文语音合成与中文语音识别技术在c#中的应用(二)
- 中英文语音合成与中文语音识别技术在c#中的应用
- [转]中英文语音合成与中文语音识别技术在c#中的应用(一)
- [转]中英文语音合成与中文语音识别技术在c#中的应用(二)
- 中英文语音合成与中文语音识别技术在c#中的应用(1)
- Learn C++第一章:基本概念(什么是c++?)
- Unity 访问组件(三)
- json格式字符串用jquery.parseJSON()出现的问题 Uncaught SyntaxError: Unexpected token ' Uncaught SyntaxError: Une
- 如何将搜索框上次的搜索条件固定
- 求一个数的二进制表示方法(1305 P102)
- Attention在语音识别中的应用(2)
- GotFocus\SetFocus\LostFocus区别
- Unity AndroidStudio和Unity交互
- [转载]Android之Notification的多种用法
- C_栈和队列(ADT)-队列的非循环(带头指针)顺序表示和实现
- 一些看起来还不错的前端界面
- 单点登录的实现方式
- STM32的CAN总线的接收双FIFO使用方法
- matlab绘图使用