热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

语音识别(ASR)系列之四:基于Attention的模型

基于Attention机制的语音识别模型,及各种

语音识别系列前三篇分别介绍了基本原理、混合模型、端到端模型中的CTC模型和Transducer模型。此篇是系列最后一篇,讲讲基于Attention机制(注意力机制)的端到端模型。


复习Attention

Attention机制毫不夸张地说是近几年机器学习中的大热门,热门的原因确实是因为它在各种场景中能提高模型的准确率。Attention本身的机制和结构不是本篇文章的重点,网上介绍的文章很多,我公众号之前也专门写了一篇文章介绍 ELMo、Attention、Transformer究竟在讲什么?


为方便理解本篇介绍的各种基于Attention的语音识别模型,对需要复习Attention的读者,我在此再系统列举一下当初提出Attention的基本论文和网上解释得最直观和系统的文章链接。最典型的Attention有两大类,一是Bahdanau等提出的用于机器翻译的Bahdanau Attention,二是Transformer模型中的Self-Attention

Bahdanau Attention:  

原始论文:https://arxiv.org/pdf/1409.0473.pdf

可视化解释:https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/ 

Transformer:

原始论文:Attention Is All You Needhttps://arxiv.org/abs/1706.03762

可视化解释:http://jalammar.github.io/illustrated-transformer/


回到主题,近5年基于Attention的语音识别模型相关论文众多,本篇主要列举有代表性的模型结构。很多模型只是在基本结构上做修改,或者训练时使用一些特定的技巧,不一一列举。为方便分类,把基于Bahdanau Attention的记为Attention#1,基于Transformer Self-Attention的记为Attention#2。


Attention#1:LAS

全称:Listen, Attend and Spell

论文:https://arxiv.org/pdf/1508.01211.pdf (2015年)

作者机构:Carnegie Mellon University, Google Brain

一句话总结模型结构:和Bahdanau Attention的seq-to-seq翻译模型结构一致

Listener:也就是encoder,接受语音数据,在传统seq-to-seq翻译模型上作修改,使用金字塔形的双向LSTM,可减少计算复杂度,加快训练收敛速度。

Attend and Spell: 也就是decoder,使用基于Attention的LSTM,把从encoder得到的信息解码为文本。


实验结果:

其中,CLDNN-HMM是DNN/HMM混合模型,LM Rescoring是加上语言模型,Sampling是训练中以一定概率从前面预测结果采样作为后续预测输入。从中可以看出,各种情况下性能都差于混合模型。


Attention#1:对LAS的改进

论文:https://arxiv.org/abs/1609.06773 (2017年)

作者机构:Carnegie Mellon University等

一句话总结模型结构:联合使用CTC和Attention

模型利用CTC和attention的优点,在encoder输出上加入CTC。损失函数是CTC和attention损失函数的加权和:

实验结果:

优于单独的CTC或者Attention。


Attention#2:标准Transformer

论文:http://150.162.46.34:8080/icassp2018/ICASSP18_USB/pdfs/0005884.pdf (2018年)

全称:Speech Transformer

作者机构:中科院自动化所,中科院大学

一句话总结模型结构:标准Transformer + 输入使用卷积网络(CNN)

实验结果:

和其他两个seq-to-seq性能相当,但没有和混合模型以及LAS模型比较。


Attention#2:对Transformer的改进

论文:https://arxiv.org/abs/1904.13377 (2019年)

作者机构:Carnegie Mellon University等

一句话总结模型结构:对Transformer结构做局部改进,另加一些技巧

具体改进:

1. 随机加入residual layer。

2. encoder层数多于decoder层数(实验证明有效)。

3. 加入正则化。


实验结果:

好于LSTM with attention(LAS),差于LSTM with LFMMI。


Attention#1&2:同时使用两种Attention

论文:https://arxiv.org/abs/1803.09519 (2018年)

作者机构:Karlsruhe Institute of Technology

                  Carnegie Mellon University

一句话总结模型结构:把LAS中encoder替换为Self-Attention

(a):原LAS中的encoder(第一个比较的baseline)

(b):另一论文对LAS中encoder的改进(第二个比较的baseline)

(c):本论文的enocer结构,使用Transformer Self-Attention

模型中使用的一些技巧:

1. 对每一Self-Attention改变形状进行降采样。

2. 尝试不同方法提供序列位置信息。

3. 对Attention加偏移量,从而限制Attention值。


实验结果:

pyramidal: 第一个baseline,LAS原始模型

LSTM/NiN: 第二个baseline

stacked/interleaved hybrid: 本论文两种不同位置信息算法,从结果看WER和原结构相当,只是计算度加快了。


结合之前介绍的CTC、Transducer模型,和本次基于Attention的模型, 已经囊括了目前端到端模型的全貌。它们之间的性能比较怎么样呢?


端到端模型总体比较一

论文:https://arxiv.org/abs/1707.07413(2017年)

作者机构:百度

实验在SWBD上测试,Transducer模型取得的结果最好。


端到端模型总体比较二

论文:https://pdfs.semanticscholar.org/6cc6/8e8adf34b580f3f37d1bd267ee701974edde.pdf (2019年)

作者机构:Google,Nvidia

此实验是在Google自己的一个测试集上做的。

1. Attention based(LAS)在4个模型中最好。

2. 没有加入Transformer比较。

3. Baseline是CTC+语言模型,4个模型均未加额外的语言模型。


总结

本文列举了具有代表性的基于Attention机制的语音识别基本模型,以及在其上的改进,同时总体比较了各种端到端模型的性能。从实验结果来看,没有一种模型结构能在各种测试集上都优于其他模型,具体选用还得根据实际情况。

到此,关于语音识别系列的文章告一段落。



推荐阅读
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 1Lock与ReadWriteLock1.1LockpublicinterfaceLock{voidlock();voidlockInterruptibl ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 完成字符串和时间对象的转化(DateFormat)、(以及日历Calendar用法)
    DateFormat 和SimpleDateFormat示例(时间格式的书写)packagecn.date;importjava.text.DateFormat;importjav ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有