写点什么

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

  • 2018-03-26
  • 本文字数:4653 字

    阅读完需:约 15 分钟

关键摘要

  • 论文提出了单层循环神经网络 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

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

2018-03-26 07:052937
用户头像

发布了 52 篇内容, 共 30.1 次阅读, 收获喜欢 73 次。

关注

评论 1 条评论

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

探讨篇(二):分层架构的艺术 - 打造合理且高效的架构体系

京东科技开发者

如何利用 Seaborn 实现高级统计图表

EquatorCoco

统计 图表

StreamFab Downloader(视频下载工具)v6.1.7.8 激活版下载

iMac小白

DevOps后时代,构建基于价值流的平台化工程

嘉为蓝鲸

DevOps CMMI 平台化

SmartFTP Enterprise 10(FTP客户端)特别版下载

iMac小白

ITIL 4给ITSM建设带来哪些指导性意义?

嘉为蓝鲸

ITSM ITIL

AI协同 创未来:Atlassian携手合作伙伴探讨AI时代下的软件研发新机遇

龙智—DevSecOps解决方案

智慧管网 | “数字大脑”加速“能源动脉”新升级

KaiwuDB

520专属——使用Python代码表白究竟能不能成功?

我再BUG界嘎嘎乱杀

Python 代码 520

Adobe Substance 3D Painter(pt3D绘画软件)激活版

iMac小白

win版Net Monitor For Employees Pro(专业电脑监测软件) v6.3.2 激活版下载

iMac小白

NetSetMan Pro(电脑ip切换软件)v5.3.1 特别版下载

iMac小白

NetSetMan下载

win版WinCatalog 2024(磁盘管理)激活版

iMac小白

WinCatalog下载 WinCatalog特别版

Java常用的JSON序列化与反序列化工具实践

京东科技开发者

嘉为蓝鲸WeOps上新丨新增IP地址管理,扩充实例级别权限管控

嘉为蓝鲸

监控管理平台 IP地址 运维管理 #WeOps

Amazon Q Developer 实战:从新代码生成到遗留代码优化(上)

亚马逊云科技 (Amazon Web Services)

生成式AI

那些逃离北上广的程序员们,后来都怎么样了?| 编码人声

声网

Rhinoceros 8 (犀牛8) v8.7.2激活版

iMac小白

Rhinoceros 8下载 Rhinoceros 8 破解版 Rhinoceros 8激活版

顶流自动驾驶,正在赢得民心

Openlab_cosmoplat

Python装饰器,增强代码的魔力

我再BUG界嘎嘎乱杀

Python 编程 软件开发 装饰器

软件测试学习笔记丨JenkinsAPI接口

测试人

软件测试

从Exchange 谈企业邮件系统运维

嘉为蓝鲸

邮件系统 exchange 邮件管理

Lightning Labs计划在比特币链上推出稳定币:加速支付革命

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Radiant Photo(照片编辑美化软件)特别版下载

iMac小白

Radiant Photo下载 Radiant Photo特别版 Radiant Photo激活版

发布效率提升3倍!嘉为蓝鲸助力一流券商应用发布敏捷与合规

嘉为蓝鲸

运维 AIOPS 自动化运维 金融业

DeepMind与谷歌大脑联手推出WaveRNN,移动端合成高保真音频媲美WaveNet_Google_马卓奇_InfoQ精选文章