SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition

摘要

我们提出了SpecAugment,这是一种用于语音识别的简单数据增强方法。SpecAugment直接应用于神经网络的特征输入(即滤波器组系数)。增强策略包括对特征进行变形、遮蔽频道块和遮蔽时间步块。我们在端到端语音识别任务中将SpecAugment应用于Listen、Attend和Spell网络。我们在LibriSpeech 960h和Swichboard 300h任务上实现了最先进的性能,胜过了所有先前的工作。在LibriSpeech上,我们在测试集test-other上实现了6.8%的词错误率(WER),没有使用语言模型,通过与语言模型进行浅层融合,WER为5.8%。这与先前最先进的混合系统7.5%的WER相比。对于Switchboard,我们在Hub5'00测试集的Switchboard/CallHome部分上实现了7.2%/14.6%的WER,没有使用语言模型,在进行浅层融合后为6.8%/14.1%,这与先前最先进的混合系统8.3%/17.3%的WER相比。

1.引言

深度学习已成功应用于自动语音识别(ASR)[1],研究的主要重点是设计更好的网络架构,例如DNNs [2]、CNNs [3]、RNNs [4]和端到端模型 [5, 6, 7]。然而,这些模型往往容易过拟合,需要大量的训练数据 [8]

数据增强已被提出作为生成额外训练数据用于ASR的方法。例如,在[9, 10]中,为低资源语音识别任务增强了人工数据。声道长度归一化已在[11]中用于数据增强。在[12]中,通过将清晰音频与嘈杂音频信号叠加合成嘈杂音频。在[13]中,对原始音频进行速度扰动用于LVSCR任务。在[14]中,探讨了声学房间模拟器的使用。在[15, 16]中研究了关键词检测的数据增强。在训练多流ASR系统时采用了特征丢失 [17]。更一般地,学习的增强技术探索了不同的增强转换序列,在图像领域取得了最先进的性能 [18]

受到语音和视觉领域增强技术最近取得的成功的启发,我们提出了SpecAugment,这是一种对输入音频的log mel频谱图进行操作的增强方法,而不是直接对原始音频进行操作。这种方法简单且计算成本低,因为它直接作用于log mel频谱图,就像处理图像一样,并且不需要额外的数据。因此,我们能够在训练过程中在线应用SpecAugment。SpecAugment包括对log mel频谱图的三种变形。第一种是时间扭曲,即在时间方向对时间序列进行变形。另外两种增强方法受到计算机视觉[19]领域中提出的“Cutout”启发,分别是时间遮罩和频率遮罩,其中我们遮蔽一块连续的时间步长或mel频率通道。

这种方法虽然基础,但非常有效,使我们能够训练端到端的自动语音识别网络,称为Listen Attend and Spell (LAS)[6],超越更复杂的混合系统,在LibriSpeech上取得最先进的结果,甚至在没有使用语言模型(LMs)的情况下也能做到。在LibriSpeech上[20],我们在测试干净集上实现了2.8%的词错误率(WER),在测试其他集上实现了6.8%的WER,而没有使用LM。通过与在LibriSpeech LM语料库上训练的LM进行浅融合[21],我们能够提高性能(在测试干净集上的WER为2.5%,在测试其他集上的WER为5.8%),相对于测试其他集,我们的性能提高了22%。在Switchboard 300h(LDC97S62)[22]上,我们在Hub5’00(LDC2002S09、LDC2003T02)测试集的Switchboard部分获得了7.2%的WER,在CallHome部分获得了14.6%的WER,而没有使用LM。通过与在Switchboard和Fisher(LDC200{4,5}T19)[23]语料库的组合文本上训练的LM进行浅融合,我们在Switchboard/Callhome部分获得了6.8%/14.1%的WER。

2.增强策略

我们的目标是构建一个作用于对数梅尔频谱图的增强策略,从而帮助网络学习有用的特征。受到这一目标的启发,即这些特征应该对时间方向上的变形、部分频率信息丢失以及语音小片段的部分丢失具有鲁棒性,我们选择了以下变形来构成一个策略。

  1. 时间扭曲通过tensorflow的sparse image warp函数实现。给定一个具有τ个时间步长的log mel频谱图,我们将其视为一幅图像,其中时间轴是水平的,频率轴是垂直的。在图像中通过中心点的水平线上,在时间步长(W,τ−W)内选择一个随机点,将其沿该线左右扭曲一个距离w,距离w在0到时间扭曲参数W的均匀分布中选择。我们在边界上固定了六个锚点——四个角点和垂直边缘的中点。
  2. 频率遮罩被应用,以便遮蔽f个连续的mel频率通道[f0,f0 + f),其中f首先从0到频率遮罩参数F的均匀分布中选择,f0从[0, ν − f)中选择。这里ν是mel频率通道的数量。
  3. 时间遮罩被应用,以便遮蔽t个连续的时间步长[t0,t0 + t),其中t首先从0到时间遮罩参数T的均匀分布中选择,t0从[0,τ − t)中选择。我们引入了一个时间遮罩的上限,以便时间遮罩不能超过时间步长的n倍。

图1显示了应用于单个输入的各种增强示例。log mel频谱图被标准化为零均值,因此将遮蔽值设置为零相当于将其设置为均值。我们可以考虑应用多个频率和时间遮罩的策略。这些多重遮罩可能会重叠。

我们可以考虑采用多频率和时间掩模的策略。这些多个掩模可能会重叠。在本工作中,我们主要考虑一系列手工制定的策略,包括LibriSpeech基础版(LB)、LibriSpeech双倍版(LD)、Switchboard轻度版(SM)和Switchboard强度版(SS),它们的参数总结在表1中。在图2中,我们展示了一个使用LB和LD策略增强的对数梅尔频谱图的示例。

3.方法

我们在语音识别任务中使用Listen, Attend and Spell (LAS)网络[6]。这些模型是端到端的,训练起来比较简单,并且具有良好记录的基准测试[24, 25],我们可以借鉴这些基准测试结果来获得我们的结果。在本节中,我们回顾LAS网络,并引入一些标记来对其进行参数化。我们还介绍了用于训练网络的学习率调度,因为它们最终是决定性能的重要因素。最后,我们回顾了浅层融合[21],我们已经使用它来整合语言模型,以进一步提高性能。

3.1 LAS网络结构

我们使用Listen, Attend and Spell (LAS)网络[6]进行端到端语音识别,参考了[25]中的研究,其中我们使用记法LAS-d-w。输入的log mel频谱图通过一个具有最大池化和步长为2的2层卷积神经网络(CNN)进行处理。CNN的输出通过一个编码器,该编码器由d个堆叠的双向LSTM组成,每个LSTM的细胞大小为w,产生一系列注意力向量。这些注意力向量被馈送到一个具有细胞维度w的2层RNN解码器中,用于生成转录的标记。文本使用Word Piece Model (WPM) [26]进行分词,LibriSpeech使用16k词汇量的WPM,Switchboard使用1k词汇量的WPM。对于LibriSpeech 960h,WPM是使用训练集的转录构建的。对于Switchboard 300h任务,训练集的转录与Fisher语料库的转录合并以构建WPM。最终的转录结果是通过束搜索(beam search)获得,束大小为8。与[25]进行比较时,我们注意到他们的“large model”在我们的记法中是LAS-4-1024。

3.2学习率调度

学习率调度在确定语音识别网络性能时起着重要作用,尤其是在使用数据增强时更为重要。在这里,我们引入了两种训练调度的目的。首先,我们使用这些调度来验证较长的调度是否提高了网络的最终性能,特别是在使用数据增强时(见表2)。其次,基于此,我们引入了非常长的调度,用于最大化网络的性能。

我们使用学习率调度,其中我们逐渐增加学习率,保持一段时间,然后按指数衰减,直到达到最大值的1/100。在此之后,学习率保持不变。这个调度由三个时间戳(s_r,s_i,s_f)参数化,分别代表从零学习率完成的增加阶段,指数衰减开始的阶段,以及指数衰减结束的阶段。

在我们的实验中还有另外两个因素引入了时间尺度。首先,我们在步骤s_{noise}启用了标准差为0.075的变分权重噪声[27],并在整个训练过程中保持不变。权重噪声是在学习率的高平台期间(s_r,s_i)引入的。

其次,我们引入了不确定性为0.1的均匀标签平滑[28],即正确的类别标签被赋予0.9的置信度,而其他标签的置信度相应增加。正如后面再次评论的那样,标签平滑可能会使较小的学习率的训练不稳定,因此我们有时选择只在训练开始时打开它,并在学习率开始衰减时关闭。

我们使用的两种基本计划如下:

1. 基本计划(B):(s_r, s_{noise}, s_i, s_f) = (0.5k, 10k, 20k, 80k)
2. 双倍计划(D):(s_r, s_{noise}, s_i, s_f) = (1k, 20k, 40k, 160k)

正如在第5节中进一步讨论的那样,我们可以通过使用更长的计划来提高已训练网络的性能。因此,我们引入以下计划:
3. 长计划(L):(s_r, s_{noise}, s_i, s_f) = (1k, 20k, 140k, 320k),我们使用它来训练最大的模型以提高性能。
在使用长计划(L)时,对于 LibriSpeech 960h,我们在时间步骤 < s_i= 140k 时引入了不确定性为0.1的标签平滑,然后将其关闭。对于 Switchboard 300h,标签平滑在整个训练过程中都保持开启状态。

3.3浅融合与语言模型

虽然我们能够通过数据增强获得最先进的结果,但通过使用语言模型,我们可以进一步提高性能。因此,我们通过浅融合为两个任务引入了一个RNN语言模型。在浅融合中,解码过程中的“下一个标记”y^*由以下公式确定:

y^*=argmax(logP(y|x)+\lambda logP_{LM}(y))

即通过同时对使用基础ASR模型和语言模型评分的标记进行打分来确定y^*。我们还使用了覆盖惩罚c[29]

对于 LibriSpeech,我们使用了一个在LM中使用的嵌入维度为1024的双层RNN,该模型在LibriSpeech LM语料库上进行训练。我们在整个过程中使用了与[25]中相同的融合参数(λ = 0.35和c = 0.05)。

对于 Switchboard,我们使用了一个在 Fisher 和 Switchboard 数据集的合并转录上训练的嵌入维度为256的双层RNN。我们通过在RT-03(LDC2007S10)上测量性能来通过网格搜索找到融合参数。我们将在第4.2节中讨论各个实验中使用的融合参数。

4.实验

在本节中,我们描述了在LibriSpeech和Switchboard上使用SpecAugment进行的实验。我们报告了最先进的结果,这些结果胜过了经过精心设计的混合系统。

4.1 LibriSpeech

对于LibriSpeech,我们采用了与[25]相同的设置,其中我们使用了80维的滤波器组合,包括delta和delta-delta加速度,以及一个16k词片模型[26]

LAS-4-1024、LAS-6-1024和LAS-6-1280这三个网络是在LibriSpeech 960h上训练的,采用了一组增强策略(None、LB、LD)和训练计划(B/D)。在这些实验中没有使用标签平滑技术。实验采用了峰值学习率为0.001和批量大小为512,在32个Google Cloud TPU芯片上运行了7天。除了增强策略和学习率计划,所有其他超参数都固定,没有进行额外的调整。我们在表2中报告了由dev-other集验证的测试集数据。我们发现增强策略始终能够提高训练网络的性能,并且更严格的增强策略下,较大网络和更长的学习率计划的好处更加明显。

我们选择最大的网络LAS-6-1280,并使用计划L(训练时间约为24天)和策略LD来训练网络以最大化性能。我们在时间步<140k时打开了标签平滑技术,如前所述。通过评估具有最佳dev-other性能的检查点,报告了测试集性能。即使没有语言模型,LAS-6-1280模型也取得了最先进的性能。我们可以通过浅融合引入语言模型来进一步提高性能。结果见表3

4.2 Switchboard

对于Switchboard 300h,我们使用Kaldi [40]的“s5c”配方来处理我们的数据,但我们改变了配方,使用了80维的滤波器组合,包括delta和delta-delta加速度。我们使用一个1k WPM [26]来对输出进行分词,该分词是使用Switchboard和Fisher语料库的结合词汇构建而成的。

我们使用策略(None、SM、SS)和计划B来训练LAS-4-1024。与之前一样,我们将峰值学习率设置为0.001,总批量大小设置为512,并使用32个Google Cloud TPU芯片进行训练。这里的实验有和没有标签平滑两种情况。由于没有一个规范的开发集,我们选择在训练计划的最后一个检查点进行评估,我们选择将计划B的步骤设为100k。我们注意到,在衰减计划完成后(步骤sf),训练曲线会放松,网络的性能变化不大。表4展示了Switchboard 300h的各种增强策略在有无标签平滑的情况下的性能。我们可以看到,标签平滑和增强对于这个语料库具有累加效果。

与LibriSpeech 960h一样,我们使用计划L(训练时间约为24天)在Switchboard 300h训练集上训练LAS-6-1280,以获得最先进的性能。在这种情况下,我们发现在整个训练过程中打开标签平滑有利于最终性能。我们报告了在训练时间结束时(340k步)的性能。我们在表5中将我们的结果与其他工作放在一起进行展示。我们还使用在Fisher-Switchboard上训练的语言模型进行浅融合,其融合参数是通过在RT-03语料库上评估性能得到的。与LibriSpeech的情况不同,融合参数在不同训练的网络之间不能很好地传递——表5中的三个条目分别是通过使用融合参数(λ,c)=(0.3,0.05)、(0.2,0.0125)和(0.1,0.025)获得的。

5.讨论

时间扭曲对于提高性能有一定贡献,但并不是主要因素。表6中,我们分别呈现了三个训练结果,其中关闭了时间扭曲、时间屏蔽和频率屏蔽。我们可以看到,尽管时间扭曲的效果很小,但仍然存在。在本文讨论的增强方法中,时间扭曲既是最昂贵的,又是影响最小的,所以在任何预算限制下,应该首先取消时间扭曲增强。

标签平滑会引入训练的不稳定性。我们注意到,当在LibriSpeech中应用增强时,使用标签平滑会导致不稳定的训练次数比例增加。当学习速率被衰减时,这一现象更加明显,因此我们在LibriSpeech训练中引入了一个标签平滑计划,其中标签只在学习速率计划的初始阶段进行平滑处理。
增强将过拟合问题转化为欠拟合问题。图3中网络的训练曲线可以观察到,当网络在增强训练集上训练时,不仅对损失和词错误率欠拟合,而且在训练集本身上也出现了欠拟合现象。这与通常情况下网络倾向于对训练数据过拟合的情况形成鲜明对比。这是使用增强训练的主要好处,如下所解释的那样。

解决欠拟合的常见方法带来了改进。通过采用标准方法缓解欠拟合问题——扩大网络规模和延长训练时间,我们能够在性能上取得显著进展。当前报告的性能是通过递归过程获得的,首先应用严格的增强策略,然后扩展更宽、更深的网络,并使用更长的训练计划来解决欠拟合问题。

相关工作的评论。我们注意到,在CNN声学模型的研究中曾对类似频率屏蔽的增强进行了研究[49]。在其中,相邻频率块被预先分组成箱,每个小批量随机地将其中一些频率置零。另一方面,SpecAugment中的频率屏蔽的大小和位置选择是随机的,对于每个小批量输入都不同。有关在谱图中结构上省略频率数据的更多想法已在文献中讨论过[50]

6.结论

SpecAugment极大地提高了语音识别网络的性能。通过使用简单手工制定的策略增强训练集,我们能够在端到端LAS网络上获得LibriSpeech 960h和Switchboard 300h任务的最新成果,甚至在没有语言模型的帮助下超越混合系统的性能。SpecAugment将ASR从过拟合问题转变为欠拟合问题,我们能够通过使用更大的网络和更长时间的训练来提高性能。

致谢:我们要感谢Yuan Cao、Ciprian Chelba、Kazuki Irie、Ye Jia、Anjuli Kannan、Patrick Nguyen、Vijay Peddinti、Rohit Prabhavalkar、Yonghui Wu和Shuyuan Zhang的有益讨论。我们还要感谢György Kovács介绍给我们文献[49, 50]的工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SQL】601. 体育馆的人流量(with as 临时表;id减去row_number()思路)

前述 知识点学习&#xff1a; with as 和临时表的使用12、关于临时表和with as子查询部分 题目描述 leetcode题目&#xff1a;601. 体育馆的人流量 思路 关键&#xff1a;如何确定id是连续的三行或更多行记录 方法一&#xff1a; 多次连表&#xff0c;筛选查询方法二&…

vulhub中Weblogic SSRF漏洞复现

Weblogic中存在一个SSRF漏洞&#xff0c;利用该漏洞可以发送任意HTTP请求&#xff0c;进而攻击内网中redis、fastcgi等脆弱组件。 访问http://your-ip:7001/uddiexplorer/&#xff0c;无需登录即可查看uddiexplorer应用。 SSRF漏洞测试 SSRF漏洞存在于http://your-ip:7001/ud…

Python分支结构

我们刚开始写的Python代码都是一条一条语句顺序执行&#xff0c;这种代码结构通常称之为顺序结构。 然而仅有顺序结构并不能解决所有的问题&#xff0c;比如我们设计一个游戏&#xff0c;游戏第一关的通关条件是玩家在一分钟内跑完全程&#xff0c;那么在完成本局游戏后&#x…

js实现导出/下载excel文件

js实现导出/下载excel文件 // response 为导出接口返回数据&#xff0c;如上图 const exportExcel (response, fileName:string) >{const blob new Blob([response.data], {type: response.headers[content-type] //使用获取的excel格式});const downloadElement documen…

mysql5.6---windows和linux安装教程和忘记密码怎么办

一、windows安装 1.完成解压 解压完成之后将其放到你喜欢的地址当中去&#xff0c;这里我默认放在了D盘&#xff0c;这是我的根目录 2.配置环境变量 我的电脑->属性->高级->环境变量->系统变量 选择PATH,在其后面添加: (注意自己的安装地址) D:\mysql-5.6.49…

数据结构:图的存储与遍历(待续)

图&#xff08;Graph&#xff09;是一种较线性表和树更为复杂的非线性结构。在图结构中&#xff0c;对结点&#xff08;图中常称为顶点&#xff09;的前驱和后继个数不加限制&#xff0c; 即结点之间的关系是任意的。 一、基本概念和一般结论 因为一条边关联两个顶点&#xff0…

12---风扇电路设计

视频链接 风扇硬件电路设计01_哔哩哔哩_bilibili 风扇电路设计 1、风扇简介 电脑风扇又称为散热风扇&#xff0c;一般用于散热。提供给散热器和机箱使用。市面上一般的散热风扇尺寸大小由直径2.5cm到30cm都有&#xff0c;厚度由6mm到76mm都有&#xff0c;而根据不同运作要求…

抽样算法——【数据科学与工程算法基础】

一、前言 这是课程的第二章节——抽样算法&#xff0c;主要分为三类。 详情可参考&#xff1a; 数据科学的算法基础——学习记录跳转中心 二、正篇 1.系统抽样 课本只介绍了最简单的——等距抽样。 直线等距抽样&#xff08;Nn*k&#xff09;&#xff1a;即总体个数可以被抽…

JAVA实战开源项目:学生日常行为评分管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.2.1 登录注册模块2.2.2 用户管理模块2.2.3 评分项目模块2.2.4 评分数据模块2.2.5 数据字典模块 2.3 可行性设计2.4 用例设计2.5 数据库设计2.5.1 整体 E-R 图2.5.2 用户2.5.3 评分项目2.5.4 评分数据2.5.…

弹性盒子布局 Flexbox Layout

可以嵌套下去 1.display 属性 默认行排列 <style>.flex-item{ height: 20px;width: 10px;background-color: #f1f1f1;margin: 10px;}</style> </head> <body> <div class"flex-container"><div class"flex-item">1&l…

功能测试转自动化测试好不好转型?

手工测试做了好多年&#xff0c;点点点成了每天必须做的事情。但是随着自动化测试趋势的日渐明显&#xff0c;以及受到薪资、技能的双重考验&#xff0c;掌握自动化测试成为了必备技能。 手工转自动化测试&#xff0c;不是一蹴而就的。“预先善其事&#xff0c;必先利其器”&a…

C++:2024/3/11

作业1&#xff1a;编程 要求&#xff1a;提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 代码&#xff1a; #include <iostream>using namespace std;int main() {string str;cout << "请输入一个字…

linux查看文件内容cat,less,vi,vim

学习记录 目录 catlessvi vim cat 输出 FILE 文件的全部内容 $ cat [OPTION] FILE示例 输出 file.txt 的全部内容 $ cat file.txt查看 file1.txt 与 file2.txt 连接后的内容 $ cat file1.txt file2.txt为什么名字叫 cat&#xff1f; 当然和猫咪没有关系。 cat 这里是 co…

一款功率电子开关TP6062

一、基本概述 The TP606X is a low voltage,single P-MOSFET high-side power switch, optimized for self-powered and bus-powered Universal Serial Bus (USB) applications. This switch operates with inputs ranging from 2.4V to 5.5V, making it ideal for both 3V a…

封装方法3-2

八大数据类型一次只能代表一个&#xff0c;所以不能作为返回值&#xff0c; 数组可以做为返回值&#xff0c;把excel的内容2行11列当作数组&#xff0c;存在二维数据里 处理ecxel-22个单元值的返回结果写什么&#xff1f; 1、认识二维数组是什么&#xff1f; 数 组&#xff…

Ping工作原理

文章目录 目的ping网络协议 OSIICMP什么是ICMP作用功能报文类型查询报文类型差错报文类型ICMP 在 IPv4 和 IPv6 的封装ICMP 在 IPv4 协议中的封装ICMP 在 IPv6 协议中的封装ICMP 头部日常ping 排除步骤ping 查询报文使用code扩展目的 本文主要是梳理ping的工作原理- 揭开 ICMP…

C++初学

1>思维导图 2>试编程 提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数要求使用C风格字符串完成 #include <iostream> #include<string.h> using namespace std;int main() {string str;cout <<…

Hive-源码分析一条hql的执行过程

一、源码下载 下面是hive官方源码下载地址&#xff0c;我下载的是hive-3.1.3&#xff0c;那就一起来看下吧 https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-src.tar.gz 二、上下文 <Hive-源码带你看hive命令背后都做了什么>博客中已经讲到了hive命令执行…

网络工程师笔记11

OSPF协议 priority越大越优先&#xff0c;缺省值是1&#xff0c;范围是0-255 routerID越大越优先&#xff0c;先比较优先值&#xff0c;后比较RouterID 非骨干区域必须要跟骨干区域相连&#xff0c;非骨干区域不能直接通信&#xff0c;必须经过骨干区域 OSPF配置 配置routerID划…

20240308-使用VS2022编译VLD-v2.5.4内存泄漏工具

20240308-使用VS2022编译VLD-v2.5.4内存泄漏工具 一、软件环境 Win10 x64 22h2 JuneVS2022 v17.9.0GIT v2.29.2标签&#xff1a;win10 22h2 vs2022分栏&#xff1a;C 二、硬件环境 Win10 x64的PC台式机 三、获取源码 方法一 git clone https://gitee.com/gdnh22/vld254.…