来源 | 微软研究院AI头条(ID: MSRAsia)

编者按:基于深度学习的端到端语音合成技术进展显著,但经典自回归模型存在生成速度慢、稳定性和可控性差的问题。去年,微软亚洲研究院和微软 Azure 语音团队联合浙江大学提出了快速、鲁棒、可控的语音合成系统 FastSpeech,近日研究团队又将该技术升级,提出了 FastSpeech 2 和 FastSpeech 2s,在提升语音合成质量的同时,大大简化了训练流程,减少了训练时间,加快了合成速度。

近年来,以 FastSpeech 为代表的非自回归语音合成(Text to Speech, TTS)模型相比传统的自回归模型(如 Tacotron 2)能极大提升合成速度,提升语音鲁棒性(减少重复吐词、漏词等问题)与可控性(控制速率和韵律),同时达到相匹配的语音合成质量。但是,FastSpeech 还面临以下几点问题:

  • FastSpeech 依赖 Teacher-Student 的知识蒸馏框架,训练流程比较复杂;

  • 由于知识蒸馏,FastSpeech 的训练目标相比真实语音存在信息损失,同时从 Teacher 模型获得的时长(Duration)信息不够准确,两者都会影响合成语音质量。

为了解决上述问题,微软亚洲研究院和微软 Azure 语音团队联合浙江大学提出了FastSpeech 的改进版 FastSpeech 2,它抛弃了 Teacher-Student 知识蒸馏框架降低训练复杂度,直接用真实的语音数据作为训练目标避免信息损失,同时引入了更精确的时长信息和语音中的其它可变信息(包括音高(Pitch)和音量(Energy)等)来提高合成的语音质量。基于 FastSpeech 2,我们还提出了加强版 FastSpeech 2s 以支持完全端到端的从文本到语音波形的合成,省略了梅尔频谱的生成过程。实验结果表明,FastSpeech 2 和 2s 在语音质量方面优于 FastSpeech,同时大大简化了训练流程减少了训练时间,还加快了合成的速度。

FastSpeech 2 和 2s 的样例音频网址已经公开在:

https://speechresearch.github.io/fastspeech2/

论文公开在:https://arxiv.org/pdf/2006.04558.pdf

模型框架

图1:FastSpeech 2 和 2s 模型框架。图1(b)中的 LR 表示 FastSpeech 中的序列长度适配操作,图1(c)中的 LN 表示层归一化,可变信息预测器(variance predictor)包括时长、音高和能量预测器。

主架构

FastSpeech 2 的模型架构如图1(a)所示,它沿用 FastSpeech 中提出的 Feed-Forward Transformer(FFT)架构,但在音素编码器和梅尔频谱解码器中加入了一个可变信息适配器(Variance Adaptor),从而支持在 FastSpeech 2 和 2s 中引入更多语音中变化的信息,例如时长、音高、音量(频谱能量)等,来解决语音合成中的一对多映射问题(文本到语音合成中,一条文本可以对应到多条可变的语音,这些可变信息包括语音时长、音高、音量等。FastSpeech 通过知识蒸馏降低语音训练目标的变化性来缓解一对多映射问题,但也造成了训练目标的信息损失。FastSpeech 2 通过引入对应的可变信息作为解码器输入,使输入输出信息尽量匹配,来解决这个问题)。

可变信息适配器(Variance Adaptor)

可变信息适配器如图1(b)所示,包含了多种可变信息的预测器。在本工作中引入了时长预测器、音高预测器和能量预测器。在训练时,模型直接使用可变信息的真实值,与编码器的输出融合,作为解码器的输入,同时训练预测器使其拟合真实的可变信息。在推理阶段,模型使用预测器预测的可变信息。

可变信息预测器如图1(c)所示,由 ReLU 激活的2层一维卷积网络组成,每个网络后加上 Layer Norm 和 Dropout,以及最后输出标量的线性层。这个模块堆叠在音素编码器之上,并与 FastSpeech 2 模型共同训练,使用均方误差(MSE)作为损失函数。可变信息预测器的输出是对应的可变信息序列。其中音高预测器的输出是梅尔频谱对应的音高序列,能量预测器的输出是梅尔频谱的能量序列,而时长预测器的输出是音素的时长序列,与 FastSpeech 中的时长信息提取方式(使用自回归 Teacher 模型提取时长信息)不同,FastSpeech 2 使用一种开源的文字语音对齐工具(Montreal Forced Aligner, MFA)来提取更精准的时长信息。

FastSpeech 2s

在 FastSpeech 2 的基础上,我们提出了 FastSpeech 2s 以实现完全端到端的文本到语音波形的合成。FastSpeech 2s 引入了一个波形解码器,如图1(d)所示,它以可变信息适配器的输出隐层序列为输入,以波形为输出。在训练时,为了帮助可变信息预测器的训练,梅尔频谱解码器及其训练损失函数被保留。在生成阶段,将梅尔频谱解码器丢弃后,使其成为一个文本到波形的端到端系统。

实验评估

为了验证 FastSpeech 2 和 2s 的有效性,我们从声音质量、训练和生成速度、可变信息分析、可控制性几个方面来进行评估和分析。

声音质量

我们选用 LJSpeech 数据集进行实验,LJSpeech 包含13100个英语音频片段和相应的文本,音频的总长度约为24小时,并对测试样本作了权威的 MOS 测试,每个样本至少被20个英语母语评测者评测。MOS 指标用来衡量声音接近人声的自然度和音质。对比我们的方法与以下语音样本:1) GT(Ground Truth),真实音频数据;2) GT (Mel + PWG),用 Parallel WaveGAN(PWG)作为声码器(Vocoder)将真实梅尔频谱转换得到的音频;3) Tacotron 2 (Mel + PWG);4) Transformer TTS (Mel + PWG);5) FastSpeech(Mel + PWG)。

从结果(如表1所示)中可以看出,FastSpeech 2 和 2s 的音质优于 FastSpeech,这证明了利用真实语音目标来训练模型的优势,同时也显示了通过提供额外的可变信息(音高、能量和更准确的音素时长)以解决一对多映射的有效性。

表1:语音合成质量 MOS 测试

训练速度和合成速度

我们将 FastSpeech 2 和 2s 与具有相似参数量的 FastSpeech 的训练速度和合成语音速度作对比(结果如表2所示)。可以看出,在训练速度上,由于 FastSpeech 2 去除了蒸馏的过程,该模型可以实现3倍的训练加速。在合成语音速度上,它可以在单卡上实现近205倍实时的毫秒级的端到端语音合成。在波形生成速度上,比自回归的 Transformer TTS 提速将近170倍。

表2: FastSpeech 2 和 2s 与 FastSpeech 的训练速度和合成速度作对比。RTF 代表合成1秒的音频需要的时间。训练和测试的时间统计均在 36 Intel Xeon CPU,256GB内存和单张 V100 GPU 上进行,批大小分别是48和1。

可变信息调节

FastSpeech 2 可以在模型中调节语速、音高和能量。这里展示音高调节效果,通过实验发现,将音高降低到 0.75x 或者升高到 1.5x,生成的语音均很清晰且不失真(结果如图2所示)。

图2:音高调节实验。红色曲线代表修改后的基频曲线。对应的文本是:“They discarded this for a more completely Roman and far less beautiful letter.”

消融对比实验

我们也比较了模型中一些重要组件和方法(包括引入音高、能量和更准确的时长信息)对生成音质效果的影响,通过 CMOS 的结果来衡量影响程度。由表3和表4可以看出,这些组件和方法确实有助于模型效果的提高。

表3:从 Teacher 模型和 MFA 得到的 Duration 对比

表4:消融实验

未来工作

未来,我们将在 FastSpeech 2 中尝试引入更多的可变信息来提高并行语音合成的音质,并且尝试更加轻量的模型,从而进一步提升生成语音的速度。

我们一直致力于语音方面的研究,包括文本到语音合成、低资源语音合成与识别、语音翻译、歌声及音乐合成等。欢迎关注我们语音方面的研究工作:https://speechresearch.github.io/

论文链接:

[1] FastSpeech: Fast, Robust and Controllable Text to Speech

paper: https://arxiv.org/pdf/1905.09263.pdf

demo: https://speechresearch.github.io/fastspeech/

article (Chinese): https://mp.weixin.qq.com/s/aHupAjPNFdUdaG9Uof_obQ

article (English): https://www.microsoft.com/en-us/research/blog/fastspeech-new-text-to-speech-model-improves-on-speed-accuracy-and-controllability/

[2] FastSpeech 2: Fast and High-Quality End-to-End Text to Speech

paper: https://arxiv.org/pdf/2006.04558.pdf

demo: https://speechresearch.github.io/fastspeech2/

本文作者:任意、胡晨旭、谭旭、秦涛、赵晟、赵洲、刘铁岩

推荐阅读
  • 图灵奖得主Judea Pearl:从“大数据革命”到“因果革命”

  • Python 玩出花儿了!一文教你用 Python 制作吃豆人游戏 | 附代码

  • 陆奇:疫情下的创业者,最不能缺两大能力

  • 时隔 15 年,苹果的自研 ARM 芯片为何能取代 Intel 处理器?

  • 程序员端午炫富指南~

  • 科普 | 哈希函数的过去、现在与未来

你点的每个“在看”,我都认真当成了AI

FastSpeech语音合成系统技术升级,微软联合浙大提出FastSpeech2相关推荐

  1. 因弹幕系统技术升级 B站即日起至6月6日关闭弹幕功能

    昨日晚间,B站官方微博发布声明称,因弹幕系统技术升级,从即日起至6月6日网站将暂时关闭弹幕功能. 在日前的第七届网络视听大会上,B站董事长兼CEO陈睿透露,2019年至今,已有2027万人在这家名为哔 ...

  2. 微软服务器系统2018,升级微软2018 Windows10 四月正式版17134(1803)系统的多种方法...

    微软已经正式发布了2018 Windows 10更新四月版系统,版本号是Build 17134,目前微软提供了多种升级途径,IT之家也为此整理了2018 Windows 10更新四月版系统升级方法大全 ...

  3. 将端到端文本转语音速度提高38倍,全新语音合成系统FastSpeech 梅尔谱的生成速度提升270倍,微软和浙大联合推出

    将端到端文本转语音速度提高38倍,全新语音合成系统FastSpeech 梅尔谱的生成速度提升270倍,微软和浙大联合推出 目前,基于神经网络的端到端文本到语音合成技术发展迅速,但仍面临不少问题--合成 ...

  4. 速度提升270倍!微软和浙大联合推出全新语音合成系统FastSpeech

    作者 | 谭旭 转载自微软研究院AI头条(ID: MSRAsia) [编者按]目前,基于神经网络的端到端文本到语音合成技术发展迅速,但仍面临不少问题--合成速度慢.稳定性差.可控性缺乏等.为此,微软亚 ...

  5. 全新语音合成系统FastSpeech——更好的声音自然度

    目前,基于神经网络的端到端文本到语音合成技术发展迅速,但仍面临不少问题--合成速度慢.稳定性差.可控性缺乏等.为此,微软亚洲研究院机器学习组和微软(亚洲)互联网工程院语音团队联合浙江大学提出了一种基于 ...

  6. 大数据早报:路桥率先利用“人脸识别”技术监管医保 亚马逊与微软联合开发人工智能,打造服务大众的AI(10.19)

    数据早知道,上乐投网看早报! 『数据安全』微软内部Windows漏洞数据库曾被入侵:后果可怕 作为这个星球上覆盖率最高的操作系统,Windows的一举一动都影响着大家的使用体验,对于它的安全微软也是相 ...

  7. 使用云技术升级改造现有应用系统的思考

    办公系统已经上线运行4年了,用户提出升级平台.公文(OA)应用与其它应用相互不影响的需求计划. 其中,升级平台,就是在不额外采购Lisence的情况,平台产品就升级到云计算下的轻量级PaaS平台:公文 ...

  8. 微软联合创始人都看好,这项技术有什么过人之处?

    作者| flow 编辑| 3D视觉开发者社区 前言 本文针对当下深度学习模型太大的问题进行了技术改进,首次提出了XNOR-Net的概念.文章提出二值网络的两个版本,Binary-Weight-Netw ...

  9. 如何更新微软的html,如何升级微软2018 Windows 10更新四月正式版17134系统?

    微软已经正式发布了2018 Windows 10更新四月版系统,版本号是Build 17134,目前微软提供了多种升级途径,那么,如何升级微软2018 Windows 10更新四月正式版17134系统 ...

最新文章

  1. OC 的反射机制以及使用场景
  2. [编解码] 关于base64编码的原理及实现
  3. 简练软考知识点整理-项目合同的类型
  4. Linux中将pip 源切换至国内镜像~亲测可用
  5. nginx配置websocket_Ingress-nginx代理websocket
  6. word如何一键全选_学会这七个Word小技巧,五分钟完成3小时的工作
  7. jquery easyui DataGrid 数据表格 属性
  8. WinXp系统中没有ChangeWindowMessageFilter这个函数
  9. 微课|中学生可以这样学Python(例5.3):报数游戏
  10. android 自定义布局 根据布局获取类,android自定义布局中的平滑移动之ViewGroup实现...
  11. Python内置数据结构——字符串string
  12. java for 循环中if判断只进入第一个_「每天三分钟跟我学Java」之条件语句和循环结构...
  13. 一个mapper接口有多个mapper.xml 文件_MyBatis 源码解析:映射文件的加载与解析(上)
  14. Binary Numbers(HDU1390)
  15. VS2015 编译libevent库
  16. 如果将网络工程师分级你是那个级别?
  17. t检验自由度的意义_统计学常用概念:T检验、F检验、卡方检验、P值、自由度...
  18. Linux问题_02:tar: 它似乎不像是一个 tar 归档文件
  19. 「AI产品」产品小姐姐分析抖音背后的计算机视觉技术
  20. excel调色板自定颜色_抓住Excel调色板

热门文章

  1. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)
  2. Unity3D移植到自己的Android程序
  3. 实验LVS+keepalived
  4. linux c一站式编程 pdf,《Linux·C编程一站式学习》·(宋劲杉)·文字版.pdf
  5. 机器学习理论基础到底有多可靠?
  6. Ubuntu上五款搜索工具:Albert、Synapse、Utools、Ulauncher、FSearch
  7. Google Glog使用
  8. html脚本详解,HTML脚本教程详解
  9. java date truncate_在Java中将dateTime转换为dd / mm / yy格式的日期
  10. Docker-Compose搭建单体SkyWalking 6.2