域外歌声合成和风格迁移


✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨

🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。

我是Srlua小谢,在这里我会分享我的知识和经验。🎥

希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮

记得先点赞👍后阅读哦~ 👏👏

📘📚 所属专栏:传知代码论文复现

欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙

​​

​​

目录

引言与背景

StyleSinger模型

概述

不确定性建模层归一化

UMLN 的核心思想

UMLN 的工作原理

残差风格适配器

RSA 的核心思想

RSA 的工作原理

编码器

音素编码器:

音符编码器:

音高扩散预测器

音高扩散预测器的架构

扩散过程

优化和训练

扩散解码器

扩散解码器的架构

扩散过程

逆扩散过程

损失函数

训练与推理过程

训练

推理

实验

数据集:

实验细节:

评估方法:

实验结果

平行风格迁移

非平行风格迁移

总结


本文所有资源均可在该地址处获取。

引言与背景

这篇文章的标题是《StyleSinger: Style Transfer for Out-of-Domain Singing Voice Synthesis》,被AAAI2024接收,由来自浙江大学和华为云的研究人员共同撰写。

唱歌声音合成(SVS)技术涉及到利用歌词和音乐符号来生成高质量的合成歌声。随着SVS技术的不断进步,该领域在专业音乐制作和娱乐短视频中得到了广泛应用。

图a展示了歌声合成的整体流程。歌声合成(SVS)系统使用声学模型将乐谱和歌词转换为中间特征(如音高和梅尔频谱图),然后声码器合成目标歌声。图b和c描绘了歌声风格的构成要素,即发音和咬字技巧。红色方框展示了音高转换,黄色方框突出了颤音。

然而,现有SVS方法在处理跨领域(OOD)风格迁移时存在局限性,尤其是在训练阶段未能涵盖目标声音属性的情况下,合成的歌声质量会下降。这是因为歌声具有极高的表现力,包括音色、情感、发音和发音技巧等多种风格特征,而现有的SVS系统缺乏有效模拟这些复杂风格特征的技术。

为了解决这些问题,文章提出了StyleSinger模型,这是一个针对OOD参考歌声样本进行零样本风格迁移的新型SVS模型。StyleSinger模型的创新之处在于它采用了两个关键技术:残差风格适配器(RSA)和不确定性建模层归一化(UMLN)。RSA通过残差量化模块来捕捉歌声中的多样化风格特征,例如发音和发音技巧;而UMLN则在训练阶段扰动内容表示中的风格属性,以此来提高模型对未见风格的泛化能力。

这两个技术的结合使得StyleSinger能够在未见风格的参考歌声样本中实现高质量的风格迁移,从而在零样本学习设置下生成与参考样本风格相似且音频质量高的合成歌声。

StyleSinger模型

概述

StyleSinger的架构包括多个关键组件,如下图a所示。歌词通过音素编码器编码,音符通过音符编码器捕获。使用预训练的wav2vec 2.0模型提取参考歌声中的音色和情感嵌入。模型分为风格不可知(style-agnostic)和风格特定(style-specific)两部分,以实现更好的泛化。

在预测持续时间后,使用UMLN在训练阶段扰动内容表示中的风格信息,以增强StyleSinger的模型泛化能力,并获取风格不可知表示。

参考歌声随后通过RSA处理,该适配器使用残差量化模块捕获详细风格信息(如发音和发音技巧),从而获得风格特定表示。

然后,音高扩散预测器接收风格不可知和风格特定表示作为输入,生成F0和UV。扩散解码器随后生成mel频谱图。最后,通过BigVGan生成目标歌声。

不确定性建模层归一化

UMLN 的核心思想

不确定性建模层归一化(Uncertainty Modeling Layer Normalization,UMLN)是 StyleSinger 模型中的一个关键组件,旨在提高模型在面对未见过的参考风格时的泛化能力。

UMLN 通过在训练样本中引入风格信息的扰动,模拟多样化的未见风格信息,从而防止模型生成风格一致的表示。这种方法有助于模型学习到更加鲁棒的特征表示,使其在测试阶段能够更好地适应新的、未见的风格。

UMLN 的工作原理

UMLN 使用条件层归一化的技术,允许根据风格嵌入对归一化输入特征进行缩放和平移。给定隐藏向量 xx 和风格向量 ss,UMLN 利用两个简单的线性层将风格向量转换为偏置向量 β(s)β(s) 和缩放向量 γ(s)γ(s)。

为了扰动风格信息,UMLN 使用高斯分布来模拟风格嵌入的不确定性范围。通过从这个不确定性范围内采样,可以模拟出多样化的风格信息。

UMLN 计算缩放和偏置向量的方差,以捕获风格嵌入中的不确定性:

Σγ(s)2=1B∑b=1B(γ(s)−Eb[γ(s)])2,Σβ(s)2=1B∑b=1B(β(s)−Eb[β(s)])2Σγ(s)2​=B1​b=1∑B​(γ(s)−Eb​[γ(s)])2,Σβ(s)2​=B1​b=1∑B​(β(s)−Eb​[β(s)])2

其中 ΣγΣγ​ 和 ΣβΣβ​ 分别代表风格嵌入 ss 的不确定性估计。

在训练过程中,UMLN 通过从不确定性范围内随机采样来扰动风格信息,促进模型学习到风格不可知的表示。

UMLN 的计算过程可以表示为:

γum(s)=γ(s)+ϵγΣγ(s)2,βum(s)=β(s)+ϵβΣβ(s)2γum​(s)=γ(s)+ϵγ​Σγ(s)2​,βum​(s)=β(s)+ϵβ​Σβ(s)2​

其中 ϵγϵγ​ 和 ϵβϵβ​ 是从标准高斯分布 N(0,1)N(0,1) 中抽取的随机样本。

最终,风格不可知的隐藏表示可以通过以下方式获得:

UMLN(x,s)=γum(s)x−μ(x)δ(x)+βum(s).UMLN(x,s)=δ(x)γum​(s)x−μ(x)​+βum​(s).

残差风格适配器

RSA 的核心思想

歌声合成中的风格迁移任务需要模型能够理解和复制参考歌声中的各种风格特征,包括音色、情感、发音和发音技巧等。这些特征对于合成高质量且风格一致的歌声至关重要。

RSA 通过使用残差量化模块(Residual Quantization Module)来捕捉参考歌声样本中的详细风格特征,如发音和发音技巧。这些特征通常涉及音符之间的音高转换和音符内的颤音等技术。

RSA 的工作原理

RSA 首先使用 wav2vec 2.0 模型来捕捉歌声中的音色和情感属性。然后,RSA 从参考歌声样本中提取和编码 mel 频谱图和音高(F0)信息。在这个过程中,使用 parselmouth 工具来提取 F0 信息。

接着,RSA 利用残差量化(RQ)模块来提取详细的风格特征,建立信息瓶颈,有效地过滤掉非风格信息。RQ 模块在图像领域中常用,但其多层信息提取的能力也适用于歌声风格信息的建模。

RQ 模块将编码器的输出 E 表示为 N 个有序代码的序列。E 在 RQ 模块中的表示记为 E^n=∑i=1nRQi(E)E^n​=∑i=1n​RQi​(E)。为了确保输入表示符合离散嵌入,使用承诺损失(commitment loss)来优化:

Lc=∑n=1N∥E−sg[E^n]∥22,Lc​=n=1∑N​∥∥∥∥​E−sg[E^n​]∥∥∥∥​22​,

其中 sgsg 表示停止梯度操作符。承诺损失是所有 n 次迭代中量化误差的累积和,而不是单一术语。目标是确保 E^nE^n​ 随着 n 值的增加而逐步减少 E 的量化误差。

在 RQ 模块生成详细风格嵌入后,需要将这些嵌入与内容表示 EcEc​ 对齐。这是通过引入对齐注意力模块实现的,该模块包含缩放点积注意力机制。

在注意力模块中,EcEc​ 作为查询,而详细风格嵌入 EdEd​ 作为键和值:

Attention(Q,K,V)=Attention(Ec,Ed,Ed)=Softmax(EcEdTd)Ed.Attention(Q,K,V)=Attention(Ec​,Ed​,Ed​)=Softmax(d​Ec​EdT​​)Ed​.

编码器

StyleSinger模型的网络架构中,编码器部分负责处理输入的歌词和音乐符号信息,将其转换成适合模型进一步处理的特征表示。编码器由两个主要部分组成:音素编码器(Phoneme Encoder)和音符编码器(Note Encoder)。

音素编码器

音素嵌入:音素编码器的输入是歌词的音素序列。每个音素首先通过一个嵌入层,将音素ID映射到一个高维空间中的向量,这个向量能够捕捉音素的发音特征。
编码器层:音素嵌入后,通过多个编码器层进行处理。这些层通常是基于Transformer架构的Feed-Forward Transformer(FFT)块,它们能够处理序列数据,并捕捉音素序列中的长期依赖关系。
隐藏层:每个FFT块中,隐藏层的维度被设置为256,这是一个常见的选择,用于平衡模型的容量和计算效率。

音符编码器

音符嵌入:音符编码器处理音乐符号信息,包括音符的音高、类型(如休止符、连音线等)和持续时间。这些信息通过嵌入层转换成连续的向量表示。
持续时间隐藏层:持续时间信息通过一个隐藏层进行处理,以捕捉音符持续时间的特征。
线性投影层:音符的音高、类型和持续时间信息在经过嵌入层后,会通过一个线性投影层,以生成更丰富的特征表示。

编码器的输出是音素特征和音符特征的组合,这些特征共同构成了模型的内容表示。这个内容表示随后会被用于风格迁移和歌声合成的其他阶段。

音高扩散预测器

音高扩散预测器的架构

音高扩散预测器的主要任务是从输入的歌词和音乐符号中预测出歌声的音高(F0)和声门位置(UV)。音高扩散预测器包含两个子模型:风格特定(style-specific)音高扩散预测器和风格不可知(style-agnostic)音高扩散预测器。这两个子模型共享相似的架构,但它们分别捕捉与风格相关的和风格无关的音高特征。

每个子模型都包含多个卷积层,这些层能够处理输入的特征序列,并提取音高相关的特征。模型使用残差连接来促进深层网络中信息的流动,防止梯度消失问题。模型的输出是预测的音高和声门位置,这些输出将被用于后续的声码器(vocoder)阶段,以生成最终的歌声波形。

扩散过程

正向扩散过程

在正向扩散过程中,模型逐渐向数据中添加噪声,直到数据完全转化为噪声。这个过程可以通过高斯扩散和多项式扩散来实现,其中高斯扩散用于连续的音高信息,而多项式扩散用于离散的声门位置信息。这个过程可以用高斯扩散和多项式扩散来描述:

q(xt∣xt−1)=N(xt;αtxt−1,βtI),q(xt​∣xt−1​)=N(xt​;αt​​xt−1​,βt​I),

q(yt∣yt−1)=C(yt∣(1−βt)yt−1+βt/K),q(yt​∣yt−1​)=C(yt​∣(1−βt​)yt−1​+βt​/K),

其中 NN 表示高斯分布,CC 表示多项式分布,αtαt​ 和 βtβt​ 是与时间步相关的参数,控制噪声的添加程度。

逆向扩散过程

在逆向扩散过程中,模型学习从噪声中恢复出原始的音高信息。

x^0=f(xt,t;θ),x^0​=f(xt​,t;θ),

其中 ff 是神经网络,θθ 是模型参数,xtxt​ 是时间步 tt 的噪声数据。

优化和训练

音高扩散预测器的训练涉及到两种主要的损失函数:高斯扩散损失和多项式扩散损失。这些损失函数衡量模型预测的音高与真实音高之间的差异,指导模型学习如何准确地从噪声中恢复出音高信息。

音高扩散预测器采用非因果 WaveNet 架构作为去噪器,并使用 1x1 卷积层来预测连续的 F0 和使用嵌入层来预测离散的 UV。

扩散解码器

扩散解码器的架构

StyleSinger 中的扩散解码器采用了一个基于生成器的扩散模型,该模型通过直接预测干净数据来参数化去噪模型。这种4步生成器基扩散模型结合了优秀的感知质量和快速采样速度的优点。

扩散解码器采用非因果 WaveNet 架构作为去噪器,并使用 1x1 卷积层来预测连续的梅尔频谱图。

扩散过程

在扩散过程中,模型逐渐向数据中添加噪声,直到数据完全转化为噪声。这个过程可以通过以下公式描述:

xt=αtx0+1−αtϵ,xt​=αt​​x0​+1−αt​​ϵ,

其中 xtxt​ 是时间步 tt 的噪声数据,x0x0​ 是原始干净数据,ϵϵ 是从标准正态分布中采样的噪声,αtαt​ 是一个预定的固定噪声计划。

逆扩散过程

在逆扩散过程中,模型学习如何从噪声数据中恢复出原始的干净数据。这个过程涉及到一个神经网络,它被训练来预测每一步中的噪声水平,并从噪声数据中恢复出干净的数据:

x0=f(xt,t;θ),x0​=f(xt​,t;θ),

其中 ff 是神经网络,θθ 是模型参数,xtxt​ 是时间步 tt 的噪声数据。

损失函数

扩散解码器的训练涉及到两种损失函数:平均绝对误差(MAE)损失和结构相似性指数(SSIM)损失。MAE 损失确保模型能够准确预测每一步中的噪声水平,而 SSIM 损失则确保生成的梅尔频谱图在结构上与目标数据相似:

Lmae=E[αtx0+(1−αt2)ϵ−x0],Lmae​=E[αt​x0​+(1−αt2​)ϵ−x0​],

Lssim=1−SSIM(xθ⋅αtx0+(1−αt2)ϵ,x0),Lssim​=1−SSIM(xθ​⋅αt​x0​+(1−αt2​)ϵ,x0​),

其中 xθxθ​ 是模型去噪后的数据样本,αt=∏i=1t1−βiαt​=∏i=1t​1−βi​​,βtβt​ 是在扩散步骤 tt 中预定的固定噪声计划。

训练与推理过程

训练

StyleSinger 的最终损失项由以下部分组成:

  • 时长预测损失:对数尺度下预测的音素级时长与真实值音素级时长之间的均方误差;
  • 音高重建损失:真实值与由音高扩散预测器预测的音高频谱图之间的高斯扩散损失和多项式扩散损失;
  • 残差量化损失:残差量化层的承诺损失;
  • 梅尔重建损失:扩散解码器的平均绝对误差损失和结构相似性指数损失。

在预训练阶段,我们通过AM softmax损失来训练 wav2vec 2.0 ,这个阶段的目的是让模型学会从原始音频波形中提取有用的特征,这些特征将在后续的歌声合成中用作参考歌声的风格嵌入。

在训练 StyleSinger 时,参考歌声和目标歌声保持不变。

推理

在推理阶段,我们输入目标歌声的歌词和音符,并且利用未见过的参考样本,模型将通过音素编码器和音符编码器处理输入,然后通过UMLN、RSA、音高扩散预测器和扩散解码器等组件生成歌声的特征表示,最后通过声码器,合成具有分布外(OOD)参考风格的目标歌声。

实验

在StyleSinger模型的实验部分,研究者们进行了一系列的实验来评估模型的性能,包括歌声合成的质量和风格迁移的相似性。以下是实验部分的详细说明:

数据集:

由于没有现成的包含风格信息的歌声合成(SVS)数据集,研究者们收集并注释了一个中文歌曲语料库,包括12位歌手的20小时录音,并结合了M4Singer数据集,共包含40位歌手的50小时录音。

数据集被手动标注了音域和情感标签,分为8个类别:男高音快乐、男高音悲伤、女高音快乐、女高音悲伤、男低音快乐、男低音悲伤、女中音快乐和女中音悲伤。

为了评估OOD场景,研究者们随机指定了两个类别(男高音快乐和女中音悲伤)和8位歌手作为未见风格,构建了OOD测试集。

实验细节:

  • 使用pypinyin库将中文歌词转换为音素。
  • 提取原始波形的mel频谱图,设置采样率为48000Hz,窗口大小为1024,步长为256,mel滤波器数量为80。
  • RQ码本的默认大小设置为128,RQ的深度为4。

评估方法:

  • 使用客观和主观评估指标来评估测试集的歌声合成质量和风格相似性。
  • 客观评估使用说话人余弦相似度(Cos)来量化合成歌声和参考歌声之间的音色相似度,以及F0帧误差(FFE)来量化合成质量。
  • 主观评估依赖于平均意见得分(MOS)来衡量自然性,以及相似性平均意见得分(SMOS)来评估风格相似性。
  • 还进行了比较平均意见得分(CMOS)和比较相似性平均意见得分(CSMOS)评估,以及AXY测试来评估风格迁移性能。

实验结果

平行风格迁移

在OOD场景中,参考歌声的内容保持不变,主要结果如上表所示。StyleSinger在音频质量和风格相似性方面均优于基线模型。

非平行风格迁移

使用未见过的参考样本和目标音符、歌词来合成目标歌声。通过AXY偏好测试,StyleSinger在合成结果上优于基线模型。

这些梅尔频谱图描绘了非平行风格迁移的结果。StyleSinger 有效地捕捉到了红色方框所示的颤音风格,以及黄色方框所突出显示的发音和咬字技巧。

总结

StyleSinger是首个能够实现零样本风格迁移的歌声合成模型,这意味着它可以在没有见过某些特定风格样本的情况下,合成具有这些风格的歌声。文章通过广泛的实验,证明了StyleSinger在音频质量和参考歌声样本相似性方面优于基线模型。

StyleSinger的架构包括音素编码器、音符编码器、UMLN、RSA、音高扩散预测器和扩散解码器等关键组件,这些组件共同工作以实现高质量的歌声合成。StyleSinger通过其创新的技术,实现了在未见风格上的歌声合成,具有良好的音频质量和风格相似性,这在歌声合成领域是一个重要的进步。

未来可能的研究方向,包括扩展StyleSinger的能力以涵盖更多场景,如多语言任务,以及探索结合语音和歌声风格的模型,以从OOD参考语音中提取风格并生成歌声。

模型效果在演示视频中展示。

​​

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值