0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

电子工程师 来源:工程师李察 2019-05-05 11:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

神经网络的调参无疑是一个巨大的工程。

如何在调参之前拥有更佳的表现?千辛万苦调好了但却过拟合,如何拥有更好的泛化能力?这无疑是人肉调参的必经之痛。一个通用的认知是,训练数据会限制模型表现的上限,能拥有更好的训练数据,无疑成功了一大截儿。

近日,Daniel S. Park 等人在自动语音识别(Automatic Speech Recognition,ASR)模型训练上,找到了一种简单却强大的数据增强方法——SpecAugment。该操作另辟蹊径,将原始语音数据生成的梅尔倒谱图直接进行图像变换,扩增训练数据,化腐朽为神奇,结果很棒。

啥是自动语音识别

自动语音识别,即依托深度神经网络模型将语音自动识别为文本输入,无论是 Siri 助手还是微软小冰,抑或占据生活一部分的微信,都有它的身影,相信这个时代的你也早已习惯用语音转输入解放双手。

传统 ASR 模型的原始输入数据一般先经过预处理,将收集的音波转化为频谱图如梅尔倒频谱,也即梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC,一定程度上模拟了人耳对声音的处理特点)的谱图。

简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

图 | 音波转化为梅尔倒频谱图结果示意图(来源:Daniel S. Park,et al./ Google Brain)

梅尔倒谱的一般流程是将声音信号进行傅立叶转换得到频谱,再进行取对数以及取逆傅立叶变换。

传统 ASR 模型扩增数据一般是将收集到的音波进行改变加速、减速、加背景噪音等变换来进行数据集的丰富,最后,这种扩增后的音频也要转化为频谱图。

然而,直接改变频谱图进行数据扩增,能否提升模型表现?毕竟,图像领域的扩增手段十分丰富,直接将频谱作为图像用一定手段进行变换结果如何?

Daniel S. Park 等人的 SpecAugment 方法证明,这是一个简单易行的好路子,可以实现在线训练,计算成本低廉无需额外数据,还能使 ASR 任务 LibriSpeech 960h(语音识别技术的最权威主流的开源数据集,包括近 1000 小时的英文发音和对应文字)和 Switchboard 300h(交换机电话语音语料库)比目前最佳模型的表现更好。

SpecAugment 的“出彩”之处

首先,在模型训练之前将输入数据——音频数据的梅尔倒谱,进行图像处理,这也是 SpecAugment 这条野路出彩的基础。即对梅尔倒频谱的横轴一段时间步长的频谱进行左或右扭转翘曲、或者掩蔽一段时长的谱图(时间屏蔽,对纵向进行掩蔽)、或是某些梅尔频率的信号(频率屏蔽,对横向进行掩蔽),得到了一系列的扩增样本。

这样的处理使得模型能够学习到时间轴上发生损失变形的音频、部分频率缺失的音频,以及丢失部分语音片段的音频的特点,增加了训练模型对这些信息的处理能力,也增强模型的泛化能力。

简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

图 | 梅尔倒频谱的扩增变换手段:从上到下依次为没有应用增强、一定时间步长的扭曲,频率屏蔽和时间屏蔽。(来源:Daniel S. Park,et al/ Google Brain)

模型训练

输入数据处理完毕后,训练语音识别模型,这里采用 LAS(Listen Attend and Spell networks)模型。LAS 模型主要是由 Listener 和 Speller 两个子模型组成,其中 Listener 是一个声学编码器(Encoder,收集数据,相当于“听”),Speller 是一个基于注意力机制的解码器(Decoder,将收集的特征翻译成字符,相当于“说”)

训练 SpecAugment 的 Listener 子模型:输入的梅尔倒谱首先经两层卷积神经网络(CNN),经最大池化且步幅为 2,得到的结果输入到 BLSTM(双向长短期交替记忆模型)中,产生尺寸为 d x w 的基于注意力机制的特征。

训练 SpecAugment 的 Speller 子模型:将上一步骤中基于注意力机制产生的特征向量输入到一个二层 RNN(Recurrent Neural Network)模型中,训练集中的文本已用 WPM(Word Piece Model)进行了 token 处理,利用集束搜索(Beam Search),集束宽为 8,得到 token 表示的预测文本(token 处理即分词处理,之后进行词嵌入,自然语言处理利用词嵌入来将词向量化表示)。至此,实现语音转文本过程。

提升表现

比较训练集扩增前后训练出的 LAS 模型在测试集上的词错误率(Word Error Rate,WER),不改变任何超参数,测试结果错词率显著降低,可见无需调参,扩增训练集效果明显。

简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

图 | 扩增训练集与否的两个模型在数据集 LibriSpeech 上有噪音测试集和无噪音测试集的表现。(来源:Daniel S. Park,et al/ Google Brain)

对于过拟合问题,虽然训练集上利用扩增的模型表现与无扩增相差并不是很多,但在开发集上,WER 有明显的降低,说明模型泛化能力提升,可以预测未训练过的数据,过拟合得到解决。

简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

图 | 扩增训练集与否的两个模型在训练集、有噪音开发集和无噪音开发集集上的表现(来源:Daniel S. Park,et al/ Google Brain)

这个模型啥水平?

1)优于现有最佳 ASR 模型

扩增训练集后调整模型参数以及适当训练迭代,使得模型表现达到最佳,在数据集 LibriSpeech 960h 和 Switchboard 300h 有无噪音的测试集上,扩增模型表现与现有最佳模型的错词率结果对比发现,扩增方法明显取胜。无论是传统 ASR 模型(如 HMM)还是端到端的神经网络模型(如 CTC/ASG),采用 SpecAugment 方法训练后的 LAS 模型表现都明显更好。

简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

图 | LibriSpeech 960h 和 Switchboard 300h 数据集上不同模型的表现(来源:Daniel S. Park,et al/ Google Brain)

2)优于利用语言模型的 ASR 模型

引入利用大量纯文本语料库训练的语言模型(Language Models,LMs)能够使 ASR 模型效果大大提升,因为可以用语料库中的大量信息使模型功能更强,这也是 ASR 任务的一个通用做法。语言模型一般是独立训练的,使用 ASR 模型时需要占据一定内存进行存储,这使其难以在小型设备上应用。而 SpecAugment 模型的优势是,即使不利用语言模型也优于现有引入语言模型的 ASR 模型。这意味着语言模型的大内存问题,有了解决之路。

简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

图 | LibriSpeech 960h 和 Switchboard 300h 数据集上不同 ASR 模型引入语言模型有否的表现(来源:Daniel S. Park,et al/ Google Brain)

总结,利用改变频谱图的方式扩增音频数据样本,训练出的 ASR 模型表现极佳,优于现有最好模型,甚至超过引入语言模型,很好用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4827

    浏览量

    106800
  • 语音识别
    +关注

    关注

    39

    文章

    1803

    浏览量

    115564
  • 图像变换
    +关注

    关注

    0

    文章

    5

    浏览量

    1613

原文标题:简单粗暴而有效的改图:自动语音识别数据扩增的“一条野路”

文章出处:【微信号:deeptechchina,微信公众号:deeptechchina】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是离线语音识别芯片(离线语音识别芯片有哪些优点)

    离线语音识别芯片,是种集成了语音信号采集、前端处理和本地识别功能的专用集成电路,无须联网也可以进行语音
    的头像 发表于 10-31 15:27 271次阅读

    端到端语音交互数据 精准赋能语音大模型进阶

    语音大模型从“能识别”向“懂语境”跨越的关键阶段,高质量场景化语音数据已成为制约技术突破的核心瓶颈。传统语音
    的头像 发表于 09-11 17:17 576次阅读

    瑞芯微RK3576语音识别算法

    1.语音识别简介语音识别技术,也被称为自动语音识别
    的头像 发表于 08-15 15:13 1859次阅读
    瑞芯微RK3576<b class='flag-5'>语音</b><b class='flag-5'>识别</b>算法

    使用aicube进行目标检测识别数字项目的时候,在评估环节卡住了,怎么解决?

    使用aicube进行目标检测识别数字项目的时候,前面切正常 但是在评估环节卡住了,直显示正在测试,但是完全没有测试结果, 在部署完模型后在k230上运行也没有任何识别结果 期
    发表于 08-13 06:45

    语音识别---大家怎么看呢?

    语音识别门交叉学科。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来10年内,
    发表于 08-09 10:54

    EASY EAl Orin Nano(RK3576) whisper语音识别训练部署教程

    1Whisper简介Whisper是OpenAI开源的,识别语音识别能力已达到人类水准自动语音识别
    的头像 发表于 07-25 15:21 552次阅读
    EASY EAl Orin Nano(RK3576) whisper<b class='flag-5'>语音</b><b class='flag-5'>识别</b>训练部署教程

    EASY EAl Orin Nano(RK3576) whisper语音识别训练部署教程

    Whisper是OpenAI开源的,识别语音识别能力已达到人类水准自动语音识别系统。Whispe
    的头像 发表于 07-17 14:55 1443次阅读
    EASY EAl Orin Nano(RK3576) whisper<b class='flag-5'>语音</b><b class='flag-5'>识别</b>训练部署教程

    一条光纤怎么分两

    一条光纤可以通过以下方式分成两使用: 使用分光器 分光器是种光学器件,它可以将光信号按照定的比例分成多路。通常,分光器有1:2、1:4、1:8等不同的分光比例,这意味着
    的头像 发表于 02-25 10:07 3696次阅读

    语音识别技术在通信领域中的应用实例

    语音识别技术也被称为自动语音识别(Automatic Speech Recognition,ASR),是通过计算机对
    的头像 发表于 02-21 17:12 1068次阅读

    详解语音识别技术在通信领域中的应用

    语音识别技术也被称为自动语音识别(Automatic Speech Recognition,ASR),是通过计算机对
    的头像 发表于 02-21 17:05 1033次阅读
    详解<b class='flag-5'>语音</b><b class='flag-5'>识别</b>技术在通信领域中的应用

    新品| Unit ASR,体化离线语音识别单元

    UnitASR是款AI语音识别单元,内置AI智能离线语音模块CI-03T。它具有语音识别、声纹
    的头像 发表于 02-14 18:34 752次阅读
    新品| Unit ASR,<b class='flag-5'>一</b>体化离线<b class='flag-5'>语音</b><b class='flag-5'>识别</b>单元

    空调语音控制方案NRK3501语音识别芯片-让智能生活触手可及!

    NRK3501语音识别芯片支持离线语音控制空调,精准识别,远场降噪,最多支持200离线指令,5米内识别
    的头像 发表于 01-07 11:40 1259次阅读
    空调<b class='flag-5'>语音</b>控制方案NRK3501<b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片-让智能生活触手可及!

    【「嵌入式系统设计与实现」阅读体验】+ 基于语音识别的智能杯垫

    项目二维码下图 该作品通过采集饮水数据,多种交互方式,数据分析处理,提醒用户定期饮水,达到保持健康的作用。 主要功能是语音识别。 ASR-PRO语音
    发表于 01-02 18:15

    lmp91200采用一条SPI总线,片选adc141s626读不到数据是什么原因?

    采用一条SPI总线,片选lmp91200,写数据,返回数据正确,片选adc141s626 读不到数据是什么原因?
    发表于 12-31 06:13

    数据手册中的些参数的数值有时画一条横线或者空着不填是什么意思?

    数据手册中的些参数的数值有时画一条横线或者空着不填是什么意思? 如上表, tCS的最大值是15ns,最小值和典型值都是空着的,是不是最小值和典型值我可以随便取(大于0小于15就行)?还是说只有最大值给出了,我只能取给出的最
    发表于 12-16 07:45