BIGVGAN: A UNIVERSAL NEURAL VOCODER WITHLARGE-SCALE TRAINING——TTS论文阅读

news2024/11/18 12:43:12

笔记地址:https://flowus.cn/share/a16a61b3-fcd0-4e0e-be5a-22ba641c6792
【FlowUs 息流】Bigvgan

论文地址:

BigVGAN: A Universal Neural Vocoder with Large-Scale Training

Abstract

背景:

  • 最近基于生成对抗网络(GAN)的声码器取得了一定的进展,这种模型可以基于声学特征生成原始波形。
  • 尽管如此,为大量说话者在不同录音环境中合成高保真音频仍然是一个挑战。

BigVGAN介绍

  • 提出了BigVGAN,这是一种泛用性声码器(universal vocoder)。
  • 它对各种超出训练分布的场景都有良好的泛化能力,而且无需微调。

技术创新

  • 在GAN生成器中引入了周期激活函数(periodic activation function)和抗混叠表示(periodic activation function)。
  • 这些创新带来了音频合成所需的归纳偏置(inductive bias),显著提升了音频质量。

规模扩展

  • 将GAN声码器的规模扩大到了最大112M参数,这在现有文献中是前所未有的。
  • 识别并解决了大规模GAN训练中的失败模式,同时保持了高保真输出而不过度规范化。

性能成就

  • 仅在干净的语音数据集LibriTTS上训练的BigVGAN,在各种零样本(超出训练分布)条件下都达到了最先进的性能。
  • 这包括未见过的说话者、语言、录音环境、歌声、音乐以及乐器音频。

1.Introduction

背景与现有方法

  • 深度生成模型在原始音频建模方面取得了显著的成功。
  • 成功的方法包括自回归模型、基于流的模型、基于GAN的模型和扩散模型。
  • 特别地,基于GAN的声码器能够在条件是mel频谱图的情况下生成高保真的原始音频,并且合成速度比实时快数百倍。

现有挑战

  • 现有的GAN声码器仅限于在干净环境中记录的数量适中的声音,因为模型容量有限。
  • 当模型基于不同录音环境中未见过的说话者的mel频谱图时,音频质量可能会严重下降。

实际应用的需求

  • 实际应用中,能够对分布外样本进行零样本生成的通用声码器非常有价值,例如文本到语音、神经语音克隆、语音转换、语音到语音翻译和神经音频编解码器等场景。

模型扩展趋势

  • 在文本生成和图像合成中,模型大小的扩展对于零样本性能是一个明显趋势,但这在音频合成中尚未被探索。
  • 虽然基于似然的模型由于其简单的训练目标和稳定的优化而更易于扩展,但作者选择使用大规模GAN训练来构建通用声码器,因为GAN声码器有全并行生成高维波形的能力,并且不强加任何保持潜在数据和数据之间双射关系的结构限制。

BigVGAN的贡献

  • 引入了周期激活到生成器中,为音频合成提供所需的归纳偏置。
  • 提出了抗混叠多周期性组成(AMP)模块,用于建模复杂的音频波形。
  • 成功将BigVGAN扩展到1.12亿参数,修复了大规模GAN训练的失败模式,而不是规范化生成器和鉴别器。
  • 实验证明,拥有1400万参数的BigVGAN-base在内部和外部分布样本上超过了同等规模的最先进的神经声码器。
  • 特别是,拥有1.12亿参数的BigVGAN在包括未见过的说话者、新语言、歌声、音乐和多样化未见录音环境下的乐器音频等各种零样本生成场景中,都大幅度超过了最先进的模型。

2.Related Work

Bigvgan是基于GAN提出的,这部分内容介绍了与bigvgan有关的一些工作,主要围绕着GAN展开。

图像合成中的GAN

  • GAN最初是为了图像合成而提出的,并且通过优化架构或大规模训练取得了令人印象深刻的结果。

音频合成中的GAN

  • 之前的工作集中在改进鉴别器架构或增加新的辅助训练损失上。
  • MelGAN引入了multi-scale多尺度鉴别器(MSD),使用平均池化在多个尺度上对原始波形进行下采样,并分别在每个尺度上应用基于窗口的鉴别器。
  • GAN-TTS使用不同大小的随机窗口的鉴别器集合,并使用条件鉴别器对调节器和波形进行对抗性映射。
  • Parallel WaveGAN扩展了单一短时傅里叶变换(STFT)损失到多分辨率,并将其作为GAN训练的辅助损失。
  • HiFi-GAN重用MelGAN的MSD,并引入了多周期鉴别器(MPD)以进行高保真合成。
  • UnivNet使用多分辨率鉴别器(MRD),它以多分辨率频谱图为输入,并可以提高合成波形的频谱结构的清晰度。
  • CARGAN将部分自回归结合到生成器中,以提高音调和周期性的准确性。

本工作的重点

  • 本文着重于改进和扩展生成器。
  • 引入了周期性归纳偏置(periodic inductive bias),用于音频合成,并解决了非自回归生成器架构中的特征混叠问题。
  • 架构设计与时间序列预测、隐式神经表示和图像合成的最新结果有联系。

不同生成器架构的比较

  • 有研究认为,不同的生成器架构对于单说话者的神经声码器来说表现相当。
  • 作者展示了改进生成器架构对于在具有挑战性条件下的通用神经声码器至关重要。

通用神经声码器的成功有限

  • 由于明显的挑战,通用神经声码器的成功有限。
  • WaveRNN之前被应用于通用声码器任务。
  • 最近,GAN声码器被发现是一个很好的候选者。

3.Method

介绍了GAN声码器的基础知识并进一步介绍了Bigvgan

3.1Preliminaries of GAN Vocoder

介绍了GAN语音合成技术的基础知识,这里进行一个提炼总结

生成器(Generator)

功能:将梅尔频谱图或其他音频特征转换成原始波形。

历史架构:

  • WaveNet:一种流行的深度学习音频生成架构,由Yamamoto等人在2020年的研究中使用。
  • 卷积网络:使用一系列残差块,逐渐将梅尔频谱图上采样成高分辨率波形。这种方法由Kumar等人(2019年)和Kong等人(2020年)采用。

本研究选择:选择HiFi-GAN生成器作为基准架构,理由是其高效且适用于多种应用场景。

判别器(Discriminator)

作用:引导生成器合成高质量、连贯的波形,同时尽量减少人耳可感知的误差。

结构:包含多个子判别器,针对波形的不同分辨率窗口进行操作。

  • 多周期判别器(MPD):将1-D信号转换为2-D表示,通过2-D卷积捕获多周期结构,用于HiFi-GAN。
  • 多尺度判别器(MSD):处理不同频率的下采样1-D信号,每个子判别器对应一个频率,由Kumar等人在2019年提出。
  • 多分辨率判别器(MRD):由Jang等人在2020和2021年提出,操作于不同STFT分辨率的2-D线性频谱图上,能更好地处理音频质量,尤其是音高和周期性错误。

改进:研究表明,使用MRD替代MSD可以进一步提升音频质量。

训练目标(Training Objectives)

基础:基于HiFi-GAN的训练目标,但有所改进。

组成:

  • 最小二乘对抗损失:使生成的波形与真实波形之间的差异最小化。
  • 特征匹配损失:确保生成波形在特征层面与真实波形相似。
  • 光谱L1回归损失:专注于梅尔频谱图,进一步提升音频质量。

创新:将MSD替换为MRD,这一改变旨在减少音频中的音高和周期性错误,从而提升整体音频质量。

3.2Periodic inductive bias

音频波形具有周期性

特征:音频波形具有高度周期性,可以自然地表示为原始周期组件的组合(即在Dirichlet条件下的傅里叶级数)。

意义:这表明我们需要向生成器架构提供所需的归纳偏差(inductive bias)。

当前GAN语音合成器并没有充分利用这种周期性,具有一定的局限性

方法:目前非自回归GAN语音合成器(例如Kong等人,2020年的研究)主要依赖于扩张卷积层来学习不同频率的必要周期组件。

激活函数:使用的激活函数(例如Leaky ReLU)可以产生具有必要非线性的新细节,但并不提供任何周期性的归纳偏差。

问题:发现Leaky ReLU在波形领域的外推(extrapolation)表现不佳。尽管模型能够在训练时看到的录音环境中生成高质量的语音信号,但在分布外场景(如未见过的录音环境、非语音发声和乐器音频)中性能显著下降。

故引入周期性归纳偏差(periodic inductive bias)

方法:通过应用最近提出的周期性激活函数——Snake函数(Liu等人,2020年),将周期性的适当归纳偏差引入到生成器中。Snake函数定义为 fα(x) = x + (1/α)sin²(αx),其中α是一个可训练参数,控制信号的周期组件频率,较大的α产生更高的频率。

特点:使用sin²(x)确保单调性,并使其易于优化。Liu等人(2020年)展示了这种周期激活在温度和金融数据预测中展现出改进的外推能力。

BigVGAN的应用

实施:在BigVGAN中,使用带有通道级可训练参数α的Snake激活函数fα(x),这些参数定义了每个一维卷积通道的周期频率。

效果:这种具有学习频率控制的周期函数形式使卷积模块能够自然地适应具有多周期组件的原始波形。研究表明,基于Snake的生成器对于训练期间未见过的分布外音频样本更加鲁棒,显示出在通用语音合成任务中强大的外推能力。

示例和证据:参见图2中的示例;使用Snake激活的BigVGAN-base与HiFi-GAN相比更接近地面真实样本。

3.3Anti-aliased Representation

强调了在使用Snake激活函数时,为了防止混叠伪像,需要在生成器中加入抗混叠处理。通过在每个残差扩张卷积层中应用经过滤波的Snake非线性,可以有效减少合成波形中的高频伪像,从而在各种评估中取得显著的性能提升。同时,也指出了在抗混叠处理中的一些挑战和局限性。

抗混叠表示(ANTI-ALIASED REPRESENTATION)

背景:虽然Snake激活函数为模拟原始波形提供了必要的周期性归纳偏差,但它可能会产生连续时间信号中的任意高频细节,这些细节无法由网络的离散时间输出表示,从而导致混叠(aliasing)伪像。

解决方案:为了抑制这种副作用,可以应用低通滤波器(例如Karras等人,2021年的研究)。这种抗混叠非线性操作包括沿时间维度对信号进行2倍上采样,应用Snake激活函数,然后将信号下采样2倍。这种做法是由Nyquist-Shannon采样定理(Shannon,1949年)启发的常见做法。

滤波器的应用:每次上采样和下采样操作都伴随着低通滤波器的使用,该滤波器使用具有Kaiser窗的窗口化sinc滤波器(Oppenheim & Schafer,2009年)。

在生成器中的应用

实施方式:在生成器内的每个残差扩张卷积层中应用这种过滤的Snake非线性,以获得离散时间1-D信号的抗混叠表示。该模块被命名为抗混叠多周期性组合(AMP)。

效果:集成过滤激活可以减少合成波形中的高频伪像。参见图2中的BigVGAN-base无滤波器与BigVGAN-base(带滤波器)的对比。

性能提升:将展示该方法在各种客观和主观评估中提供了显著的改进。

注意事项

其他探索:也探索了抗混叠上采样层,但这会导致显著的训练不稳定,并导致大型模型的早期崩溃。

3.4BigVGAN with Large Scale Training

强调了在开发大型神经语音合成器(如BigVGAN)时,既需要考虑模型规模的扩展,也需要关注训练过程中的稳定性和效率。通过增加模型大小、调整学习率和批量大小,以及应对训练过程中的挑战,研究者能够在保持GAN训练稳定性和实用性的同时,探索通用语音合成的极限。

模型扩展

起点:使用与HiFi-GAN V1配置相当的改进生成器作为起点,称为BigVGAN-base,参数约14M(由Kong等人,2020年提出)。

扩展方法:增加上采样块的数量和每个块的卷积通道数。BigVGAN-base通过4个上采样块将信号放大256倍,比例为[8, 8, 2, 2]。每个上采样块都伴随着多个带扩张卷积的残差层,即AMP模块。

细化调整:将256倍上采样分成6个块[4, 4, 2, 2, 2, 2],以实现更细粒度的特征细化。此外,将AMP模块(类似于HiFi-GAN中的MRF)的通道数从512增加到1536。

最终模型:具有1536个通道和112M参数的模型被称为BigVGAN。

训练调整

学习率:发现HiFi-GAN使用的默认学习率2×10^-4会导致BigVGAN训练早期崩溃。将学习率减半到1 × 10^-4可以减少这种失败。

批量大小:大批量大小有助于减少训练中的模式崩溃(Brock等人,2019年)。从常规的16增加到32,以在训练效率和稳定性之间取得良好平衡。

训练挑战:即使进行了上述更改,大型BigVGAN在训练早期仍可能容易崩溃。通过跟踪训练中各模块的梯度范数,发现抗混叠非线性显著放大了MPD的梯度范数,导致生成器在训练早期收到发散梯度,引发不稳定性和潜在崩溃。

解决方案:通过将全局梯度范数限制在10^3,接近112M BigVGAN生成器的平均梯度范数,来缓解这个问题。这种梯度裁剪防止了生成器的早期训练崩溃。

其他探索

探索方向:探索了包括改进模型架构、应用谱归一化(Miyato等人,2018年)来稳定GAN训练(对于大规模图像域GAN训练至关重要)和数据增强以提高模型泛化能力的各种方法。

5.Conclusion

研究范围:本研究在数据规模、模型规模和评估方法上均达到前所未有的水平,探索了通用神经语音合成的极限。

性能分析:

  • 评估方法:使用各种自动和人类评估方法分析性能。
  • 应用场景:包括未见过的发言者、语言、录音环境以及分布外数据。

BigVGAN的改进:

  • 生成器架构:通过引入具有学习频率控制的抗混叠周期激活函数,改进了生成器架构。
  • 目的:注入了波形生成所需的期望归纳偏差。

大型GAN语音合成器的展示:

  • 规模:展示了迄今为止最大的GAN语音合成器。
  • 零样本性能:在各种分布外(OOD)条件下表现强劲,包括未见过的录音环境、歌声和乐器音频。

对未来研究的启发:

  • BigVGAN的应用:相信BigVGAN结合大规模训练中学到的实用经验,将激发未来通用语音合成的研究努力。
  • 实际应用:改善现实世界应用的最新成果,包括声音克隆、声音转换、语音翻译和音频编解码器。

这项研究通过BigVGAN,展示了在通用神经语音合成领域的一个重要步骤,特别是在处理未见过的发言者、语言和录音环境等分布外数据方面的能力。此外,该研究还为未来在通用语音合成领域的研究提供了实际的经验和启示,预计将促进相关技术在现实世界应用中的发展和应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1407154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript 执行上下文与作用域

执行上下文与作用域 ​ 执行上下文的概念在 JavaScript 中是颇为重要的。变量或函数的上下文决定了它们可以访问哪些数据,以及它们的行为。每个上下文都有一个关联的变量对象(variable object), 而这个上下文中定义的所有变量和函…

Vue基础–列表渲染-key的原理

一、v-for列表渲染 1.列表渲染 在真实开发中,我们往往会从服务器拿到一组数据,并且需要对其进行渲染。 这个时候我们可以使用v-for来完成; v-for类似于JavaScript的for循环,可以用于遍历一组数据; 2.v-for基本使用…

QT发送request请求

时间记录:2024/1/23 一、使用步骤 (1)pro文件中添加network模块 (2)创建QNetworkAccessManager网络管理类对象 (3)创建QNetworkRequest网络请求对象,使用setUrl方法设置请求url&am…

142基于matlab的移动力过简支梁程序

基于matlab的移动力过简支梁程序,算法采用newmark-belta法,输出简支梁,求解静力位移,自振特性,动力特性。可调节简支梁参数。程序已调通,可直接运行。 142 matlab简支梁自振特性 (xiaohongshu.com)

java集合ArrayList和HashSet的fail-fast与fail-safe以及ConcurrentModificationException

在 java 的集合工具类中&#xff0c;例如对 ArrayList 或者 HashSet 进行删除元素后再遍历元素时&#xff0c;会抛出 ConcurrentModificationException 异常。 fail-fast ArrayList public class TestList {public static void main(String[] args) {ArrayList<Integer>…

02-echarts如何画轴心轨迹图

echarts如何画轴心轨迹图 一、创建图表盒子1、创建盒子2、定义数据1、定义x&#xff0c;y点数据2、集合x,y点数据3、组件使用1、引入2、编写获取半径方法2、编写获取角度方法3、转换角度&#xff0c;半径数组3、初始化图表方法4、调用方法 二、全部代码1、dataXY.js2、组件中代…

Qt 多次绘图

使用Qt 的时候发现&#xff1a; 背景&#xff1a;自己定义一个类&#xff0c;把它和某个ui文件绑定。(类似 Qt creator 默认创建的工程&#xff09;问题&#xff1a;当鼠标在窗口内单击的时候会触发2次绘图。&#xff1f;难道不应该是一次吗&#xff1f; 于是开始了如下的测试…

SQL Server多数据表之间的数据查询和分组查询

文章目录 一、多数据表之间的数据查询1.1内连接查询&#xff08;Inner join&#xff09;1.2 左外连接 (LEFT JOIN):1.3右外连接 (RIGHT JOIN):1.4. 全外连接 (FULL OUTER JOIN):1.5 交叉连接 (CROSS JOIN):1.6 自连接 (SELF JOIN):1.7 子查询: 二、分组查询2.1 分组查询2.2 查询…

ai伪原创生成器app,一键生成原创文章

近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;AI伪原创生成器App已经成为了许多写手和创作者们的新宠。这款AI伪原创生成器App以其一键生成原创文章的快速便捷性&#xff0c;正在引起广泛的关注和使用。下面跟随小编一起来了解下吧&#xff01; 随着互联网的普及&…

两千字讲明白java中instanceof关键字的使用!

写在开头 在过往的内容中&#xff0c;我们讲了不少的Java关键字&#xff0c;比如final、static、this、super等等&#xff0c;Java中的关键字非常之多&#xff0c;下图是整理的关键字集合 而我们今天要学习的就是其中的instanceof关键字&#xff01; instanceof的定义 inst…

共享wifi项目到底能不能做?

如今&#xff0c;互联网已经渗透到我们生活的方方面面&#xff0c;人们对WiFi的需求越来越大&#xff0c;已经成为人们不可或缺的一部分。在这样的背景下&#xff0c;共享WiFi项目应运而生&#xff0c;作为近年来兴起的创业选择&#xff0c;成为了越来越多创业者追逐的热门项目…

5分钟做自己的微信红包封面

文章目录 怎么制作自己的红包封面&#xff1f;开通红包封面的要求如下&#xff1a;收费情况制作具体网站&#xff1a;https://chatapi.onechat.fun/register?affYoU6 提交审核logo封面、挂件、气泡证明材料 发放红包封面其他 怎么制作自己的红包封面&#xff1f; 开通红包封面…

秒级弹性!探索弹性调度与虚拟节点如何迅速响应瞬时算力需求?

作者&#xff1a;吴昆 前言 在前面的文章《弹性调度助力企业灵活应对业务变化&#xff0c;高效管理云上资源》中&#xff0c;我们介绍了阿里云容器服务 ACK 弹性调度为了帮助客户解决在使用云上弹性资源时&#xff0c;面对的“难以差异化控制业务资源使用量&#xff0c;缩容时…

C语言第七弹---循环语句

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 循环语句 1、while循环1.1、if和while的对比1.2、while语句的执行流程1.3、while循环的实践1.4、练习 2、for循环2.1、语法形式2.2、for循环的执行流程2.3、for循…

架构篇16:高性能NoSQL

文章目录 K-V 存储文档数据库列式数据库全文搜索引擎小结关系数据库经过几十年的发展后已经非常成熟,强大的 SQL 功能和 ACID 的属性,使得关系数据库广泛应用于各式各样的系统中,但这并不意味着关系数据库是完美的,关系数据库存在如下缺点。 关系数据库存储的是行记录,无法…

使用Java编写RESTful Web服务

RESTful Web服务是一种基于HTTP协议的软件架构风格&#xff0c;它使用不同的HTTP方法&#xff08;如GET、POST、PUT、DELETE等&#xff09;来执行不同的操作&#xff0c;并使用统一的接口来访问和操作资源。在Java中&#xff0c;有多种框架可用于编写RESTful Web服务&#xff0…

Typecho后台无法登录显示503 service unavailable问题及处理

一、Typecho 我的博客地址&#xff1a;https://www.aomanhao.top 使用老薛主机动态Typecho博客框架handsome主题的搭配&#xff0c;文章内容可以异地网页更新&#xff0c;可以听后台背景音乐&#xff0c;很好的满足我的痛点需求&#xff0c;博客部署在云端服务器访问响应较快…

阿里云4核8G云服务器价格、带宽及系统盘费用

阿里云服务器4核8g配置云服务器u1价格是955.58元一年&#xff0c;4核8G配置还可以选择ECS计算型c7实例、计算型c8i实例、计算平衡增强型c6e、ECS经济型e实例、AMD计算型c8a等机型等ECS实例规格&#xff0c;规格不同性能不同&#xff0c;价格也不同&#xff0c;阿里云服务器网al…

Steam幻兽帕鲁搭建教程,如何选择服务器

如何选购服务器 大家可以根据自己的需求选购&#xff0c;大家最好选用物理服务器&#xff0c;可以找我参考一下。1到6人建议使用16H32G的20带宽的。12人以上建议大家使用E5的CPU内存64G的带宽50起步的。大家在选择服务器商的时候一定要选择正规的拥有资质的&#xff0c;这样售…

RabbitMQ系列之交换机的使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《RabbitMQ系列之交换机的使用》。&#x1f3af;&…