首页 > 其他分享 >语音合成技术2:FREEVC: TOWARDS HIGH-QUALITY TEXT-FREE ONE-SHOT VOICE CONVERSION

语音合成技术2:FREEVC: TOWARDS HIGH-QUALITY TEXT-FREE ONE-SHOT VOICE CONVERSION

时间:2023-07-29 17:26:11浏览次数:49  
标签:频谱 CONVERSION 说话 SHOT 模型 编码器 信息 TOWARDS 语音

 

摘要

语音转换(VC)可以通过首先提取源内容信息和目标说话者信息,然后利用这些信息重构波形来实现。然而,目前的方法通常要么提取带有泄漏说话者信息的不完整内容信息,要么需要大量带标注的数据进行训练。此外,由于转换模型与声码器之间的不匹配,重构波形的质量可能会下降。在本文中,我们采用了VITS的端到端框架来实现高质量的波形重构,并提出了无需文本标注的干净内容信息提取策略。我们通过对WavLM特征施加信息瓶颈来解耦内容信息,并提出基于频谱图调整的数据增强方法来提高提取内容信息的纯度。实验结果表明,所提出的方法优于使用带标注数据训练的最新VC模型,并且具有更强的鲁棒性。

关键词— 语音转换,自监督学习,信息瓶颈,数据增强

 

引言

语音转换(Voice Conversion,VC)是一种技术,可以将源说话者的声音转换成目标风格,如说话者身份[1]、韵律[2]和情感[3],同时保持语言内容不变。在本文中,我们关注在一次性条件下进行说话者身份转换,即仅给定目标说话者的一段话作为参考。

典型的一次性语音转换方法是从源语音和目标语音中分别解耦内容信息和说话者信息,然后将它们用于重构转换后的语音[4]。因此,转换后语音的质量取决于(1)VC模型的解耦能力和(2)VC模型的重构能力(声码器的能力)。

基于VC系统如何解耦内容信息,我们可以将当前的VC方法分为基于文本的VC和无文本的VC。流行的基于文本的VC方法是使用自动语音识别(ASR)模型提取音素后验图(PPG)作为内容表示[5][6]。一些研究人员还利用文本到语音(TTS)模型中的共享语言知识[7][8]。然而,这些方法需要大量带标注的数据来训练ASR或TTS模型。数据标注成本高昂,而标注的准确性和粒度(例如音素级别和字素级别)会影响模型的性能。为了避免基于文本方法的问题,研究人员开始探索无文本的方法,即在没有文本标注的指导下学习提取内容信息。典型的无文本方法包括信息瓶颈[4]、向量量化[9]、实例归一化[10]等。然而,它们的性能通常落后于基于文本的方法[11]。这可以归因于它们提取的内容信息更容易泄漏源说话者信息。

许多语音转换(VC)系统采用两阶段的重构流程[6][4]。在第一阶段,转换模型将源音频特征转换为目标说话者的声音,而在第二阶段,声码器将转换后的特征转换为波形。这两个模型通常分别进行训练。然而,转换模型预测的音频特征与声码器在训练过程中使用的真实语音的特征分布不同。这种特征不匹配问题,在文本到语音(TTS)中也存在,可能会降低重构波形的质量[12]。VITS(Variational Inference Text-to-Speech)[13]是一个一阶段模型,可以同时进行TTS和VC。通过通过条件变分自编码器(CVAE)的潜在变量将两个阶段的模型连接起来,减少了特征不匹配问题。通过采用对抗训练,进一步提高了重构波形的质量。然而,VITS是一个基于文本的模型,并且限制于多对多的VC,即源和目标说话者都是已知的说话者。

在本文中,我们提出了一种名为FreeVC的无文本一次性语音转换系统。该系统采用VITS的框架,以利用其出色的重构能力,但无需文本标注即可学习解耦内容信息。近期语音自监督学习(Self-Supervised Learning,SSL)在下游任务中取得了成功,如语音识别[14]、说话者验证[15]和语音转换[16],证明了SSL特征相较于传统的声学特征(如梅尔频谱图)具有潜在的优势。我们使用WavLM[17]从波形中提取SSL特征,并引入一个瓶颈提取器来从SSL特征中提取内容信息。我们还提出了基于频谱图调整(Spectrogram-Resize,SR)的数据增强方法,这可以在不改变内容信息的情况下扭曲说话者信息,以增强模型的解耦能力。为了实现一次性语音转换,我们使用说话者编码器来提取说话者信息。我们的代码和演示页面已公开提供[1][2]。

方法

如图1所示,FreeVC的骨干网络继承自VITS,它是一个带有GAN训练的条件变分自编码器(CVAE)。与VITS不同,FreeVC的先验编码器接受原始波形作为输入,而不是文本标注,并且具有不同的结构。说话者嵌入是由说话者编码器提取的,用于执行一次性语音转换。此外,FreeVC采用了不同的训练策略和推理过程。接下来,我们将在以下子章节中详细介绍。

2.1. 模型架构

FreeVC包含先验编码器、后验编码器、解码器、鉴别器和说话者编码器,其中后验编码器、解码器和鉴别器的架构遵循VITS。我们将重点介绍先验编码器和说话者编码器的细节。

2.1.1. 先验编码器

先验编码器包含一个WavLM模型、一个瓶颈提取器和一个归一化流(normalizing flow)。WavLM模型和瓶颈提取器负责以N(z0; µθ, σθ^2)的形式提取内容信息。WavLM模型接受原始波形作为输入,并生成包含内容信息和说话者信息的1024维SSL特征xssl。为了去除xssl中包含的不需要的说话者信息,将1024维的xssl输入瓶颈提取器,并将其转换为d维的表示,其中d远小于1024。这种巨大的维度差距施加了信息瓶颈,迫使结果低维表示丢弃与内容无关的信息,例如噪声或说话者信息。接下来,d维隐藏表示被投影为2d维的隐藏表示,后者再被分成d维的µθ和d维的σθ。归一化流在说话者嵌入g的条件下采用,以提高先验分布的复杂性。与VITS相同,归一化流由多个仿射耦合层(affine coupling layers)[18]组成,并且通过雅可比行列式的行列式值|det ∂z0 / ∂z|为1来保持体积不变。、

2.1.2. 说话者编码器

我们使用两种类型的说话者编码器:预训练说话者编码器和非预训练说话者编码器。预训练说话者编码器是在具有大量说话者的数据集上进行训练的说话者验证模型。在语音转换中广泛使用,并被认为优于非预训练说话者编码器。我们采用了[6]中使用的预训练说话者编码器。

非预训练说话者编码器是与模型的其余部分一起从头开始训练的。我们使用了一个简单的基于LSTM的架构,并认为如果提取的内容表示足够干净,说话者编码器将学会建模缺失的说话者信息。

说话者编码器的作用是从语音中提取说话者的特征表示,以便进行一次性语音转换。在预训练说话者编码器的情况下,它已经通过大量说话者的训练数据学习到了较好的说话者特征表示。而在非预训练说话者编码器的情况下,它将与整个模型一起训练,通过内容表示来学习捕捉说话者信息。这两种说话者编码器都用于进行语音转换,以便实现将源说话者的语音转换成目标说话者的语音。

注意:

说话人信息通常是低维的,而内容信息通常是高维的。

在语音中,说话人信息通常由一些与声音特征相关的较低维度的属性组成,例如说话者的音色、语调等。这些声音特征通常可以用较少的维度来表示,因为说话者的声音特征在整个说话者群体中可能有相似的模式。因此,说话人信息通常是低维的,通常在几十维到几百维之间。

相反,内容信息涉及语音中的实际语言信息,包含语音的语义、词汇和语法等。语言是复杂多样的,需要较高维度的特征来准确地表示和区分不同的语言信息。因此,内容信息通常是高维的,通常需要几百维到数千维的特征空间。

在语音转换任务中,准确地提取和分离这两种信息是至关重要的。通常说话人信息的低维性使得它们在提取和表示时相对较容易,而内容信息的高维性则需要更复杂的模型和方法来有效地捕捉和处理。

信息瓶颈是一种常见的无监督学习方法,用于学习数据中的潜在表示,其中希望这些表示能够尽可能地包含数据的关键信息,同时尽量去除冗余和无关的信息。这样的表示能够更好地捕捉数据的本质特征,有助于后续的任务表现。

在这里,我们将1024维的SSL特征 xssl 输入到瓶颈提取器中,该提取器的输出维度为 d(远小于 1024)。由于输出维度 d 明显低于输入维度,这会导致信息瓶颈的效应:系统将被迫压缩原始特征的信息量以适应较小的表示空间。

在压缩的过程中,对于与内容无关的信息(例如噪声或说话者信息),由于其对语音内容的贡献较小,更容易在低维表示中丢失。而与内容相关的信息(例如语音内容、语义、词汇等),由于其对语音的重要性,更有可能在低维表示中保留。

 

2.2. 训练策略

2.2.1. 基于频谱图调整的数据增强

太窄的瓶颈会丢失一些内容信息,而太宽的瓶颈会包含一些说话者信息[4]。我们不想费力地调整瓶颈的大小,而是采用基于频谱图调整的数据增强来帮助模型学习提取干净的内容信息,通过扭曲源波形中的说话者信息。与其他工作[19][20]使用各种信号处理技术来损坏说话者信息不同,我们的方法更容易实现,并且不需要复杂的信号处理知识。

基于频谱图调整的数据增强的目标是扰动源波形中的说话者信息,使得模型能够更好地学习提取内容信息。这样的增强方法可以通过简单地改变频谱图的大小或形状来实现,而不会引入复杂的额外噪声或失真。这种简单而有效的数据增强方法能够帮助模型更好地泛化到不同的说话者,并提高对说话者信息的鲁棒性。

通过采用基于频谱图调整的数据增强,我们可以有效地增强训练数据,从而提高模型在一次性语音转换任务中的性能和鲁棒性,同时避免了复杂信号处理技术的使用。这使得训练过程更加简单和高效。

我们提出的基于频谱图调整的数据增强包括三个步骤:

  1. 从波形y获取梅尔频谱图xmel;
  2. 对xmel进行垂直频谱图调整,得到修改后的梅尔频谱图x0mel;
  3. 使用神经声码器从x0mel重构波形y0。

垂直频谱图调整的操作如图2所示。梅尔频谱图可以被看作具有水平时间轴和垂直频率bin轴的图像。垂直频谱图调整首先使用双线性插值将梅尔频谱图在垂直方向上按照一定的比例r进行调整,然后在调整后的梅尔频谱图上进行填充或裁剪,使其恢复到原始形状。

  • 如果比例r小于1,我们在压缩的梅尔频谱图的顶部用最高频率bin值和高斯噪声进行填充,导致语音的音调较低且共振峰距较近;
  • 反之,如果比例r大于1,我们在拉伸的梅尔频谱图的顶部裁剪多余的频率bin,导致语音的音调较高且共振峰距较远。

通过使用增强后的语音进行训练,模型将更好地学习提取在每个比例r中共享的未改变的内容信息。除了垂直频谱图调整,我们还可以使用水平频谱图调整来产生时间尺度修改后的波形。

训练损失分为CVAE相关的损失和GAN相关的损失。CVAE相关的损失包括重构损失 Lrec,它是目标梅尔频谱图与预测梅尔频谱图之间的L1距离,以及KL损失 Lkl,它是先验分布 pθ(z|c) 和后验分布 qφ(z|xlin) 之间的KL散度。

其中,

qφ(z|xlin) = N(z; µφ, σ²φ) (1)

pθ(z|c) = N(z0; µθ, σ²θ)|det ∂z0/∂z| (2)

在这里,z 是潜在空间的随机变量,µφσ²φ 是后验分布 qφ(z|xlin) 的均值和方差参数,µθσ²θ 是先验分布 pθ(z|c) 的均值和方差参数,det ∂z0/∂z 是正则化的Jacobi行列式。

重构损失衡量了生成的梅尔频谱图与目标梅尔频谱图之间的相似度,帮助模型学习正确地还原目标语音特征。KL损失衡量了潜在变量 z 的先验分布和后验分布之间的差异,促使潜在空间的编码分布接近先验分布,以便更好地控制语音转换的多样性。

通过最小化CVAE相关的损失,模型能够学习从输入语音到潜在空间的映射,并在潜在空间中执行语音转换。这有助于模型产生高质量的转换结果。

在这里,条件c代表包含在波形y/y0中的内容信息。通过最小化Lkl,可以减少特征不匹配问题。GAN相关的损失包括鉴别器D和生成器G的对抗损失Ladv(D)Ladv(G),以及生成器G的特征匹配损失Lfm(G)。最终,FreeVC的训练损失可以表示为:

L(G) = Lrec + Lkl + Ladv(G) + Lfm(G) (3)

L(D) = Ladv(D) (4)

在这里,L(G)是生成器G的总损失,包括重构损失Lrec、KL损失Lkl、生成器对抗损失Ladv(G)和特征匹配损失Lfm(G)。而L(D)是鉴别器D的损失,即生成器对抗损失Ladv(D)

通过这些损失的组合,FreeVC的生成器和鉴别器将在训练过程中相互对抗和协同,从而学习如何更好地进行高质量的语音转换。重构损失和KL损失帮助生成器学习还原目标语音特征并控制潜在空间的多样性,而对抗损失和特征匹配损失帮助生成器生成更逼真的转换结果。

2.3. 推理过程

与VITS不同,VITS在语音转换的推理过程中通过后验编码器和先验编码器中的归一化流来提取内容信息,而FreeVC在推理过程中则使用与训练中相同的方式,通过WavLM和瓶颈提取器在先验编码器中提取内容信息。这样提取的内容表示将不会受到源说话者嵌入的质量影响。

在推理过程中,FreeVC使用先验编码器中的WavLM模型和瓶颈提取器来从输入的目标说话者语音中提取干净的内容信息。这样做的好处是,我们不需要依赖源说话者嵌入来提取内容信息,从而避免了源说话者嵌入质量可能对提取的内容信息产生的影响。

通过这样的推理过程,FreeVC能够更准确地提取目标说话者语音的内容信息,并在潜在空间中执行高质量的语音转换。这有助于生成更自然和真实的转换语音。

 

3. 实验

3.1. 实验设置

我们在VCTK [23] 和 LibriTTS [24] 数据集上进行实验。只有 VCTK 数据集用于训练。对于 VCTK 数据集,我们使用来自 107 个说话者的数据,其中有 314 个句子(每个说话者 2 个句子)被随机选取用于验证,10700 个句子(每个说话者 10 个句子)用于测试,其余用于训练。对于 LibriTTS 数据集,我们使用 test-clean 子集用于测试。所有音频样本都被下采样为 16 kHz。线性频谱图和 80 带梅尔频谱图是通过短时傅里叶变换计算得到的。FFT、窗口大小和跳步大小分别设置为 1280、1280 和 320。我们将瓶颈提取器的维度 d 设置为 192。对于基于频谱图调整的数据增强,调整比例 r 的范围从 0.85 到 1.15。我们使用 HiFi-GAN v1 声码器 [25] 将修改后的梅尔频谱图转换为波形。我们的模型在一块 NVIDIA 3090 GPU 上训练了 900k 步。批大小设置为 64,最大分段长度为 128 帧。

我们选择了三个基准模型与提出的方法进行比较:(1) VQMIVC [26],一个使用非预训练说话者编码器的无文本模型;(2) BNE-PPG-VC [6],一个使用预训练说话者编码器的文本模型;(3) YourTTS [27],一个将 VITS 扩展到一次性设置的文本模型,通过引入预训练说话者编码器实现。我们测试了三个版本的提出方法:(1) FreeVC-s,使用非预训练说话者编码器的提出模型;(2) FreeVC,使用预训练说话者编码器的提出模型;(3) FreeVC (w/o SR),使用预训练说话者编码器的提出模型,但是在训练时没有使用基于频谱图调整的数据增强。

3.2. 评估指标

我们进行了主观和客观两方面的评估。

对于主观评估,我们邀请了15名参与者对语音的自然度和说话者相似性进行评估,使用5分制的平均意见分数(MOS)和相似性平均意见分数(SMOS)。我们从VCTK数据集中随机选择了6个已见说话者(3男性,3女性),从LibriTTS数据集中随机选择了6个未见说话者(3男性,3女性),并分别在已见到已见、未见到已见和未见到未见的情况下进行评估。

对于客观评估,我们使用三个指标:词错误率(WER)、字符错误率(CER)和基频相关性系数(F0-PCC)。源语音和转换后的语音之间的词错误率和字符错误率是通过一个自动语音识别(ASR)模型得到的。基频相关性系数是源语音和转换后的语音之间的基频的皮尔逊相关系数 [28]。我们随机选择了400个句子(其中200个来自VCTK,200个来自LibriTTS)作为源语音,选择了12个说话者(6个已见,6个未见)作为目标说话者。

通过主观和客观的评估指标,我们可以全面地评估提出方法的性能和效果。

 

3.3. 结果与分析

3.3.1. 语音自然度和说话者相似性

表格1中的 MOS 和 SMOS 结果表明,提出的模型在所有场景中的语音自然度和说话者相似性方面均优于所有基准模型。此外,我们观察到所有基准模型在源语音质量较低的情况下,例如录音质量较差或发音不清晰时,都会遭受质量下降,而我们提出的模型几乎不受影响,这显示了提出的内容提取方法的鲁棒性。

在三个提出方法的版本中,FreeVC (w/o SR) 的语音自然度和说话者相似性均低于 FreeVC。这表明在没有基于频谱图调整的数据增强的情况下训练的模型存在一些源说话者信息泄漏到瓶颈提取器中,使得难以重构令人满意的波形。FreeVC-s 的表现与 FreeVC 相似,表明预训练说话者编码器并不是我们方法性能的决定性因素,一个简单的非预训练说话者编码器就能够与预训练说话者编码器的性能相匹配。FreeVC 在未见到未见的情况下表现优于 FreeVC-s,这表明在大量说话者上预训练的说话者编码器可以提高对未见目标的性能。

通过主观评估的 MOS 和 SMOS 结果,我们可以得出结论,提出的方法在语音质量和说话者相似性方面表现优越,并且具有很强的鲁棒性。提出的内容提取方法能够有效地去除源说话者信息,使得转换后的语音更自然且更接近目标说话者。

3.3. 结果与分析

3.3.2. F0变化一致性

从表格2中可以看出,我们提出的模型的词错误率(WER)和字符错误率(CER)均低于所有基准模型,甚至低于基于文本的模型。这表明提出的方法能够很好地保留源语音的语言内容。F0相关性系数(F0-PCC)的结果显示,我们提出的方法与源语音的F0变化一致性较高,表明提出的方法能够有效地保持源语音的语调。此外,我们观察到使用基于频谱图调整的数据增强进行训练会稍微改善语音智能和F0变化一致性。

通过客观评估的结果,我们可以得出结论,提出的方法在保留语言内容和语调方面表现优异。提出的内容提取方法能够有效地保持源语音的语言信息,并在转换后的语音中保持与源语音一致的语调特征。这些结果进一步验证了提出方法在高质量语音转换方面的优越性。

4. 结论

本文提出了FreeVC,一个无文本一次性语音转换系统。我们采用VITS框架进行高质量的波形重建。内容信息从WavLM特征的瓶颈中提取。我们还提出了基于频谱图调整的数据增强方法,以改进模型的分解能力。实验结果表明了提出方法的优越性。在未来,我们将研究说话者自适应方法,以提高对少量数据的未见目标说话者的相似性。通过持续的研究,我们希望进一步提高一次性语音转换系统的性能和适用性。

标签:频谱,CONVERSION,说话,SHOT,模型,编码器,信息,TOWARDS,语音
From: https://www.cnblogs.com/Edison-zzc/p/17590130.html

相关文章

  • QQScreenShot
    QQScreenShot​#截图工具QQ截图#​一、介绍从QQ中提取出的“QQ截图,有以下功能:高斯模糊马赛克OCR文字识别序号备注指定区域录屏其他参考原QQ截图二、安装开源地址:https://github.com/insoxin/QQScreenShot下载地址:https://github.com/insoxin/QQScreenShot/releases......
  • ES数据备份之snapshot和elasticdump
    https://blog.csdn.net/m0_46435788/article/details/114291491?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-114291491-blog-129881702.235%5Ev38%5Epc_relevant_sort&depth_1-utm_so......
  • es备份之snapshot SLM策略cron详解
    https://blog.csdn.net/m0_46435788/article/details/116998565?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-116998565-blog-129881702.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribu......
  • Large Language Models are Zero-Shot Reasoners
    目录概Let'sthinkstepbystep代码KojimaT.,GuS.S.,ReidM.,MatsuoY.andIwasawaY.Largelanguagemodelsarezero-shotreasoners.NIPS,2022.概Zero-shotCoT.Let'sthinkstepbystep如上图所示,利用"Let'sthinkstepbystep"来引......
  • 语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-s
    大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shotCoT、Few-shotCoT以及在LLM上应用1.思维链定义背景在2017-2019年之间,随着Transformer模型的提出,计算资源与大规模语料库不断出现,自然语言处理领域发生了翻天覆地的变化,传统的全监督学习的范......
  • 基于SAM的one-shot提取特定目标
    项目地址:https://github.com/ZrrSkywalker/Personalize-SAM实现功能:仅给定一张带有参考mask的图像,PerSAM无需任何训练即可在其他图像或视频中分割特定的目标,例如您的宠物狗。也提供了微调,但是只训练了2个参数论文中图片介绍:根据demo地址测试(https://huggingface.co/spaces/j......
  • Anolis 8.8 (CentOS 8) install snapper to support system snapshot.
    Anolis8.8(CentOS8)installsnappertosupportsystemsnapshot.cd/etc/yum.repos.d/wgethttps://download.opensuse.org/repositories/filesystems:snapper/CentOS_8/filesystems:snapper.repoyuminstallsnappersudoyuminstallpython3python3-setuptools......
  • 什么是 ABAP Domain 的 Conversion Routine
    ABAP(AdvancedBusinessApplicationProgramming)是一种高级业务应用编程语言,由德国软件公司SAPSE开发。ABAP用于开发和定制SAPERP系统。在SAPERP系统中,数据的组织和存储通过数据字典(DataDictionary)进行管理。数据字典中的一个重要组成部分是Domain。Domain是一个抽象层,用于定......
  • redis集群报错:MISCONF Redis is configured to save RDB snapshots, but it is curren
    之前在x86架构的服务器部署redis集群,未遇到题中问题;然而在ARM架构的服务器部署redis集群,第一次遇到如此问题。虽然问题已经解决,但不清楚问题的具体原因,在此做个记录。性能测试过程中,通过pinpoint捕捉到如下报错:MISCONFRedisisconfiguredtosaveRDBsnapshots,butitis......
  • 【翻译】SSD: Single Shot MultiBoxDetector
    SSD:SingleShotMultiBoxDetector WeiLiu1 ,DragomirAnguelov2 ,DumitruErhan3 ,ChristianSzegedy3,ScottReed4 ,Cheng-YangFu11 UNCChapelHill 2ZooxInc. 3GoogleInc.4UniversityofMichigan,[email protected][email protected], 3{dumitru,sz......