原标题:用于语音识别的数据增强

Data Augmentation for Speech Recognition

作者 | Edward Ma

翻译 | 类更里、敬爱的勇哥 编辑 | 咩咩咩鱼、唐里

https://towardsdatascience.com/data-augmentation-for-speech-recognition-e7c607482e78

来自 Unsplash 的摄影:Edward Ma

语音识别的目标是把语音转换成文本,这项技术在我们生活中应用很广泛。比如说谷歌语音助手和亚马逊的 Alexa ,就是把我们的声音作为输入然后转换成文本,来理解我们的意图。

语音识别和其他NLP问题一样,面临的核心挑战之一是缺少足够的训练数据。导致的后果就是过拟合以及很难解决未见的数据。Google AI Resident 团队通过做几种数据增强的方式来解决这个问题。

本文将会讨论关于 SpecAugment:一种应用于自动语音识别的简单的数据增强方法(Park et al.,2019),将涵盖以下几个方面:

数据

结构

实验

数据

为了处理数据,波形音频转换成声谱图,然后输入神经网络中进行输出。做数据扩充的传统方式通常是应用在波形上的,Park 等人则是直接应用在声谱图上。

波形音频到声谱图(Google Brain)

对于一个声谱图,你可以把它看成一个横轴是时间,纵轴是频率的图像。

声谱图表示 (librosa)

直观上来看,声谱图提高了训练速度。因为不需要再进行波形图和声谱图之间的变换,而是扩充了声谱图的数据。

Park等人介绍了 SpecAugment 的数据扩充的方式应用在语音识别上。扩充数据有三种基本的方式:时间规整、频率掩蔽和时间掩蔽。

在他们的实验中,他们把这些方式整合在一起,并介绍了四种不同的整合方式,分别是:LibriSpeech basic (LB), LibriSpeech double (LD), Switchboard mild (SM) 和Switchboard strong (SS)。

时域调整

随机选取时间上的一个点并在该点左右进行调整,调整的范围w来自于一个参数是从0到参数W均匀分布。

频率覆盖

对 [f0, f0 + f)范围内的频谱进行掩码覆盖,f的选取来自于从0到参数F的均匀分布,f0选自(0, ν − f)范围内,其中ν是频谱通道的总数。

时域覆盖

对[t0, t0 + t)上连续时间的频谱进行覆盖,t来自于参数0到T之间的均匀分布,t0是在[0, τ − t)之间。

上图展示了对数梅尔频谱图的多种调整,从上到下分别是不做增强的原始图,时域调整,频谱覆盖以及时域覆盖。(Park et al., 2019)

多种基础策略的组合

通过对时域和频谱覆盖的组合,可以生成四种新的增强策略,它们的符号表示如下:

W:时域调整参数

F:频域覆盖参数

mF:频域覆盖的个数

T:时域覆盖参数

mT:时域覆盖的个数

LB, LD, SM 和 SS的参数(Park et al., 2019)

从上到下分别展示了原始的以及应用了LB和LD的对数梅尔频谱图. (Park et al., 2019)

网络结构LAS(Listen, Attend and Spell)网络结构

Park等人使用LAS结构来验证数据增强的效果,该结构包含两层卷积神经网络(CNN),一个注意力层(Attention)以及一个双向的长短期依赖(LSTMs)。 因为本文主要关注数据增强,模型只是验证增强效果的方法,如果你想深入的了解LAS,可以点击原文查看。

学习率的策略

学习率的设置对训练模型的性能有重要的影响,与Slanted triangular learning rates (STLR)相似,我们采用了一个动态的学习率,它会指数级的衰减,一直下降到所设置最大值的1/100时停止,其后会一直保持在该值。它的主要参数如下:

sr:从 0 学习率开始的起步爬坡阶段完成经过的步骤数量

si:指数衰减的起始值

sf:指数衰减的结束值

另一个学习率的策略是统一标签平滑。我们将正确分类的标签置信度设为0.9,其他标签的置信度依次增加。主要参数为:

snoise:变化的权重噪音

在接下来的试验中,我们定义了如下三种学习率:

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

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

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

语言模型(Langauge Models,LM)

语言模型的作用是进一步提升模型效果,通常来说,语言模型是在已有的字符上去预测下一个字符,新的字符被预测出来后,又会迭代的用它去预测后面一个。这种方法在诸如BERT或者GPT-2等很多现代的NLP模型中都有使用。

实验

我们用词错误率( Word Error Rate,WER)来评价模型的效果。

在下图中,“Sch”表示学习率的选取,“Pol”表示增强策略。可以看到,有6层LSTM和1280个词嵌入向量的LAS模型取得了最好的效果。

LibriSpeech数据集的评估结果(Park et al., 2019)

下图所示,在诸多模型以及没有数据增强的LAS模型对比中,上文提到的“LAS-6–1280”性能最好。

在960小时的LibriSpeech数据集上对比频谱增强的效果(Park et al., 2019)

在300小时的Switchboard数据集上,选取四层LSTM的LAS模型作为基准,可以看到频谱增强对模型效果有明显的提升。

在300小时的Switchboard数据集上对比增强的效果(Park et al., 2019)

要点

时域调整并不能很明显的提升模型性能,如果资源有限,可以无视这种方法。

标签平滑的方法在训练中很难稳定的收敛。

数据增强的方法把过拟合的问题变成了欠拟合,在下图中,可以看到没有数据增强的模型在训练集上有近乎完美的效果,但是在其他测试集上的结果却没有那么好。

为了在语音识别中更方便的应用数据增强,nlpaug已经支持频谱增强的方法了。

关于作者

他是一个湾区的数据科学家,专注于领先的数据科学技术,人工智能,尤其是自然语言处理及平台相关的方向,通过以下方法可以联系上他:LinkedIn,Medium 以及 Github。

扩展阅读

Official release of SpecAugment from Google

Slanted triangular learning rates (STLR)

Bidirectional Encoder Representations from Transformers

Generative Pre-Training 2

参考文献

D. S. Park, W. Chan, Y. Zhang, C. C. Chiu, B. Zoph, E. D. Cubuk and Q. V. Le. SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition. 2019

W. Chan, N. Jaitly, Q. V. Le and O. Vinyals. Listen, Attend and Spell. 2015

https://ai.yanxishe.com/page/TextTranslation/1705

滑动查看更多内容

每天进步一点点

扫码参与每日一题

今天距离CVPR 2019开幕还有10天

还有一天就放假啦!!!

#今日份迷惑# 我的 Wechat 崩溃了???

扫码查看

NLP相关资源大列表

<< 滑动查看更多栏目 >>

责任编辑:

用于语音识别的数据增强相关推荐

  1. cut out数据增强_谷歌大脑提出自动数据增强方法AutoAugment:可迁移至不同数据集...

    近日,来自谷歌大脑的研究者在 arXiv 上发表论文,提出一种自动搜索合适数据增强策略的方法 AutoAugment,该方法创建一个数据增强策略的搜索空间,利用搜索算法选取适合特定数据集的数据增强策略 ...

  2. AutoAugment: Learning Augmentation Policies from Data(一种自动数据增强技术)

    谷歌大脑提出自动数据增强方法AutoAugment:可迁移至不同数据集 近日,来自谷歌大脑的研究者在 arXiv 上发表论文,提出一种自动搜索合适数据增强策略的方法 AutoAugment,该方法创建 ...

  3. python批量实现图像数据增强(扩增)

    什么是数据扩增? 数据扩增是对数据进行扩充的方法的总称.数据扩增可以增加训练集的样本,可以有效缓解模型过拟合的情况,也可以给模型带来的更强的泛化能力. 通常在进行数据扩增操作的时候应该保持图像原本的标 ...

  4. 最新综述:用于文本分类的数据增强方法

    ©PaperWeekly 原创 · 作者 | 王馨月 学校 | 四川大学本科生 研究方向 | 自然语言处理 概要 数据增强,即通过转换为机器学习人工创建训练数据,是跨机器学习学科广泛研究的研究领域.它 ...

  5. 用于半监督语义分割的基于掩码的数据增强

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...

  6. 基于Keras的卷积神经网络用于猫狗分类(进行了数据增强)+卷积层可视化

    接着我上一篇博客,https://blog.csdn.net/fanzonghao/article/details/81149153. 在上一篇基础上对数据集进行数据增强.函数如下: "&q ...

  7. 一种 用于GPT模型 训练的 包含加权 和 数据增强 和 损失方法 的设计

    序 根据之前训练的字模型+PALM效果和经验.真是胡言乱语,牛头不搭马嘴.观察了模型的在各种条件下的输出.看大佬的各种的增强方法,搞了2周写完了新的增强管道. 换了新方案,继续训练了一晚上,马上就有不 ...

  8. 说话人识别中的数据预处理和数据增强

    数据预处理 假设已经采集到一些数据,在进行训练之前,需要先对数据做以下预处理: 数据清洗 语音检测(Voice Activity Detection,VAD,也叫Speech Detection,或S ...

  9. 201912一种改进动物音频分类的数据增强方法

    Data augmentation approaches for improving animal audio classification 标题:一种改进动物音频分类的数据增强方法 作者: Lori ...

最新文章

  1. 机器学习系列(9)_机器学习算法一览(附Python和R代码)
  2. 【黑马程序员 C++教程从0到1入门编程】【笔记6】C++核心编程(文件操作)
  3. Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(六)后端改造
  4. SQL Server 2008 阻止保存要求重新创建表的更改问题
  5. 阿里最后一面,高并发下如何设计一个秒杀系统?
  6. 基金买入两天可以卖出吗?
  7. Vue中<keep-alive>组件的使用
  8. 学习HTML 笔记A3 :HTML标题、段落、文本格式化
  9. PD协议诱骗取电XSP01支持Type-C 5V9V12V15V20V原理图
  10. FireFox浏览器渗透测试插件
  11. 风险偏好情绪提振,欧元低位延续反弹
  12. 自动化测试遇到的难点_自动化测试不成功的原因和实施过程中存在的问题
  13. 站内信“数据库设计思路”
  14. 抑制背景干扰的行人重识别方法
  15. 如果你有想珍惜的人,一定要送TA这个礼物!绝美又有内涵
  16. 一个屌丝程序员的青春(二二三)
  17. 想安装MacOS X怎么获取适合自己电脑的UFI
  18. matlab中的符号对象与符号运算
  19. 利用clipboardJs 点击按钮复制文本
  20. 用python爬虫来登录深信服ac行为控制器,涉及到js加密部分,更新url分类库(针对企业微信更新)

热门文章

  1. CSharpGL(53)漫反射辐照度
  2. android学习笔记1-布局的初步了解以及 控件的常见属性
  3. 在 Razor 中注册命名空间
  4. 微软提供的数据访问组件SqlHelper
  5. Bailian4118 开餐馆【DP】
  6. UVA10849 Move the bishop【国际象棋】
  7. AOJ0028 Mode Value【出现次数最多+map+vector+水题】
  8. POJ NOI0105-40 数1的个数
  9. 重构代码 —— 函数即变量(Replace temp with Query)
  10. plink 与 ssh 远程登录问题