BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

DeepMind与谷歌大脑联手推出WaveRNN,移动端合成高保真音频媲美WaveNet

| 作者 马卓奇 关注 5 他的粉丝 发布于 2018年3月26日. 估计阅读时间: 11 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

关键摘要

  • 论文提出了单层循环神经网络WaveRNN,以及双softmax层,合成音频质量可与最先进的WaveNet模型相媲美。网络的密集形式可以在GPU上产生比实时速度快4倍的24kHz 16位音频。
  • 论文采用权重修剪方法减少了WaveRNN的权重数量。参数数量固定时,稀疏网络表现比小型密集网络更好,且稀疏度高达96%时也能保持该对比关系。由于权重数量减少,稀疏WaveRNN可以在移动CPU上生成高保真音频。
  • 论文提出一种新的基于子尺度的生成方法,将长序列分成一批短序列,并可以同时生成多个样本。

研究背景介绍

序列生成模型在自然语言、自然图像、视频、音频等领域都取得了非常好的效果。但是有效的采样一直是该类模型难以解决的问题。论文通过对文本转语音的合成,使用一系列技术减少采样时间,同时保持输出的质量。

论文的目标是增加序列模型的采样效率,而不损失模型的性能。采样过程花费的时间T(u)是目标u包含的样例个数和产生每个样例所需的时间的乘积。后者可以分解为计算时间c(opi)和网络中每层所需的运行时间d(opi)。

T(u)受四个参数影响,可能会变得很大:

u:样本数量较多,例如高保真音频由每秒24000个16位的样例组成。

N:网络结构较深,如WaveNet。

c(opi):参数较多。

d(opi):每层运行所需时间较多。

作者针对这4个参数,分别提出了提升采样速度的方法。在生成音频质量损失最低的情况下,通过减少这4个参数的值,从而降低整体的采样所需时间T(u)。

WaveRNN

针对公式中的参数N,作者设计了WaveRNN,降低了序列模型中对每个样本的操作次数N。

作者利用了循环神经网络(RNN)的核心特点:通过单循环层可以输出对文本的高非线性变换。WaveRNN由单层RNN和双softmax层构成,softmax层用于预测16位音频样本。

图1 WaveRNN结构图

作者将RNN的状态分成两部分,c代表粗(高8位)样本,f代表细(低八位)样本。每一个部分分别输入对应的softmax层,对8位细样本的预测是基于8位粗样本的。R与粗样本和细样本同时相乘,门输出只用于估算粗样本,然后采样得到ct。从P(c)中采样得到c后,估算细样本,然后采样得到ft

表1 给定模型和WaveRNN-896模型之间的A/B对比测试

从A/B对比试验中可以看出,仅有896单元的WaveRNN与最大的WaveNet达到了相当的NLL评分,而且音频保真度之间也没有很大的差距,而且MOS评分均很高。WaveRNN在产生每一个16位样本时,仅用了N=5次的矩阵矢量相乘,就达到了这样的表现性能。而WaveNet用了两层网络,每层30个残差块(residual block),即N=30*2=60次矩阵矢量相乘。

WaveRNN采样在GPU的实现

即使N很小,用普通方法实现WaveRNN也无法直接生成实时或更快的音频。内存带宽限制和进行N次相乘需要的启动时间都是很严重的瓶颈。作者通过使用持久内核来实现采样过程。在采样开始阶段一次性加载参数,并且在整个过程中将参数保存在寄存器中,来避免内存带宽的限制。同时,由于一次说话间隔的整个采样过程由单次GPU操作完成,也避免了操作启动时间的限制。

稀疏WaveRNN

WaveRNN的结构大大减少了所需操作次数N,并且将采样实现成单次GPU操作也减少了启动时间消耗d(opi),下面介绍一下如何减少每次操作的计算时间消耗c(opi)。

权重稀疏化与结构稀疏化

减少网络的参数数量可以减少采样所需的计算时间c(opi)。基于此,作者的目标是在给定参数数量情况下最优化表现性能。作者使用二值mask来限定权重矩阵的稀疏模式,对WaveRNN的权重进行稀疏化。作者采用结构化稀疏(块稀疏)来减少内存负荷。稀疏mask的结构是非重叠的权重块,一起修剪或保持,基于块内权重的平均大小。在每块含有m=16个权重时,表现性能损失最小,同时减少了存储稀疏模式所需的空间。

在参数固定时,大型稀疏WaveRNN比小型密集WaveRNN表现性能要好,而且这一对比关系在稀疏程度高达96%时也能保持。

图2 固定参数数量NLL与稀疏度变化曲线

从图中可以看出,稀疏结构为16x1和4x4在高稀疏度可以达到最优表现。

移动CPU上的稀疏WaveRNN采样

稀疏WaveRNN的高质量输出、参数较少和内存带宽低要求的特点使其很适合在低功耗移动平台上得到有效实现。作者在移动CPU上实现了稀疏矩阵矢量相乘和非线性单元,并进行了基准实验:

表2 稀疏WaveRNN移动采样性能基准实验结果

上表是稀疏WaveRNN移动采样性能基准实验结果,实现平台为通用骁龙808和835移动CPU。模型有1024个隐藏单元,95%稀疏度和4x4稀疏结构。

作者用softsign非线性函数替代了门控循环单元(GRU)中标准的tanh和sigmoid函数,取得了更快的计算速度。

表3 移动CPU内核非线性单元每秒评测次数和最大相关误差

尽管移动CPU的计算量和内存带宽比GPU小了2-3个数量级,在移动CPU上的实验表明这些资源足以让稀疏WaveRNN在低功耗设备上实时生成高保真度的音频。这是目前第一个能够在各种计算平台,包括移动CPU上进行实时音频合成的序列神经网络模型。

子尺度(Subscale)WaveRNN

最后,针对采样时间T(u)公式中的u参数(目标中的样本数量),作者提出了subscale WaveRNN。

子尺度依赖方法

图3 Subscale WaveRNN依赖机制

图中每一个方块对应一个16位的样本。子尺度方法首先将张量分割成B个交错样本的子张量。每个子张量基于之前生成的子张量的过去和未来样本生成。过去范围不受限制,而未来范围为F,根据条件网络的接受野而定,然后应用批采样。最后的张量由生成的子张量重组而成。

批采样(Batched Sampling)

一个尺度为L的tensor折叠成B个sub-tensor,每一个尺度为L/B。Subscale的方法可以在一个batch中一次生成多个样本。由于每个子张量的生成基于前一个子张量,在实际中只需要相对较小的未来状态视野(future horizon F)。下一个子张量的生成可以在前一个子张量的前F个样本生成后立刻开始。实验证明,Subscale WaveRNN能够每一步产生B=16的样本,同时不损失音频保真度。

实验

作者在单人北美英语文字转语音数据库上进行测试,输入是语言特征向量,输出是24kHz,16位的波形。在验证集上进行三项评估:负log似然函数(NLL),人为评价的平均主观意见分(MOS),以及人为评价模型之间的A/B对比测试(分数在-3非常差和+3非常好之间)。

WaveRNN质量评测

下表给出了不同大小的WaveRNN的评测结果。较大的WaveRNN的NLL分数接近60层的WaveNet的评分。人为打分的WaveRNN-896和WaveNet之间的A/B对比试验表明在生成语音质量方面没有明显差别。

表4 WaveRNN NLL和MOS在文本转语音基准实验上的评测结果

WaveRNN采样速度评测

WaveRNN-896实现的持久GPU操作采样效率最高。下表给出了不同批尺寸的采样速度,随着批尺寸增加,计算吞吐量也随之增加。

表5 WaveRNN GPU核速度(样本/秒)

WaveRNN-896采样过程的GPU核速度达到了96000样本/秒,大概是实时高保真24kHz 16位音频的4倍,而对应的WaveNet只有8000样本/秒。

稀疏WaveRNN质量评价

下表给出了不同模型尺寸和稀疏程度的稀疏WaveRNN NLL分数。

表6 不同模型尺寸和稀疏程度的稀疏WaveRNN NLL分数。

从表中可以看出,随模型大小增加,网络性能随之增加。随稀疏度增加,网络性能有所下降。WaveRNN-2048在稀疏度为99%时,仅含有167k个参数,也能产生高保真度的音频。

稀疏WaveRNN采样速度评测

表7 每秒ARM矩阵向量相乘(MVM)和对应的Gflops,低功耗处理器使用骁龙808和835。

Softsign GRU评测

图4 标准非线性单元和softsign非线性单元验证曲线

上图给出了标准非线性单元和softsign非线性单元在WaveRNN和Subscale WaveRNN模型的验证曲线。实验表明,softsign GRU与标准GRU单元表现性能无差,且具有更快的计算速度。

Subscale WaveRNN 质量评测

从表4中可以看出,Subscale WaveRNN 8x与基准WaveRNN-896取得了同样的MOS评分,证明在修改了依赖机制后,Subscale WaveRNN依然可以准确学习数据分布。从表1中可以看出,Subscale WaveRNN 16x的音频保真度与WaveRNN-896基本没有差别。用序列模型进行音频生成对于丢失依赖是十分敏感的,尤其是局部依赖。而作者的实验成功证明了subscale依赖机制能够有效保存对序列模型高性能有关键作用的局部依赖。

论文原文:Efficient Neural Audio Synthesis

感谢蔡芳芳对本文的审校。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT