写点什么

DurIAN: 基于时序注意力神经网络的语音合成系统 | 论文解读

2020 年 12 月 11 日

DurIAN: 基于时序注意力神经网络的语音合成系统 | 论文解读

一、概述


随着深度学习技术的兴起和快速发展,以语音识别和合成为代表的语音处理技术得到了极大的飞跃,语音交互逐渐成为人机交互中的一个主流方式。而作为人机语音交互的出口,语音合成的效果直接影响到人机交互到体验,一个高质量的、稳定的语音合成系统能够让机器更加地拟人化,使人机交互过程更加自然。近年来,相比于传统的帧级语音合成模型,基于注意力机制的序列到序列模型统一了时长模型和声学模型的建模过程,提升了合成语音的自然度,该方案逐渐成为主流的语音合成研究方向。然而,由于注意力机制的不可控问题,上述方案的稳定性相对较差,限制了其应用能力。


本文重点介绍 AI Lab 提出的高质量、稳定的序列到序列语音合成系统方案 DurIAN。一方面,为了解决传统序列到序列模型到稳定性问题,该方案在模型中加入显式的时长预测模块来代替传统的注意力机制,避免注意力机制的不可控所带来的生成误差。结果显示,DurIAN 方案将语音合成错误率从 state-of-the-art(SOTA)的 Tacotron2 模型的 2%降低到了 0%,极大地提升了语音合成系统的稳定性。另一方面,为了加速语音的生成过程,该方案提出了一种基于子带的语音合成声码器,在不损失语音音质的同时将实时率提升了近 3 倍。


本论文已被 Interspeech 2020 接收,以下为方案详细解读。


二、  语音合成


语音合成的后端模型一般分为声学模型和声码器两个部分,这两个部分都直接影响到合成语音的稳定性、自然度和实时率等等。本次介绍的方案分别针对上述两个部分进行了改进。

1.   声学模型的改进

a)   传统的序列到序列声学模型


最新的语音合成声学模型一样采用基于注意力机制的序列到序列框架,该框架能够直接建模文本序列到语音特征之间的映射关系,避免了传统方法中时长模型和声学模型串联所导致的累积误差,并提升了合成语音的自然度。


一个最经典的基于注意力机制的序列到序列声学模型 Tacotron 分为编码器、解码器和注意力机制三部分。其中,编码器的目的是学习文本输入序列间的依赖关系,解码器的目的是自回归地迭代生成语音特征序列。而注意力机制则是作为桥接单元来决定解码器的每一个时刻使用编码器文本输入的哪一部分信息,它承担了传统语音合成系统中时长模型的作用,也是完成不等长序列映射功能的核心单元。

图 1 传统 Tacotron 模型


在上述基于注意力机制的框架中,由于注意力机制的学习过程是没有任何约束的,因此导致解码器生成的语音序列经常出现错读、漏读、重复读等问题。为了缓解该问题,研究人员提出了更适合语音合成任务的注意力机制,如 Tacotron2 框架等。但是,由于注意力机制本身所存在的问题,这些改进的序列到序列模型框架无法保证能够完全正确地生成特定的语音序列。

b)   序列到序列声学模型 DurIAN


考虑到上述注意力机制本身所带来的稳定性问题,本文提出基于真实时长指导的对齐模型(Duration Informed Attention Network,DurIAN)来直接使用真实或预测的时长来指导语音特征的生成过程,从而在保证声学模型效果的同时提升了其稳定性,如图 2 所示。


DurIAN 模型使用一个对齐模型(Alignment Model)来替代传统序列到序列模型中的注意力机制,该对齐模型直接使用音素级的文本序列作为输入来预测每一个音素所对应的语音单元所持续的时间。在模型训练和解码过程中,给定文本输入 X,对齐模型会利用音素级的时长信息对编码器的输出进行扩帧,从而保证对齐模型输出序列的长度与声学模型最终输出的语音特征长度一致,从而实现不等长序列映射。而在扩帧过程中,为了区分同一个音素中的不同帧,对齐模型额外加入了位置信息编码来进行建模。为了保证声学模型的效果,DurIAN 同样采用了自回归解码器来生成最终的语音特征序列。


图 2 DurIAN 模型


为了验证 DurIAN 模型的效果,我们首先比较了其与传统的帧级声学模型 Parametric、基于注意力机制的序列到序列模型 Tacotron2 的差异:


从上表中结果可以发现,DurIAN 模型在合成语音的自然度方面和 state-of-the-art (SOTA)的 Tacotron2 模型一样。而前文提到 DurIAN 的主要目的是解决基于注意力机制的声学模型稳定性问题,因此我们分别使用 DurIAN 和另外两种主流的基于注意力机制的序列到序列模型合成了同样的 1000 句文本,并分别统计了他们生成过程中的错误率:


从表中结果可以发现,本文提出的 DurIAN 模型没有出现任何的生成错误,而其他的模型都会存在漏读、重复读等错误。这意味着,本文提出的基于时长模型指导的声学模型能够显著地提升序列到序列声学模型的稳定性。


2. 声码器的改进


上述声学模型的作用是从文本中预测其对应的语音特征,而最终我们需要将该语音特征还原为人类可听懂的语音信号,声码器的作用即为从语音特征中还原语音信号。传统的声码器一般基于信号处理的方式,此类声码器虽然还原效率很高,但是无法很好地还原出语音信号,会损伤合成语音的音质。而基于神经网络的声码器能够从语音特征中还原出高质量的语音信号,从而提升了合成语音的音质,但是该类声码器的运算量也相对较大,也即实时率较差。


对于语音信号来讲,如果将一维语音信号划分为 N 个子带,那么我们可以在每一个子带将原始信号降采样 N 次,并且这些子带能一起保留原始信号中的所有信息。基于此原理,我们可以使用不同的模型来分别建模不同的自带,并且在解码阶段使用多个 CPU 或者 GPU 进行并行解码从而提升语音合成的效率。但是这种方法其实并没有本质上降低语音生成过程中的计算量。因此,为了高效地从语音特征中还原出高质量的语音信号,本文提出了一种多子带的 WaveRNN 模型。如图 3 所示,该模型的大部分参数都由所有子带共享,而在运算过程中,我们直接使用上一个时刻所有子带的输出来预测下一个时刻所有子带的输出。通过这种方式,我们理论上能够将原始声码器的计算量降低近 N 倍,大大提升了语音合成的生产效率。


图 3 多子带 WaveRNN 模型


在实验中,我们衡量了多子带 WaveRNN 模型和全频带 WaveRNN 模型生成语音信号的实时率(Real Time FactorRTF):


从表中第一行结果可以看出,全频带的 WaveRNN 模型的实时率为 1.33,而使用 4 个子带的 WaveRNN 声码器的实时率只有 0.5,其生成效率提高了近 3 倍。而为了进一步提升声码器的合成效率,我们将语音信号使用 8-bit 量化,此时声码器的实时率又能获得 3 倍的提升。


此外,由于声码器的效果直接影响到合成语音的音质,因此我们还衡量了多子带 WaveRNN 还原语音信号的质量:

从上表结果可以看出,8-bit 量化的 4 个子带的 WaveRNN 模型所生成语音的音质和全频带的 WaveRNN 并没有本质差别,但是实时率从原本的 1.337 提升到了 0.171,大幅提升了语音合成系统的生成效率。

三、  总结及展望


本方案能够生成高质量的合成语音,解决了传统序列到序列声学模型的合成稳定性问题,并且显著提升了语音合成系统的生成效率。未来将进一步探索 DurIAN 模型的个性化应用,例如歌唱、音色定制等等,还将尝试针对低资源数据构建稳定的语音合成系统。此外仍将进一步探索新的声学模型和声码器,从而提升整个语音合成系统的性能。

四、  参考文献


1.  Yu, Chengzhu, Heng Lu, Na Hu, Meng Yu, ChaoWeng, Kun Xu, Peng Liu et al. "DurIAN: Duration Informed Attention NetworkFor Speech Synthesis." Proc. Interspeech 2020 (2020): 2027-2031.


2. Wang, Yuxuan, R. J. Skerry-Ryan, DaisyStanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang et al."Tacotron: Towards end-to-end speech synthesis." arXiv preprintarXiv:1703.10135 (2017).


3. Shen,Jonathan, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly, ZonghengYang, Zhifeng Chen et al. "Natural tts synthesis by conditioning waveneton mel spectrogram predictions." In 2018 IEEE InternationalConference on Acoustics, Speech and Signal Processing (ICASSP), pp. 4779-4783.IEEE, 2018.


4.Kalchbrenner, Nal, Erich Elsen, Karen Simonyan, Seb Noury, Norman Casagrande,Edward Lockhart, Florian Stimberg, Aaron van den Oord, Sander Dieleman, andKoray Kavukcuoglu. "Efficient neural audio synthesis." arXivpreprint arXiv:1802.08435 (2018).

2020 年 12 月 11 日 14:25551

评论

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

3.7亿条保单数据怎么分析?这个大数据平台有绝招

华为云开发者社区

大数据 hadoop 数据湖 FusionInsight Kyligence

高效程序员的45个习惯:敏捷开发修炼之道(5)

石云升

敏捷开发 熵增 用代码沟通

linux入门系列13--磁盘管理之RAID、LVM技术

黑马腾云

Linux centos raid lvm 磁盘挂载

SpreadJS 纯前端表格控件应用案例:货运代理客户服务平台

Geek_Willie

ARTS 挑战打卡第十二周(200727-200802)

老胡爱分享

ARTS 打卡计划

ARTS 挑战打卡第十三周(200803-200809)

老胡爱分享

ARTS 打卡计划

七夕情人节,程序员的表白方式简直太秀了!

程序员生活志

程序员 七夕

惠普精灵家族助力IMC上海站,极致体验尽享电竞狂欢

intel001

ARTS 挑战打卡第十一周(200720-200726)

老胡爱分享

ARTS 打卡计划

英特尔大小核试水 将推出8+8+1架构酷睿处理器

intel001

linux入门系列14--ssh服务及主机远程管理

黑马腾云

Linux centos linux运维 红帽认证

新晋“网红”Cat1 是什么

华为云开发者社区

后端 物联网 华为云 无线通信 Cat.1

一行代码实现简易服务器并共享文件

王坤祥

Python 共享文件

七夕节来啦!AI一键生成情诗,去发给你的女朋友吧!

华为云开发者社区

AI 智能高效 华为云 modelarts 七夕

linux入门系列12--磁盘管理之分区、格式化与挂载

黑马腾云

Linux centos 编辑器 linux运维 vi/vim

7. Jackson用树模型处理JSON是必备技能,不信你看

YourBatman

json Jackson ObjectMapper 树模型

知识点:操作系统异常的分类

王坤祥

操作系统 异常

java安全编码指南之:基础篇

程序那些事

Java 安全编码 安全编码指南

【程序员自救指南】一个证书,让我哄好了小师妹

华为云开发者社区

网络安全 浏览器 华为云 SSL证书 安全证书

LeetCode题解:20. 有效的括号,for循环replace,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

SpreadJS 纯前端表格控件应用案例:立信智能审计云平台(SACP)

Geek_Willie

追逐影子的人,最终只会是影子

小隐乐乐

13年毕业,用两年时间从外包走进互联网大厂!

小傅哥

成长 小傅哥 经历 工作 入职

ARTS 挑战打卡第十周(200713-200719)

老胡爱分享

ARTS 打卡计划

区块链数字钱包开发方案,持币生息理财钱包搭建

WX13823153201

钱包系统开发

正向代理与反向代理

王坤祥

nginx 反向代理 代理 正向代理与反向代理 Proxy

linux入门系列11--Centos7网络服务管理

黑马腾云

Linux centos 网络配置 运维工程师

Python实现一个计时功能的装饰器

王坤祥

Python 装饰器

linux入门系列15--文件传输之vsftp服务

黑马腾云

Linux centos linux操作 linux运维

Docker 最常用的镜像命令和容器命令

哈喽沃德先生

Docker 容器 微服务 容器技术 容器化

百度联合发布全球最大中文自然语言处理数据共建计划“千言”

百度大脑

人工智能 百度 nlp 百度大脑

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

DurIAN: 基于时序注意力神经网络的语音合成系统 | 论文解读-InfoQ