红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

性能超越经典 ASR 模型:谷歌重磅推出全新语音识别数据增强方法

  • 2019-04-28
  • 本文字数:5651 字

    阅读完需:约 19 分钟

性能超越经典ASR模型:谷歌重磅推出全新语音识别数据增强方法

自动语音识别(ASR)是一种将音频输入转换成文本的技术,目前基于深度学习的 ASR 系统往往面临数据量不足的挑战。Google Brain 团队最新推出的 SpecAugment,是一种简单的 ASR 数据增强方法。该方法从视觉角度出发,对音频频谱图进行数据增强。该方法简单、计算量小,且不需要额外的数据,并且能有效提高 ASR 网络的表现性能,在 LibriSpeech 960h 测试集上达到了 5.8%的字错误率(结合语言模型),Switchboard 300h 测试集上达到了 6.8%的字错误率(结合语言模型),均达到了目前最先进的表现水平。本文是 AI 前线第 77 篇论文导读。

介绍

自动语音识别(ASR)是一种将音频输入转换成文本的技术,深度神经网络的发展推动了 ASR 的进步。ASR 在许多现代设备和产品中都有应用,如谷歌助手、谷歌主页和 YouTube。目前 ASR 的主流研究方向依然是设计更好的 ASR 网络结构。然而传统的 ASR 模型包含许多参数,当训练集的数量不足或不够全面时,模型往往会过度拟合训练数据,从而难以泛化到新数据上。


图像分类领域,缺乏足够数量的训练数据时,可以通过数据增强来增加数据的有效数量,能够显著提高深度神经网络的性能。在语音识别中,数据增强方法通常指以某种方式对训练的音频波形进行变形(例如加速或减速),或添加背景噪声。这种方法能够有效地扩大数据集,因为在训练过程中,单个输入的多个增强版本也被输入到网络中。并且驱使网络学习相关特征,让网络变得更鲁棒。然而,现有的传统方法在增强音频数据的同时也带来了额外的计算成本,有时甚至还需要额外的数据。


在 Google Brain 团队最新的论文《SpecAugment:一种简单的语音自动识别数据增强方法》中,作者采用一种新的方法来增强音频数据,即将其视为视觉问题而不是音频问题。与传统的方法中增加输入音频波形不同的是,SpecAugment 直接将增强策略应用于音频频谱图(即波形的图像表示)。该方法简单、计算量小,且不需要额外的数据。并且该方法能有效提高 ASR 网络的性能,在 ASR 任务LibriSpeech 960hSwitchboard 300h数据集上达到了目前最先进的表现性能。

SpecAugment

在传统的 ASR 中,音频波形通常被编码为视觉表示,例如频谱图(spectrogram),然后作为网络的输入训练数据。训练数据的增强通常在波形音频转换成频谱图之前,因此在每次迭代之后,都需要生成新的频谱图。在新方法中,作者研究了增强频谱图本身的方法,而不是增强波形数据。由于该增强直接应用于网络的输入特征,因此可以在训练期间在线运行,而不会对训练速度造成严重影响。


图1 在输入网络之前,音频波形往往先转化成视觉表示(log梅尔谱图)。


图 1 在输入网络之前,音频波形往往先转化成视觉表示(log 梅尔谱图)。


作者的目标是设计一种能直接作用于 log 梅尔谱图的数据增强策略,帮助网络学习到有用的特征。这些特征需要对时间方向上的变形、频率信息的部分损失以及语音片段的部分损失鲁棒,因此我们选择以下三种变形来组成 SpecAugment:


1. 时间变形,通过 tensorflow 的 sparse_image_warp 函数实现。给定一个时间步长为τ的对数梅尔谱图,我们将其视为一张图像,时间轴为水平维度,频率轴为垂直维度。对于时间步长为(W,τ-W)的图像,穿过图像中心水平线的某个随机点经变形后,处在其左或其右距离为 w 的位置,w 是从[0,W]的均匀分布中选择的数字。W 为时间变形参数。


2. 频率掩膜(Frequency masking),对 f 个连续的梅尔频率通道[f,f0+f) 应用掩膜,f 是从[0, F]均匀分布中选择得到,F 为频率掩膜参数,f0 从[0, v-f)中选择得到,v 代表梅尔频率通道的数量。


3. 时间掩膜(Time masking),对 t 个连续的时间步长[t0, t0+t)应用掩膜,t 从[0, T]的均匀分布中选择的数字,T 为时间掩膜参数,t0 从[0, τ-f)中选择。


图 2 给出了增强策略的示意图:


图2 通过时间方向上的变形、连续时间步长(垂直方向)和梅尔频率通道(水平方向)的mask分块,对log梅尔频谱进行增强。频谱中被mask的部分显示为紫色。


图 2 通过时间方向上的变形、连续时间步长(垂直方向)和梅尔频率通道(水平方向)的 mask 分块,对 log 梅尔频谱进行增强。频谱中被 mask 的部分显示为紫色。


图 3 给出了对单独输入进行单独增强的示意图:


图3 从上到下分别为未经增强的基本输入的对数梅尔频谱图,以及经过时间变形、频率掩膜和时间掩膜增强后的对数梅尔频谱图。


图 3 从上到下分别为未经增强的基本输入的对数梅尔频谱图,以及经过时间变形、频率掩膜和时间掩膜增强后的对数梅尔频谱图。


当增强策略包含多个频率和时间 mask 时,多个 mask 可能会互相覆盖。因此,作者考虑了一些手动增强的策略:LibriSpeech basic (LB),LibriSpeech double (LD),Switchboard mild (SM)和 Switchboard strong (SS),参数总结如表 1:


表1 增强策略的参数。mF和mT表示频率mask和时间mask的数量。


表 1 增强策略的参数。mF 和 mT 表示频率 mask 和时间 mask 的数量。


图 4 给出了一个使用 LB 和 LD 增强的对数梅尔谱图示例:


图4 从上到下分别为:基础输入、LB增强和LD增强的对数梅尔谱图。


图 4 从上到下分别为:基础输入、LB 增强和 LD 增强的对数梅尔谱图。

测试模型

1. LAS 网络模型

作者使用Listen, Attend and Spell (LAS)网络作为 ASR 任务的模型,记为 LAS-d-w。输入的对数梅尔谱图经过 2 层卷积网络,得到的输出经过有 d 个堆栈的双向 LSTM 编码器,LSTM 单元大小为 w,产生注意力矢量(attention vector)。随后,注意力矢量输入 2 层 RNN 解码器,单元维度为 w,生成文本的词块(token)。通过单词量为 16k 的 LibriSpeech 和 1k 的 Switchboard 数据集,采用 Word Piece Model(WPM)对文本进行词块化。LibriSpeech 960h 的 WPM 用训练集的文本构建,Switchboard 300h 的 WPM 由训练文本和 Fisher 语料库中的文本构建。最终的文本通过束搜索得到。

2. 学习率策略

学习率是决定 ASR 网络表现的一个重要因素。论文中研究学习率策略有两个目标,一是验证较长的策略有助于提升网络最终的表现,二是引入非常长的学习率策略,能够最大化网络的表现性能。


在实验中,学习率策略包括提升、保持和指数衰减三个阶段。这三个阶段由三个时间节点定义(sr,si,sf)。除此之外,实验中还有另外两个参数控制时间尺度。第一个是在节点 snoise 处打开变分加权噪声,第二个是均匀标签平滑。标签平滑在学习率较小时会影响网络的稳定性,因此只在训练开始时加入标签平滑,在学习率开始衰减时取消该操作。


文中使用的两个基本策略如下:


1. B(asic): (sr, snoise, si, sf)=(0.5k, 10k, 20k, 80k)


2. D(ouble): (sr, snoise, si, sf)=(1k, 20k, 40k, 160k)


可以通过使用更长的训练策略提升训练网络的表现:


3. L(ong): (sr, snoise, si, sf)=(1k, 20k, 140k, 320k)

3. 与语言模型的浅聚合

尽管通过数据增强,网络可以取得最好的表现性能,但是可以利用语言模型进一步提升网络的表现。作者通过浅聚合将一个 RNN 语言模型整合入两个任务中。在浅聚合中,解码过程中的“下一词块(token)” y*由下式得到:



即使用基础 ASR 模型和语言模型对词块进行联合打分。

实验结果

1. LibriSpeech 960h

为了测试 SpecAugment 的增强效果,作者在 LibriSpeech 数据集上进行了实验。作者采用了三种 Listen, Attend and Spell (LAS)网络作为 ASR 任务的模型:LAS-4-1024、LAS-6-1024 和 LAS-6-1280,利用增强策略(无、LB、LD)和训练策略(B/D)的组合在 LibriSpeech 960h 数据集上训练。


ASR 网络的表现由网络生成的文本和目标文本之间的字错误率(Word Error Rate,WER)衡量。网络的所有参数都保持一致,只有输入网络的数据有所改变。表 2 给出了在 test-clean 和 test-other(含噪声)测试集上的测试结果。实验表明,SpecAugment 持续提升了网络表现性能,并且数据增强的程度越高时,较大的模型和较长的学习率策略的好处越明显。


表2 不同网络、训练策略、增强策略在LibriSpeech测试集上的字错误率


表 2 不同网络、训练策略、增强策略在 LibriSpeech 测试集上的字错误率


图5 网络在LibriSpeech测试集的表现性能对比图,蓝色为经过增强的数据输入,黄色为未经过增强的数据输入。LibriSpeech测试集包含两部分,test-clean和test-other,后者的音频数据包含更多的噪声。


图 5 网络在 LibriSpeech 测试集的表现性能对比图,蓝色为经过增强的数据输入,黄色为未经过增强的数据输入。LibriSpeech 测试集包含两部分,test-clean 和 test-other,后者的音频数据包含更多的噪声。


 作者采用最大的网络LAS-6-1280、学习率策略L和增强策略LD来训练网络,最大化网络的表现性能。即使没有语言模型,LAS-6-1280也能达到最先进的表现。并且可以采用浅聚合加入语言模型,进一步提升表现。实验结果如表3所示:


表3 LibriSpeech 960h字错误率


表 3 LibriSpeech 960h 字错误率

2. Switchboard 300h

在该数据集上,作者采用 LAS-4-1024 网络结构,增强策略分别为无、SM、SS 和学习率策略 B。表 4 给出了采用不同的数据增强策略、有无标签平滑的网络在 Switchboard 300h 数据集上的实验结果。从表 4 中可以看出标签平滑和数据增强在该语料库上具有额外的效果。


表4 Switchboard 300h字错误率,不使用语言模型。


表 4 Switchboard 300h 字错误率,不使用语言模型。


 同样,采用网络LAS-6-1280、学习率策略L来最大化模型性能。在这种设置下,在整个训练过程中均采用标签平滑有助于网络最后的表现,同时加入了在Fisher- Switchboard语料库上训练的语言模型。表5给出了实验结果对比:


表5 Switchboard 300h字错误率


表 5 Switchboard 300h 字错误率

3.最优结果

通过增加网络大小、训练时间,该数据增强方法可以在 LibriSpeech 960h 和 Switchboard 300h 上取得目前最好的效果:


表6 LibriSpeech 960h和Switchboard 300h任务上之前SOTA(state-of-the-art)的字错误率对比


表 6 LibriSpeech 960h 和 Switchboard 300h 任务上之前 SOTA(state-of-the-art)的字错误率对比


该数据增强方案虽然方法简单,但是效果很强大,能够提高端到端 LAS 网络的性能,让它超越经典的 ASR 模型。



图 6 不同类型的网络在 LibriSpeech 960h 和 Switchboard 300h 任务上的表现。

讨论

1.时间变形有用,但不是提升表现的主要原因

表 7 给出了分别去除时间变形、时间掩膜和频率掩膜情况下的训练结果。时间变形的效果虽然小,但还是有的。因此在计算成本受限的情况下,时间变形作为影响最小,但成本最高的策略,应该首先被丢弃。


表7 不同增强策略在测试集上的字错误率对比


表 7 不同增强策略在测试集上的字错误率对比

2.数据增强使过拟合问题转化为欠拟合问题

SpecAugment 通过故意提供损坏的数据来防止网络过拟合。下图展示了网络在训练集和测试集的 WER 是如何随训练过程变化的。


图7 网络经过数据增强和未经数据增强在训练、test-clean、test-other数据集上的表现对比


图 7 网络经过数据增强和未经数据增强在训练、test-clean、test-other 数据集上的表现对比


可以看出,如果不进行数据增强,网络在训练集上的性能近乎完美,而在 test-clean 和 test-other 的测试集上的性能则会大打折扣。另一方面,经过数据扩充,网络很难在训练集上取得完美表现,但是在 test-clean 数据集上表现得更好,并且在 test-other 数据集上取得了与之相当的表现。这表明网络不再过度拟合训练数据,提高训练性能将带来更好的测试性能。

3.常用的欠拟合问题解决方法可以提升网络性能

解决欠拟合有两个标准方法:更大的网络和更长的训练时间,从而在表现性能上取得显著的进步。当前给出的实验结果是通过不断应用增强策略获得的,然后可以建立更宽、更深的网络,并用更长的学习率策略对其进行训练,以解决欠拟合的问题。

4.语言模型

语言模型(Language Model,LM)通过利用从文本中学习到的信息,对提升 ASR 网络的表现性能起到重要作用。然而语言模型往往需要独立训练,并且占用内存很大,因此难以将其应用到小的设备上,如智能手机。但在研究中,作者发现了一项意料之外的结果:使用 SpecAugment 增强数据训练的模型在没有语言模型的帮助下,也能超越其他模型的表现。因此,尽管 LM 对网络有所助益,该研究结果预示了在实际应用中去掉语言模型,独立训练 ASR 网络的可能性。


图8 包含语言模型和不包含语言模型的字错误率对比。即使没有语言模型,SpecAugment的表现也达到了最佳水平。


图 8 包含语言模型和不包含语言模型的字错误率对比。即使没有语言模型,SpecAugment 的表现也达到了最佳水平。

结论

本文介绍了 SpecAugment,一种简单的用于语音识别(ASR)的数据增强方法。SpecAugment 大大提高了 ASR 网络的性能。通过使用简单的手工策略增加训练集,即使没有语言模型的帮助,也能够让端到端的 LAS 网络在 LibriSpeech 960h 和 SwitchBoard 300h 任务上获得最佳表现性能。SpecAugment 将 ASR 从过拟合转换为欠拟合问题,可以通过使用更大的网络和更长的学习率策略来提升性能。过去,ASR 的大部分研究都集中在寻找更好的网络结构。但该的研究结果表明,寻找更好的训练网络的方法不失为一个有前景的研究方向。


查看 Google AI Blog:SpecAugment: A New Data Augmentation Method for Automatic Speech Recognition


查看论文原文:SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition


更多内容,请关注 AI 前线公众号



公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-04-28 15:0018019
用户头像

发布了 52 篇内容, 共 28.0 次阅读, 收获喜欢 72 次。

关注

评论

发布
暂无评论
发现更多内容

Windows下 IDE工具常见编译错误FAQ

鸿蒙之旅

OpenHarmony 三周年连更

Java注解编译期处理AbstractProcessor详解

石臻臻的杂货铺

Java

我们如何将 Amazon Snowcone 送入轨道

亚马逊云科技 (Amazon Web Services)

挑战 30 天学完 Python:Day14 高阶函数

MegaQi

挑战30天学完Python 三周年连更

通过华为云ECS云服务器搭建安防视频监控平台

DS小龙哥

三周年连更

《流畅的Python》第二版上市了,值得入手么?

Python猫

Python

城市的智能进化,汇成数字中国的璀璨银河

脑极体

智慧城市

Bash 脚本中,特殊变量$0到底是什么?

wljslmz

bash Linux 三周年连更

深入探讨Go语言中Semaphore信号量的机制原理

Jack

Qz学算法-数据结构篇(二分查找、删除)

浅辄

三周年连更

【民生证券】敏捷转型大步迈进!民生证券敏捷实践培训圆满结束!

嘉为蓝鲸

敏捷转型 民生证券

语义分割标注:从认知到实践

来自四九城儿

2023阿里云合作伙伴大会-主论坛回顾

科技pai

阿里云 伙伴大会 2023阿里云合作伙伴大会

极速上手使用Docker,这篇文章就够了!

浅羽技术

Java Docker centos 容器化 三周年连更

《底层逻辑2:理解商业世界的本质》

石云升

读书笔记 三周年连更

挑战 30 天学完 Python:Day15 错误类型

MegaQi

挑战30天学完Python 三周年连更

苹果商店上架流程_App上架苹果流程及注意事项

雪奈椰子

音视频八股文(8)-- h264 AnnexB

福大大架构师每日一题

音视频 ffmpeg 流媒体

Go 方法接收器:选择值接收器还是指针接收器?

陈明勇

Go golang 方法 三周年连更 方法接收器

算法题每日一练:螺旋矩阵 I

知心宝贝

数据结构 算法 前端 后端 三周年连更

SBOM喊话医疗器械网络安全:别慌,我罩你!Part Ⅱ

安势信息

网络安全 SBOM 开源组件 医疗器械 医疗网安

LoRA: 大语言模型个性化的最佳实践

Zilliz

Towhee 大语言模型

大模型“涌现”的思维链,究竟是一种什么能力?

脑极体

人工智能

切片的其他妙用

宇宙之一粟

Go 切片 三周年连更

软件测试/测试开发丨Python装饰器常见报错信息、原因和解决方案

测试人

Python 软件测试 自动化测试 装饰器 测试开发

人脸识别:现代科技与隐私保护的博弈

来自四九城儿

什么是对象存储?对象存储的原理是什么?有哪些开源的、非开源的对象存储服务?

Java架构历程

对象存储 三周年连更

2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列 比如输入字符串为 “PAYPALISHIRING“ 行数为 3 时,排列如下 P

福大大架构师每日一题

Go 算法 rust 福大大

CDH安装与部署

乌龟哥哥

三周年连更

服务百万商家的系统,发布风险如何规避?微盟全链路灰度实践

TakinTalks稳定性社区

程序员真的要失业了?新技术潮如何改变我们的职业生涯? | 社区征文

拾数崽

职业成长 ChatGPT 三周年征文

性能超越经典ASR模型:谷歌重磅推出全新语音识别数据增强方法_AI&大模型_Daniel S. Park_InfoQ精选文章