前言:
最近在调研asr和tts相关的内容,准备开始学习相关的经典工作,为了倒逼自己学进脑子,我尝试将这些看到的一些好的学习笔记分享出来。
萌新学徒,欢迎相关领域的朋友推荐学习路径和经典工作!拜谢!
相关链接
论文地址: https://arxiv.org/pdf/2402.00892
作者主页:https://github.com/leng-yue
作者是fish-audio团队的核心创作者,B站大佬,看单位都是Nvidia。然后看到他们团队还有阿里达摩院和蚂蚁的人,感觉开源社区还是很有意思的。
一句话总结论文:
这篇工作是关于声码器(vocoders)的,之前的工作,在高保真 (HiFi) 44.1kHz领域,以及高频域中,存在光谱不连续性和模糊性,同时对域外数据缺乏鲁棒性。所以,这篇工作提出 可扩展生成对抗网络 (EVA-GAN),显著改善了上述问题。
更为关键的是,它使用36,000小时的44.1kHz音频的广泛数据集、一个上下文感知模块、一个人机协作 的工件测量工具包,并将模型扩展到大约2亿个参数,生成高保真音频。这是截止24年2月份,神经声码器中,最大的数据和音频声码器模型参数。
Preliminaries
我对声码器的内容非常不熟悉,但好在这篇论文写的比较通俗易懂,让我这个外行看起来,也有一定的头绪。
在介绍文章之前,我先简单梳理一下声码器的相关概念,如果有理解错误的地方,希望大家能够不吝指正:
- 神经声码器的定义:利用深度神经网络,从声学特性(一般是梅尔谱,Mel-Spectrograms,或者是其他的特征)中,直接生成对应的音频波形。
- 梅尔谱的来源和应用场景:语音合成、语音转换和语音增强领域。
这些领域中,一般是将音频/语义token/其他模态的信息,转成梅尔谱这个中间变量,然后用声码器去解码出对应的音频波形?这部分我不太确定了。
声码器的相关工作:
论文里写的是三个主流的方案:
- 自回归(autoregressive, AR)或基于流的模型(flow-based models)(van den Oord et al., 2016; Kalchbrenner et al., 2018; Prenger et al., 2019),
- 以GAN为中心的方法(GAN-centric approaches)(Yamamoto et al., 2020; Yang et al., 2020; Kong et al., 2020; Jang et al., 2021)
- 以及直接谱生成 (direct spectral generation, DSG)策略(Siuzdak, 2023; Kaneko et al., 2022)。
其中,基于GAN的方案,采样效率和内存优化优势明显。问题也有,频谱不一致、高低频范围伪影、反卷积棋盘伪影,导致音频质量受损。
然后,相关的经典工作有很多。
论文里分两块介绍,一部分是损失项的创新改进,主要工作有:
- UnivNet (Jang et al., 2021) 用多尺度 STFT 损失替代了 Mel-谱图损失,并采用多分辨率判别器。
- BigVGAN (gil Lee et al., 2023) 用蛇形激活(Snake Activation)来提高谱图质量和分布外(OOD)性能。
- NSF HiFi-GAN (Zhao et al., 2020; Kong et al., 2020; Open vpi, 2022)、RefineGAN (Xu et al., 2021) 和 SingGAN (Huang et al., 2022) 这样的模型,结合了 f0 源以提升音频质量和谱的连续性,但这限制了它们利用大型和多样化数据集的能力。
另一部分是改进判别器,来减少Artifacts(伪影):括多周期判别器(MPD)、多尺度判别器(MSD)、多分辨率判别器(MRD)、多尺度短时傅里叶变换判别器(MS-STFTD)和多尺度子带常数Q变换判别器(MS-SBCQTD)。
从这里可以看出来,各种奇奇怪怪的多尺度,来获取更充分的特征提取。下面是两个经典工作,也是本工作的基础:
- HiFi-GAN (Kong et al., 2020) 引入了多周期判别器(MPD),将波形转换为不同高度的二维表征 (representation),并采用二维卷积分析周期结构。 同样,HiFi-GAN 的**多尺度判别器(MSD)将波形处理为多个不同尺度的一维表征(representation), 使得对时域信息的详细分析成为可能。 **
- UnivNet (Jang et al., 2021) 提出了多分辨率谱图判别器(MSRD 或 MRD),专注于通过短时傅里叶变换(STFT)进行多分辨率时频域分析。
- (Gu et al., 2023) 引入了多尺度子带常数Q变换判别器(MS-SBCQTD)。这一新颖的方法通过利用常数Q变换,支持生成器更有效地恢复高频成分,作为传统短时傅里叶变换 (STFT)的替代方案。
基于GAN的相关工作部分,梳理到这,可以看到,跨尺度/高频信息的恢复,都有了比较好的基础工作,本工作的架构就是HiFiGAN。
生成器的介绍:
在基于GAN的声码器框架中,生成器的任务是将梅尔谱图(Mel-Spectrograms)转换为波形。
这里的公式1,是用来比较在梅尔谱计算公式下,生成器生成的音频波形和真实音频的差距,用的是一范数loss。
公式2,对抗损失,生成后的音频,过判别器后,生成的得分值,要尽可能的接近1,即要满足“欺骗”判别器的要求。用的是二范数损失。
公式3,特征匹配损失,在判别器的每层输出中,都要尽可能的让生成器生成的音频特征,和真实音频的特征接近。用的是一范数。
这里我不太清楚的是,一范数和二范数的区别是什么,对学习有什么帮助?
Discriminator判别器:
文中提到,需要用多个判别器,以减弱感知失真(perceptual distortions),但我好像没看到具体的代码和图,所以就没管了。
这里的损失函数也比较常规,用大白话来解释就是,输入和训练是分两块:
输入真实音频时,判别器的输出尽可能接近1,要能准确识别是真实音频。
输入的是生成器音频时,要尽可能的接近于0,要能准确区分出生成的音频特征,不要混淆。
越准确的判别器,就越能狠狠“打压”生成器,激发生成器的潜力。
EVA-GAN的核心内容:
这个工作的内容非常多,慢慢拆解。
4.1. Data Scaling
传统上,声码器的训练涉及使用诸如 LJSpeech (Ito & Johnson, 2017)、LibriTTS (Zen et al., 2019)、VCTK (Veaux et al., 2017) 和 M4Singer (Zhang et al., 2022) 等数据集。然而,这些数据集要么存在低采样率 (24k),要么缺乏多样性,仅覆盖有限范围的说话 者和语言。BigVGAN 研究 (gil Lee et al., 2023) 强 调了数据扩展的重要性,该研究显示在扩展到 LibriTTS (Zen et al., 2019) 数据集时,显著改善了分布 外的表现。基于此,我们旨在进一步扩大规模,以 增强模型(model)鲁棒性。
为此,Fish Audio 社区从 YouTube Music 和 Netease Music 编制了一个全面的 16,000 小时高保真音乐 和歌曲数据集(称为 HiFi-16000h)。该数据集涵盖 了包括中文、英文和日文在内的多种语言,并具有 广泛的乐器种类。据我们所知,这是迄今为止最大 的高保真音频数据集,有效解决了领域外样本的问题。
此外,为了提升语音表现,Fish Audio 社区还增加 了来自广播平台 Player FM 的额外 20,000 小时多样 语言音频(称为 PlayerFM-20000h)。为了确保样本 多样性,保持了 HiFi-16000h 和 PlayerFM-20000h 各 50% 的平衡分布。
我们的结果突显了规模和多样性在训练数据集中 的关键作用。我们的基线 HiFi-GAN 在这个广泛的 36,000 小时数据集上训练,有效减少了频谱不连续 性,并展示了复制多种音频类型的能力。这包括但 不限于唱歌、说话、低音、钢琴以及独特的声音, 如直升机噪音和水壶沸腾声。
这一段我是直接翻译的,因为内容都比较重要。我觉得很有趣的是,油管和FM的数据能这么光明正大的写出来么,虽然大家都这么玩。
我也想整一个,但想到要洗数据,我头都大了。
4.2. Model Scaling
回应BigVGAN的研究结果(gil Lee et al., 2023),该研究强调了在相对适中的LibriTTS数据集(Zen et al., 2019)(约1000小时)上,大型模型相较于小型模型 的优越性能,我们观察到通过扩大生成器,模型的 鲁棒性和整体性能有了显著提升。因此,我们将基 础EVA-GAN-base模型中的生成器参数从1630万扩 展到1.744亿,从而创建了更强大的EVA-GAN-big变体。EVA-GAN-big的增强能力在表1中显而易见,并 在图2中得以展示,特别是在高频域的连续性和分辨率方面。
扩 大 **判 别 器 **的 规 模, 例 如MPD(Kong et al., 2020)和MRD(Jang et al., 2021)并 未 带 来 成 比 例 的收益。此外,加入新的判别器如MS-STFT( @@; )和MS-SBCQTD(Gu et al., 2023)也未进一步提 升模型性能。我们假设这一结果归因于我们模型的 巨大容量,它有效捕捉了真实值(ground truth)与 生成音频之间在低频和高频范围内的细微差别。这 一能力消除了在损失函数中对特定频率范围的任何 权衡或过度强调的需求。
这个结果有点意思,生成器变大,效果提升明显,判别器的扩大,对性能的提升却不显著。不知道是不是有一些其他的隐藏trick需要探索?
4.3. The Free Lunch: Context Aware Module (CAM)
尽管在增大 HiFi-GAN (Kong et al., 2020) 生成器时,对计算资源和内存的需求增加,但由于长音频序列和显著的梯度足迹所带来的挑战,我们发现基于 1D 卷积的上下文感知模块(context-aware module),即 CAM,利用来自 ConvNeXt (Liu et al., 2022) 的构建块,所需的内存和计算资源显著减少。该模块不仅 资源高效,而且在客观和主观评估中都显著改善, 如表 1 所示。
4.4. Renew Training Paradigm
这里还是蛮关键的,我也直接翻译了:
虽然直观上扩展模型(model)、数据和上下文长度,都可以提高性能,但挑战在于,在有限的计算资源范围内,实现这一点,并保持训练的稳定性。BigVGAN,是之前最大的声码器 (gil Lee et al., 2023),但由于训练不稳定和计算限制,在进一步扩展时,就有了阻碍。为了缓解这些问题,他们减少了上下文长度,从而在稳定性和资源利用之间达成了妥协——消耗更少的资源,但以稳定性为代价。 我们的研究揭示了现有神经声码器中几种高效技术部署的区别:
4.4.1. LARGER CONTEXT WINDOW
与 HiFi-GAN (Kong et al., 2020) 和 BigVGAN (gil Lee et al., 2023) 中使用的上下文窗口(通常为 32 或 64 帧)相比,将窗口扩展到 256 帧被证明是非常有益 的。这一增加有助于模型(model)更快收敛,提 高 GPU 利用率,显著减少声谱图的不连续性。然 而,这一扩展也增加了 GPU 内存消耗并减慢了训 练速度。为了缓解这一问题,我们实施了以下几项 优化:
4.4.2. SILU IN-PLACE ACTIVATION
我们观察到,将Leaky ReLU激活函数替换为SiLU (Elfwing et al., 2017)不仅加速了模型(model)收 敛,还保持了最终性能。此外,在生成器和判别 器中尽可能采用就地激活(in-place activations)使 得GPU内存使用量减少了大约30%。
4.4.3. GRADIENT CHECKPOINTING
如表 1 所示,使用 256 帧上下文窗口时,大的batch size在 A100 GPU 上是不可行的。因此,我们对生成 器和判别器应用了梯度检查点(gradient checkpointing)(Chen et al., 2016),显著减少了梯度内存占用。 例如,EVA-GAN-base 生成器的内存使用量从 46GB 降低到 16GB,尽管训练速度减少了 30%。
4.4.4. TENSORFLOAT-32
虽然在大语言模型和计算机视觉任务中, 使用fp16和bf16的混合精度训练很常见,但我们在使 用fp16时遇到了不稳定性(特别是大的梯度范数), 而使用bf16时由于其较低的精度导致了性能下降。 因此,利用A100 GPU,我们选择了TensorFloat-32进 行训练,这提供了相比fp32,大约两倍的速度。
4.4.5. LOSS BALANCER
在对模型(model)进行scaling,并采用44.1k配置时,我们在平衡各种损失方面遇到了挑战:特征匹配损失、对抗损失、Mel-谱图损失和多尺度短时傅里叶变换(STFT)损失。损失平衡器(LOSS BALANCER),这一概念是由Encodec引入到声码器领域的,成为了解决方案。该技术根据损失的梯度自动平衡这些损失,使每个损失在参数更新过程中均能平等贡献。在没有这种平衡的情况下,我们观察到了明显的人类可感知的高频伪影,尽管客观指标如l1 Mel频谱图距离看似还可以接受。这可归因于,无法正确调整判别器损失的权重。
4.5. Human-In-The-Loop Artifact Measurement
高频干扰和噪声,主观感受可能比一些量化指标更重要,所以他们加了人在环的伪影评估。
他们设计了一种人机协作伪影测量工具包,包含一个SMOS(相似性均值选项分数)标注工具和命令行接口(CLI),以持续监测和评估生成音频的质量与人类感知标准的符合程度。
5. Experiments Setup
这部分写的非常细节:
采用与 BigVGAN (gil Lee et al., 2023) 类似的方法, 我们将基础学习率设置为 1e-4,并在 1000 的范数 下应用梯度裁剪,以管理梯度尖峰和爆炸。我们选 择的优化器是 AdamW,betas 设置为 [0.8, 0.99]。与 LLMs 中常见的做法一致,我们选择了逐步学习率 衰减,而不是 HiFi-GAN (Kong et al., 2020) 及其衍生 品中使用的基于轮次的方式。具体而言,我们在每 一步后实施了 0.999999 的指数学习率衰减。
我们的模型利用 512x 的上采样率来适应 160 个频 率条的 Mel-谱图输入,n fft 为 2048,跳跃长度为 512,窗口长度为 2048。如前所述,我们发现更大 的上下文窗口非常有利,因此我们使用了 256 帧的 上下文窗口(大约 3 秒),而不是早期模型如 HiFiGAN (Kong et al., 2020) 和 BigVGAN (gil Lee et al., 2023) 中使用的 32 或 64 帧。由于内存限制,我们 的总批量大小设置为 16,而不是之前模型中使用的 32。然而,考虑到我们模型的更大帧大小,我们仍 然实现了每批次更高的有效帧数,进一步增强了训 练的稳定性。
对 于 我 们 的 多 周 期 鉴 别 器, 正 如 HiFiGAN (Kong et al., 2020) 所 介 绍 的, 我 们 使 用 了 [3, 5, 7, 11, 17, 23, 37] 的周期。多分辨率鉴别器和多 分辨率 STFT 损失,如 UnivNet (Jang et al., 2021) 所 介绍的,设置为 [[2048, 512, 2048], [1024, 120, 600], [2048, 240, 1200], [4096, 480, 2400], [512, 50, 240]] 的 分辨率。与之前的工作 (Kong et al., 2020; gil Lee et al., 2023; Jang et al., 2021; Siuzdak, 2023) 提供的 24k 配置相比,这种设置提高了模型在高频域的性能。
在上述设置下,使用 tf32 精度,我们经历了稳定的 训练,没有出现梯度爆炸或崩溃的问题。除非另有 说明,所有模型均在包含 50% HiFi-16000h 和 50% PlayerFM-20000h 的 36,000 小时数据集上训练 100 万步,使用 NVIDIA A100 GPU。
从 HiFiGAN (Kong et al., 2020) v1 配置开始,我 们将 Leaky ReLU 激活替换为 SiLU 激活,并建 立了 44.1k 的基线,形成了 HiFi-GAN-Base。我们 选择的上采样率为 [8, 8, 2, 2, 2],上采样核大小为 [16, 16, 4, 4, 4],并且并行块(MRF 块 (Kong et al., 2020))的核大小为 [3, 7, 11]。该配置导致生成器的 参数量为 13.6M。
在 HiFi-GAN-Base 的基础上,我们在生成器之前 添加了上下文感知模块:每个块的深度和维度为 [3, 3, 9, 3] 和 [128, 256, 384, 512],drop path 比率为 0.2,核大小为 7。这导致了 EVA-GAN-base 的生 成器参数量为 16.3M,考虑到输入维度从 160 增加 到 512,额外增加了 18.6M 用于上下文感知模块。
为 了 开 发 EVA-GAN-big, 我 们 保 留 了 EVA-GAN-base 的 所 有 设 置, 但 将 上 采 样 率 更 改 为 [4, 4, 2, 2, 2, 2, 2], 上 采 样 核 大 小 更 改 为 [8, 8, 4, 4, 4, 4, 4], 并 将 并 行 块 核 大 小 更 改 为 [3, 7, 11, 13]。上采样的初始通道设置为 1536。这种 扩展使生成器的大小增加到 174.4M,总参数量达 到 193M。
实验结果:
我们评估了EVA-GAN的性能,并将其与现有方法 在多个任务中进行了比较,包括LibriTTS(24k语 音)和DSD-100(48k音乐),并观察到显著的性能 提升。
表1展示了与我们优化的HiFi-GAN (Kong et al., 2020)基线相比,上下文感知模块在推理速度和训练内存上增加的开销很小,但在我们的数据集上训 练时显著提高了性能。这表明,额外的参数有效地 增强了网络容量,而不需要过多的资源。此外,尽 管EVA-GAN-big的规模是EVA-GAN-base的六倍,但 它仅使训练内存翻倍,并将推理时间延长了一个倍 ,保持了以16的批量大小比实时快250倍的速度。
6.1. Evaluation Metrics
这里介绍了三个音频的评估metrics:
- 多分辨率短时傅里叶变换 (M-STFT),如在 Parallel WaveGAN (Yamamoto et al., 2020) 中提供, 使用来自 csteinmetz1/auraloss 的开源实现 (Steinmetz & Reiss, 2020)。
- 周期性误差 (基于CREPE) 和有声/无声分 类F1分数 (V/UV F1), 突显了没有源模块的神经声码器中的一个常见伪影。我们使用 了CARGAN (Morrison et al., 2022) 代码,代码 可在 descriptinc/cargan 获取。
- 语音质量的感知评估(PESQ)(Rix et al., 2001), 使用著名的自动语音质量评估工具的宽带版本 (16,000 Hz),可在ludlows/PESQ获取。
与 BigVGAN (gil Lee et al., 2023) 一致,我们观察到 5 级平均意见分数(MOS)并不能准确反映每个模型 的性能,因为大多数模型都获得了高分,而少量的 数据噪声可能会显著改变平均分数。由于我们的任 务涉及到声码器的复制合成,我们的目标是使模型 生成的输出与输入的 Mel-谱图(Mel-Spectrogram) 紧密相似。在输入噪声的情况下,我们不希望神经 声码器将音频质量偏向于训练数据,这可能导致听 众评分人为地偏高。
因此, 我们采用了 5 级相似性平均意见分数 (SMOS)方法,类似于 (gil Lee et al., 2023)。具体而 言,参与者被提供了参考音频(真实值)和生成音 频,以评估生成音频的质量。所有参与者都需要佩 戴耳机,并在安静的环境(环境)中聆听音频,以 便进行更准确的排名。
这里好像不是双盲?
6.4. Ablation Studies
- 新的训练配方和更大的数据集: 与 HiFiGAN v1 (Kong et al., 2020) 基线相比,我们的 HiFi-GAN-base 通过优化训练配方和数据集显著提高了客观指标, 如 4 节中所讨论,并在表 2 和图 2 中得到了证实。
- 上下文感知模块: 在我们的 EVA-GAN-base 中引入 上下文感知模块显著增强了其客观指标,增加的开 销极小。这在表 1、2、3 和图 2 中得到了证明。
- 更大的模型: 将 EVA-GAN 扩展为 EVA-GAN-big 的 过程,详见表 2、3 和图 2,展示了增加模型大小的 有效性。EVA-GAN-big 的大小是 EVA-GAN-base 的 六倍,但在训练超参数或数据集上没有任何变化, 在语音和音乐领域都取得了优越的性能,并在各种 类型的音频中表现出鲁棒性。有关其 OOD 性能的 额外结果可以在我们的 这里 找到。
总结:
了EVA-GAN,一个开创性的音频生成模型,在神经声码器领域设定了新的基准。通过利用一个广泛的数据集并结合创新特性,如CAM和将模型扩展到约2亿个参数,EVA-GAN在光谱连续性、高频重建和在分布外数据性能的鲁棒性方面显著优于现有模型。
个人小结:
第一次精读关于音频的论文,有很多知识点都非常陌生,好在这篇工作写的比较翔实和通俗易懂。
简单了解了一下声码器相关的工作,但不知道基于GAN的算不算现在的主流?
恳请做过的朋友推荐一些基础的工作和学习路线!我现在感兴趣的点是asr和tts。