YourTTS: Towards Zero-Shot Multi-Speaker TTS and Zero-Shot VoiceConversion for everyone论文阅读

摘要

YourTTS为zero-shot multispeaker的TTS任务带来了多语言(multilingual)方法的力量。该方法基于VITS模型,并为零样本多说话人和多语言训练添加了一些新的修改。在零样本多说话人TTS中取得了最先进的(SOTA)结果,在VCTK数据集上的零样本语音转换结果与SOTA相当。该方法在单说话人数据集的目标语言中取得了很好的结果,为低资源语言的零样本多说话人TTS和零样本语音转换系统打开了可能性。最后,可以用不到1分钟的语音对YourTTS模型进行微调,并在语音相似性和合理的质量方面取得最先进的结果。这对于合成具有与训练中看到的非常不同的声音或录音特征的说话人很重要。

索引术语:跨语言零样本多说话人TTS,文本到语音,跨语言零样本语音转换,说话人自适应(cross-lingual zero-shot multi-speaker TTS, text-to-speech, cross-lingual zero-shot voice conversion, speaker adaptation)

一、Introduction

本文提出YourTTS,提出了几个新颖的想法,专注于零样本多说话人和多语言训练。本文报告了最先进的零样本多说话人TTS结果,以及在VCTK数据集的零样本语音转换方面与SOTA相当的结果。新的零样本多说话人TTS方法包括以下贡献:

  • State-of-the-art results in the English Language( 英语语言上的SOTA);
  • 在零样本多说话人TTS范围内提出多语言方法的第一项工作;
  • 在模型训练期间,仅使用目标语言中的一个说话人进行零样本多说话人TTS和零样本语音转换,具有良好的质量和相似度;(Zero-shot的内容)
  • 对于具有与模型训练中看到的非常不同的语音/录音特性的说话人,只需要不到1分钟的语音就可以对模型进行微调,并仍然取得良好的相似性和质量结果。(Voice Adaptation的部分)

我们每个实验的音频样本都可以在demo web-site上找到。为了重现性,Coqui TTS提供了我们的源代码,以及所有实验的模型checkpoints

二、YourTTS Model

YourTTS建立在VITS基础上,但包括一些新颖的修改,用于零样本多说话人和多语言训练。首先,与之前的工作[4,19]不同,在我们的模型中,我们使用原始文本而不是音素作为输入。这为没有良好开源的字素到音素转换器的语言提供了更真实的结果。与之前的工作一样,例如[19],我们使用基于transformer的文本编码器[20,4]。然而,对于多语言训练,将4维可训练语言嵌入连接到每个输入字符的嵌入中。此外,我们还将transformer块的数量增加到10个,隐藏通道的数量增加到196个。作为解码器,我们使用4个仿射耦合层的堆栈[21]每一层本身就是4个WaveNet残差块[22]的堆栈,就像在VITS模型中一样。

作为声码器,我们使用HiFi-GAN[23]版本1,并对[19]引入的鉴别器进行了修改。为了高效的端到端训练,使用变分自编码器(VAE)[24]将TTS模型与声码器连接起来。为此,我们使用[19]提出的后验编码器。后验编码器由16个非因果WaveNet残差块组成[25,20]。作为输入,后验编码器接收一个线性语谱图并预测一个潜变量,这个潜变量被用作声码器和基于流的解码器的输入,因此不需要中间表示(如梅尔语谱图)。这允许模型学习中间表示; 因此,相比于将声码器和TTS模型分别用[19]训练的两阶段方法,该方法取得了更好的效果。为了使模型能够从输入文本中合成具有不同节奏的语音,使用了[19]中提出的随机时长预测器。

YourTTS在训练和推理过程中如图1所示,其中(++)表示连接,红色连接表示此连接不会传播梯度,虚线连接是可选的。为简单起见,我们省略了Hifi-GAN鉴别器网络。为使模型具有零样本多说话人生成能力,将基于流的解码器、后验编码器和声码器的所有仿射耦合层置于外部说话人嵌入上。我们在耦合层的残差块以及后验编码器中使用全局调节[22]。我们还将外部说话人嵌入与文本编码器输出和解码器输出相加,然后分别将它们传递给时长预测器和声码器。我们使用线性投影层来匹配元素求和之前的维度(见图1)。此外,受[26]的启发,我们研究了最终损失中的说话人一致性损失(SCL)。在这种情况下,使用预训练的说话人编码器从生成的音频中提取说话人嵌入和真实值,在此基础上最大化余弦相似度。。形式上,设φ(.)为输出说话人嵌入信息的函数,cos sim为余弦相似度函数,α为控制SCL在最终损失中的影响的正实数,n为批量大小,SCL定义如下:

其中g和h分别表示真实值生成的说话人音频。在训练过程中,后验编码器接收线性语谱图和说话人嵌入作为输入,并预测一个潜变量z。这个潜变量和说话人嵌入被用作基于gan的声码器生成器的输入,该生成器生成波形。为了有效的端到端声码器训练,我们从z中随机采样恒定长度的部分序列,如[23,27,28,19]。

基于流的解码器旨在根据PZp先验分布对潜变量z和说话人嵌入进行条件设置。为了使PZp分布与文本编码器的输出对齐,我们使用单调对齐搜索(MAS)[20,19]。随机时长预测器接收作为输入的说话人嵌入、语言嵌入和通过MAS获得的时长。为了生成类似人类的语音节奏,随机时长预测器的目标是音素(在本例中为伪音素)时长的对数似然的变分下界。在推理过程中,不使用MAS。相反,由文本编码器预测PZp分布,并通过随机时间预测器的逆变换从随机噪声中采样持续时间,然后转换为整数。这样,一个潜变量zp从分布PZp中采样。基于反向流的解码器接收隐变量zp和说话人嵌入作为输入,将隐变量zp转换为隐变量z,并将其作为输入传递给声码器生成器,从而获得合成的波形。

三、Experiments

3.1 speaker encoder模型

作为说话人编码器,我们使用公开可用的H/ASP模型[29],该模型是用VoxCeleb 2[31]数据集中的典型Angular[30]加上Softmax损失函数进行训练的。该模型在VoxCeleb 1[32]测试集上取得了较好的实验结果。此外,在多语言LibriSpeech (MLS)[33]的测试子集中使用所有语言对该模型进行了评估。该模型的等错误率(EER)达到1.967,而SCGlowTTS论文[4]中使用的扬声器编码器的等错误率(EER)达到5.244。

3.2 Audio dataset

我们研究了3种语言,每种语言使用一个数据集来训练模型。对所有数据集进行预处理,以获得相似响度的样本,并去除长时间的沉默。将所有音频调至16Khz,并使用Webrtcvad toolkit应用语音活动检测(VAD)来修剪拖尾静音。此外,我们使用Python包ffmpeg-normalize中的基于rms的规范化将所有音频规范化为-27dB。

English: VCTK[14]数据集,包含44小时的语音和109位发言者,以48KHz采样。我们将VCTK数据集分为:训练,开发(包含与训练集相同的说话人)和测试。对于测试集,我们选择了11名既不在开发集中也不在训练集中的说话人;根据[1]和[4]的建议,我们从每个口音中选出了1名代表,共计7名女性和4名男性(发言者225,234,238,245,248,261,294,302,326,335和347)。此外,在一些实验中,我们使用LibriTTS数据集[34]的子集train-clean- 100和train-clean-360来增加模型训练中的说话人数量。

葡萄牙语: tts -葡萄牙语语料库[35],以48KHz采样的巴西葡萄牙语约10小时的单一说话人数据集。由于作者没有使用工作室,因此数据集包含环境噪声。我们使用全子网模型[36]作为去噪器,并将数据重采样到16KHz。为了开发,我们随机选择了500个样本,其余的数据集用于训练。

French: 基于LibriVox的M-AILABS数据集[37]的fr_FR集。它由2位女性(104h)和3位男性扬声器(71h)组成,采样频率为16KHz。为了评估该模型在英语中的零样本多说话人能力,我们使用了预留的11个VCTK说话人进行测试。

为了进一步测试其在VCTK域之外的性能,从LibriTTS数据集[34]的子集test-clean中选择了10个说话人(5F/5M)。对于葡萄牙语,我们从多语言LibriSpeech (MLS)[33]数据集的10名说话者(5F/5M)中选择样本。对于法语,由于第4节中描述的原因,没有使用评估数据集。最后,对于说话人自适应实验,为了模拟更真实的环境,我们使用了来自常见语音数据集[38]的4个说话人。

3.3 Experiments setup

我们使用YourTTS进行了四个训练实验:

  • 实验1:使用VCTK数据集(单语);
  • 实验2:同时使用VCTK和tts -葡萄牙语数据集(双语);
  • 实验3:使用VCTK、tts -葡萄牙语和MAILABS法语数据集(三种语言);
  • 实验4:从实验3中获得的模型开始,我们继续用1151个来自LibriTTS分区trainclean-100和train-clean-360的英语使用者进行训练。

为了加速训练,在每个实验中,我们使用迁移学习(transfer learning)。在实验1中,我们从一个在LJSpeech[39]上训练100万步的模型开始,并使用VCTK数据集继续训练20万步。然而,由于所提出的更改,由于权重形状的不兼容性,模型的一些层是随机初始化的。对于实验2和3,训练是通过继续之前的实验进行大约140k步骤,每次学习一种语言。此外,对于每个实验,使用第2节中描述的说话人一致性损失(SCL)对50k步骤进行微调,α = 9。最后,对于实验4,我们继续从实验3的模型中进行训练,并对说话人一致性损失进行微调。请注意,尽管ZS-TTS[2,3,4]中的最新工作仅使用VCTK数据集,但该数据集的说话人数量有限(109),记录条件的变化很少。因此,仅用VCTK训练后,通常情况下,ZS-TTS模型不能令人满意地泛化到录制条件或语音特征与训练[13]中看到的非常不同的新说话人。模型使用NVIDIA TESLA V100 32GB的批量大小为64进行训练。对于TTS模型训练和声码器HiFi-GAN的区分,我们使用beta为0.8和0.99的AdamW优化器[40],权重衰减为0.01,初始学习率为0.0002,伽马为0.999875[41]呈指数衰减。对于多语言实验,我们使用加权随机采样[41]来保证语言平衡的批处理。

四、Results and discussion

本文使用平均意见得分(MOS)研究来评估合成语音质量,如[42]。为了比较合成语音和原始说话人之间的相似度,我们计算了从说话人编码器中提取的两个音频的说话人嵌入之间的说话人编码器余弦相似度(SECS)[4]。它的取值范围是-1 ~ 1,值越大表示相似度越强。在之前的工作[3,4]之后,我们使用likeyzer[43]包的扬声器编码器计算秒数,以便与这些研究进行比较。我们还报道了在[1]、[3]和[4]之后的相似度MOS (Sim-MOS)。

尽管实验涉及3种语言,但由于MOS指标的高成本,只使用两种语言来计算这些指标:英语,使用人数最多,葡萄牙语,数量最少。此外,根据[4]的工作,仅对训练期间未见过的发言者提出了这些指标。MOS得分是通过严格的众包获得的。在MOS和Sim-MOS的计算中,我们分别使用了276个和200个母语为英语的贡献者。对于葡萄牙语,我们在两个指标上都使用了90个土生土长的葡萄牙语贡献者。在评估期间,我们使用VCTK数据集的第5句话(即speakerID 005.txt)作为提取说话人嵌入的参考音频,因为所有测试说话人都说出了它,而且它是一个长句子(20个单词)。

对于LibriTTS和MLS葡萄牙语,我们只考虑那些具有5秒或更长时间的发言者,并为每个发言者随机抽取一个样本,以保证有足够的时间参考。为了计算英文的MOS、SECS和Sim-MOS,我们从LibriTTS数据集的test-clean子集中随机选取了55个句子,只考虑单词数量大于20的句子。对于葡萄牙语,我们使用这55个句子的翻译。

在推理过程中,为每个说话者合成5个句子,以确保覆盖所有说话者和大量的句子。作为所有测试子集的ground truth,我们为每个测试说话人随机选择5个音频。对于SECS和Sim-MOS的真实值,我们将每个说话人随机选择的5个音频与合成测试句子期间用于提取说话人嵌入的参考音频进行了比较。表1显示了数据集VCTK和LibriTTS的英语MOS和数据集MLS的葡萄牙语子集的葡萄牙语MOS和Sim-MOS,具有95%的置信区间和SECS。

4.1.VCTK数据集

对于VCTK数据集,通过实验1(单语)和2 + SCL(双语)得到了最好的相似度结果。两者都达到了相同的秒数和相似的模拟- mos。根据Sim-MOS, SCL的使用并没有带来任何改进;然而,所有实验的置信区间重叠,使得此分析不具有决定性。另一方面,根据SECS的说法,在3个实验中,使用SCL提高了2个相似度。另外,在实验2中,两个评价指标一致认为SCL对相似度的积极影响。另一个值得注意的结果是,我们在VCTK数据集上所有实验的SECS都高于真实值。这可以通过VCTK数据集本身的特征来解释,例如,在大多数音频中都有明显的呼吸音。说话人编码器可能无法处理这些特征,因此降低了ground truth的秒数。总的来说,在使用VCTK的最佳实验中,相似度(SECS和Sim-MOS)和质量(MOS)结果与真实值相似。我们的MOS结果与VITS文章[19]报道的结果相吻合。通过修改,该模型成功地为未见过的说话人保持了良好的质量和相似性。最后,与[3,4]相比,我们的最佳实验在相似性和质量方面取得了优越的结果;因此,在VCTK数据集上实现了零样本多说话人TTS的SOTA。

4.2. LibriTTS数据集

我们在实验4中取得了最好的LibriTTS相似度。这一结果可以通过使用更多的说话者(~ 1.2k)来解释,比任何其他实验确保了更广泛的语音和录音条件多样性的覆盖面。另一方面,MOS在单语情况下取得了最好的效果。我们认为这主要是由于训练数据集的质量。实验1仅使用VCTK数据集,与其他实验中添加的其他数据集相比,VCTK数据集具有更高的质量。

4.3. 葡萄牙MLS数据集

对于葡萄牙MLS数据集,尽管置信区间与其他实验重叠,但 实验3+SCL的MOS指标最高,为4.11±0.07。有趣的是,使用中等质量的单说话人数据集用葡萄牙语训练的模型,在零样本多说话人合成中成功地达到了良好的质量。根据SimMOS(3.19±0.10),实验3是最好的实验,但从置信区间来看,实验3与其他实验有重叠。在这个数据集上,Sim-MOS和SECS并不一致:基于SECS度量,在实验4+SCL中得到了相似度更高的模型。我们认为这是由于LibriTTS数据集的多样性。该数据集也由有声读物组成,因此倾向于与MLS数据集具有相似的录音特征和韵律。我们认为,SECS和SimMOS的这种差异可以用Sim-MOS的置信区间来解释。最后,在该数据集上实现的Sim-MOS是相关的,考虑到我们的模型是在只有一名男性说葡萄牙语的情况下训练的。按性别分析指标,实验4只考虑男性和女性说话者的MOS值分别为4.14±0.11和3.79±0.12。男性和女性的Sim-MOS分别为3.29±0.14和2.84±0.14。因此,我们的模型在葡萄牙语中的表现受到性别的影响。我们认为这是因为我们的模型没有用讲葡萄牙语的女性进行训练。尽管如此,我们的模型仍然能够产生葡萄牙语的女性语言。在大约100人讲英语的情况下,Attentron模型的SimMOS达到了3.30±0.06。考虑置信区间,即使只看到目标语言的一位男性说话人,该模型也达到了类似的Sim-MOS效果。因此,相信所提出方法可以成为低资源语言中零样本多说话人TTS模型的解决方案。包括法语(即实验3)似乎提高了葡萄牙语的质量和相似性(根据SECS)。质量的提高可以解释为M-AILABS法语数据集的质量比葡萄牙语语料库的质量更好;因此,由于批次是按语言平衡的,因此在模型训练期间,批次中低质量语音的数量会减少。此外,相似度的增加可以解释为tts -葡萄牙语是一个单说话人数据集,在实验2中,随着按语言进行批量平衡,批次中只有一半由一位男性说话人组成。如果加上法语,那么只有三分之一的发音是葡萄牙语。

4.4. 说话人一致性损失

使用说话人一致性损失(SCL)改进了SECS度量的相似性。另一方面,对于Sim-MOS,实验之间的置信区间无法断言SCL提高了相似性。然而,我们相信SCL可以帮助在记录训练中未见过的特征方面的泛化。例如,在实验1中,模型在训练中没有看到LibriTTS数据集的记录特征,但在对该数据集进行测试时,SECS和Sim-MOS指标都显示出由于SCL的存在,相似性有所提高。另一方面,使用SCL似乎会稍微降低生成音频的质量。我们认为这是因为通过使用SCL,我们的模型学会了生成参考音频中存在的记录特征,产生了更多的失真和噪声。然而,应该注意的是,在我们使用高质量参考样本的测试中,该模型能够生成高质量的语音。

五、Zero-shot voice conversion

与SC-GlowTTS[4]模型一样,我们没有向编码器提供任何关于说话人身份的信息,因此编码器预测的分布被迫与说话人无关。因此,YourTTS可以使用模型的后验编码器、解码器和HiFi-GAN生成器转换声音。由于我们将您的tts与外部扬声器嵌入相适应,它使我们的模型能够在零样本语音转换设置中模仿未见过的扬声器的声音。

在[44]中,作者报告了10个训练期间未见的VCTK扬声器的AutoVC[45]和NoiseVC[44]模型的MOS和Sim-MOS指标。为了比较我们的结果,我们从VCTK测试子集中选择了8个说话人(4M/4F)。虽然[44]使用了10个扬声器,但由于性别平衡,我们被迫只使用8个扬声器。

此外,为了分析模型对葡萄牙语的泛化性,并验证该模型在只有一个说话人的语言中所取得的结果,我们使用了MLS葡萄牙语数据集测试子集中的8个说话人(4M/4F)。因此,在两种语言中,我们都使用训练中未见过的说话者。在[45]之后进行了更深入的分析,我们分别比较了男性、女性和混合性别说话人之间的迁移。在分析过程中,对于每个说话人,我们随机选择参考样本,只考虑超过3秒的样本,以其他每个说话人的声音生成迁移。此外,我们还分析了英语和葡萄牙语使用者之间的语音迁移。我们按照第4节所述的方法计算MOS和Sim-MOS。然而,在计算英语和葡萄牙语(pt-en和en-pt)转换时的sim-MOS时,由于参考样本是一种语言,而转换是另一种语言,我们使用了两种语言的评估员(英语和葡萄牙语分别为58和40)。

表2列出了这些实验的MOS和Sim-MOS。演示页面8中显示了零样本语音转换的示例。

5.1.Intra-lingual results

从一名英语使用者到另一名英语使用者(en-en)的零样本语音转换的语内结果该模型的MOS值为4.20±0.05,Sim-MOS值为4.07±0.06。为了比较[44],作者报告了AutoVC[45]和NoiseVC[44]模型的MOS和Sim-MOS结果。对于训练期间未见过的10个VCTK扬声器,AutoVC模型的MOS值为3.54±1.08,Sim-MOS值为1.91±1.34。而NoiseVC模型的MOS值为3.38±1.35,Sim-MOS值为3.05±1.25。因此,该模型在VCTK数据集的零样本语音转换方面取得了与SOTA相当的结果。尽管该模型使用更多的数据和说话人进行训练,但第4节中VCTK数据集的相似度结果表明,仅使用VCTK数据集训练的模型(实验1)比本节中探索的模型(实验4)具有更好的相似度。

因此,我们相信,当仅使用VCTK数据集进行训练和评估时,YourTTS可以在零样本语音转换中取得非常相似甚至更好的结果。对于从一个葡萄牙语说话者到另一个葡萄牙语说话者的零次语音转换,该模型的MOS值为3.64±0.09,Sim-MOS值为3.43±0.09。该模型在女性说话者之间的语音迁移相似性(3.35±0.19)方面明显低于男性说话者之间的语音迁移相似性(3.80±0.15)。这可以解释为在我们的模型训练期间缺乏讲葡萄牙语的女性。同样,值得注意的是,我们的模型在从未见过葡萄牙语中的女性声音的情况下,成功地逼近了葡萄牙语中的女性声音。

5.2. 跨语言结果

显然,英语和葡萄牙语之间的迁移和葡萄牙语之间的迁移一样有效。然而,对于将葡萄牙语使用者转换为英语使用者(pt-en),其MOS分数会下降。这尤其是因为从葡萄牙语男性到英语女性的语音转换质量很低。总的来说,如前所述,由于在模型的训练中缺乏女性说话人,迁移到女性说话人取得了较差的效果。在这种情况下,挑战甚至更大,因为需要将葡萄牙语男性发言者的音频转换为英语女性发言者的声音。

在英语中,在转换过程中,说话者的性别没有显著影响模型的性能。然而,对于涉及葡萄牙语的迁移,该模型的训练中缺乏女性声音阻碍了泛化。

六、Speaker adaptation

不同的录音条件对零样本多说话人TTS模型的泛化是一个挑战。说话者的声音与训练中看到的声音有很大差异,这也成为一个挑战。尽管如此,为了展示该模型适应新说话人/录音条件的潜力,我们在通用语音[38]数据集中选择了2名葡萄牙语和2名英语说话人(1M/1F) 20到61秒语音的样本。

使用这4个扬声器,我们对实验4中的检查点进行微调,每个扬声器都有单独的扬声器一致性损失。在微调期间,为了确保多语言合成不受影响,我们使用了实验4中使用的所有数据集。然而,我们使用加权随机采样[41]来保证来自自适应说话人的样本出现在批次的四分之一中。

该模型以这种方式训练了1500步。对于评估,我们使用第4节中描述的相同方法。表3显示了性别、总持续时间(以秒为单位)和每个说话人在训练期间使用的样本数量,以及ground truth (GT)、零样本多说话人TTS模式(ZS)和说话人样本微调(FT)的指标SECS、MOS和sims -MOS。该模型对训练期间未见过的具有录音特征的发言者不到1分钟的讲话进行了微调,取得了非常有希望的结果,显著提高了所有实验中的相似性。

在英语中,该模型在零样本多说话人TTS模式下的结果已经很好,经过微调,男性和女性说话人都实现了与基本事实相当的Sim-MOS。微调后的模型取得了比真实值更大的秒数,这在之前的实验中已经观察到。我们认为,这种现象可以通过模型学习来复制录音特性和参考样本的失真,从而优于其他真实说话人样本来解释。

在葡萄牙语中,与零样本相比,微调似乎用一点自然来换取更好的相似性。对于男性演讲者,微调后的Sim-MOS从3.35±0.12增加到4.19±0.07,该演讲者只需31秒的讲话。对于女性说话者来说,相似度的提高更令人印象深刻,在该说话者仅用20秒的语音进行微调后,从零采样模式下的2.77±0.15提高到4.43±0.06。

尽管我们的模型仅使用目标说话人的几秒钟的语音就成功地实现了高相似性,但表3似乎显示了使用的语音量和语音的自然度(MOS)之间的直接关系。通过说话人大约1分钟的语音,我们的模型可以复制说话人的语音特征,与零样本模式相比,甚至增加了自然度。另一方面,与零样本或真值模型相比,使用44秒或更少的语音会降低生成语音的质量/自然度。因此,尽管我们的模型在仅用20秒的语音复制说话人的语音特征方面显示了良好的效果,但超过45秒的语音更足以允许更高的质量。最后,我们还注意到,在对模型进行微调后,语音转换有了显着的改善,主要是在训练中很少使用说话人的葡萄牙语和法语中。

七、Conclusions, limitations and future work

本文提出YourTTS,在VCTK数据集中实现了零样本多说话人TTS和零样本语音转换的SOTA结果。仅使用一个说话人数据集,该模型就可以在目标语言中取得很好的结果。对于具有与训练中不同的声音和录音条件的演讲者,可以使用不到1分钟的语音将模型调整为新的声音。然而,我们的模型显示出一些局限性。对于所有语言的TTS实验,所提出模型在随机时长预测器中呈现不稳定性,对于一些说话者和句子,产生不自然的时长。我们还注意到一些单词出现了发音错误,特别是在葡萄牙语中。与[35,46,19]不同,我们不使用语音转录,使我们的模型更容易出现此类问题。对于葡萄牙语语音转换,由于训练中没有女性声音,说话人的性别会显著影响模型的性能。对于说话人自适应,尽管所提出模型仅用20秒的语音在复制说话人的语音特征方面显示了良好的效果,但超过45秒的语音更足以实现更高的质量。在未来的工作中,我们打算寻求对YourTTS模型的时长预测器的改进,并在更多的语言中进行训练。此外,我们打算探索在低资源环境下将该模型用于数据增强以训练自动语音识别模型。

八、Acknowledgement

九、References

读者附录

一、创新总结

YourTTS是一个基于vits的TTS模型,其创新包括:

  • 修改了vits的结构和多语言多说话人模式 首先为了兼顾多语言,这里用字母而不是音素来做文本输入单元。
  • 在多语言模式下修改input embedding——> 四维的 可训练的语言 的embedding与char embedding的拼接
  • 在先验编码器中,将Transformer blocks的数量由6个增加到10个,隐藏通道的数量从192增加到196个
  • 为了实现多说话人的语音生成能力,在全局上设置了一个Speaker Encoder模型,我们把提取生成的speaker embedding作为condition加载到flow-based decoder, posterior encoder和vocoder上。
  • 提出了说话人一致性损失(SCL)作为一种loss,实现上是把生成的语音用于提取的speaker embedding和真实语音提取的speaker embedding算cos_sim。

二、vae推导

一般vae
  • P(x)=integral_{z}P(X|z)*P(z), 用z这个隐变量过度一下,对联合分布进行积分得到边缘分布
  • 对于大部分z,P(X|z)都是0,用Q(z|X)缩小z的样本空间(增大从z产生X的可能性)
  • 当z服从Q(z|X)时,P(X|z)的期望值和目标数据的分布P(X)的关系可以用KL散度来逐步推导:D[Q(z|X)||P(z|X)]
  • D[Q(z|X)||P(z|X)]=E[logQ(z|X)]-E[logP(z|X)]  =  Exception_{z~Q(z|X)}[logQ(z|X)-logP(z|X)]
  • 为了引出P(X),可以基于贝叶斯公式来改写P(z|X):P(z|X)=P(z,X)/P(X)=P(X|z)*P(z)/P(X)
  • 于是,KL散度可以重新写成:D[Q(z|X)||P(z|X)]=E[logQ(z|X)-logP(X|z)-logP(z)+logP(X)],其中logP(X)是一个常数,所以可以移到期望之外:D[Q(z|X)||P(z|X)]=E[logQ(z|X)-logP(X|z)-logP(z)]+logP(X)  (P(x)是与z~Q(z|X)无关)
  • 同时,由于D[Q(z|X)||P(z)]=Exception_{z ~ Q(z|X)}[logQ(z|X)-logP(z)],所以将KL散度进一步写成:D[Q(z|X)||P(z|X)]=-Exception_{z~Q(z|X)}[logP(X|z)]+D[Q(z|X)||P(z)]+logP(X)
  • 所以,logP(X)可以写成:logP(X)-**D[Q(z|X)||P(z|X)]**=Exception_{z~Q(z|X)}[logP(X|z)]-D[Q(z|X)||P(z)]
  • 因为加粗部分恒大于等于0,所以logP(X)大于等于D[Q(z|X)||P(z|X)],所以logP(X)是一个下界,我们可以通过最大化这个下界来最大化logP(X),从而最大化P(X)
  • 故logP(X)>=Exception_{z~Q(z|X)}[logP(X|z)]-D[Q(z|X)||P(z)],这个公式就是变分下界,当且仅当Q(z|X)=P(z|X)时,等号成立,此时logP(X)=Exception_{z~Q(z|X)}[logP(X|z)]-D[Q(z|X)||P(z)],即logP(X)的最大值
条件vae
  • 逐步推导D[Q(z|X)||P(z|X,c)],KL散度越小,两个分布越接近
  • D[Q(z|X)||P(z|X,c)]=Exception_{z ~ Q(z|X)}[logQ(z|X)-logP(z|X,c)]
  • 类似,基于贝叶斯改写P(z|X,c)=P(z,X|c)/P(X/c)=P(X|z,c)*P(z|c)/P(X|c)
  • 于是,KL散度可以重新写成:D[Q(z|X)||P(z|X,c)]=E[logQ(z|X)-logP(X|z)-logP(z|c)-logP(X|c)],因为logP(X|c)是一个常数,所以可以移到期望之外:D[Q(z|X)||P(z|X,c)]=E[logQ(z|X)-logP(X|z)-logP(z|c)]+logP(X|c)  (P(X|c)是与z~Q(z|X)无关)
  • 同时,由于D[Q(z|X)||P(z|c)]=Exception_{z ~ Q(z|X)}[logQ(z|X)-logP(z|c)],所以将KL散度进一步写成:D[Q(z|X)||P(z|X,c)]=-Exception_{z ~ Q(z|X)}[logP(X|z)]+D[Q(z|X)||P(z|c)]+logP(X|c)
  • 所以,logP(X|c)可以写成:logP(X|c)-**D[Q(z|X)||P(z|X,c)]**=Exception_{z ~ Q(z|X)}[logP(X|z)]-D[Q(z|X)||P(z|c)]
  • 因为加粗部分恒大于0,所以logP(X|c)大于等于D[Q(z|X)||P(z|X,c)],所以logP(X|c)是一个下界,我们可以通过最大化这个下界来最大化logP(X|c),从而最大化P(X|c)
  • 所以对数似然公式下界是:logP(X|c)>=Exception_{z ~ Q(z|X)}[logP(X|z)]-D[Q(z|X)||P(z|c)]  ,当且仅当Q(z|X)可以逼近P(z|X)的时候,等式成立。

三、loss部分

1、重构loss

2、KL散度

c包括文本和c_text和对齐A (在vits表示音素到频谱的对齐,yourtts表示char到频谱的对齐) q(z|x)表示后验分布(高斯),p(z|c)表示先验分布

3、说话人一致性损失(SCL)

speaker encoder模型是提前训好的固定参数的。把生成的语音用于提取的speaker embedding和真实语音提取的speaker embedding算cos_sim,作为一种loss。以下的g和h分别表示真实语音和生成的语音。

4、随机时长预测器loss

也是一个基于流的生成VAE模型,训练目标为最大化变分下界 在训练时断开随机时长预测器的梯度反传。 测试时音素时长通过随机时长预测器的可逆变换从随机噪音中采样得到,之后ceil转换为整型值

5、对抗训练loss

对抗loss的两部分,生成器loss和判别器loss

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Faster R-CNN是一种基于区域建议网络(Region Proposal Networks,RPN)的物体检测算法,旨在实现实时物体检测。它通过预测每个区域是否含有物体来生成候选框,并使用卷积神经网络(CNN)来确定候选框中的物体类别。Faster R-CNN在提高检测精度的同时,也显著提高了检测速度。 ### 回答2: 在计算机视觉领域中,目标检测一直是热门研究的方向之一。近年来,基于深度学习的目标检测方法已经取得了显著的进展,并且在许多实际应用中得到了广泛的应用。其中,Faster R-CNN 是一种基于区域建议网络(Region Proposal Networks,RPN)的目标检测方法,在检测准确率和速度之间取得了很好的平衡,能够实现实时目标检测。 Faster R-CNN 的基本框架由两个模块组成:区域建议网络(RPN)和检测模块。RPN 主要负责生成候选目标框,而检测模块则利用这些候选框完成目标检测任务。具体来说,RPN 首先在原始图像上以多个尺度的滑动窗口为基础,使用卷积网络获取特征图。然后,在特征图上应用一个小型网络来预测每个位置是否存在目标,以及每个位置的目标边界框的坐标偏移量。最终,RPN 根据预测得分和位置偏移量来选择一部分具有潜在对象的区域,然后将这些区域作为候选框送入检测模块。 检测模块的主要任务是使用候选框来检测图像中的目标类别和位置。具体来说,该模块首先通过将每个候选框映射回原始图像并使用 RoI Pooling 算法来获取固定大小的特征向量。然后,使用全连接神经网络对这些特征向量进行分类和回归,以获得每个框的目标类别和精确位置。 相比于传统的目标检测方法,Faster R-CNN 具有以下优点:首先,通过使用 RPN 可以自动生成候选框,避免了手动设计和选择的过程;其次,通过共享卷积网络可以大大减少计算量,提高效率;最后,Faster R-CNN 在准确率和速度之间取得了很好的平衡,可以实现实时目标检测。 总之,Faster R-CNN 是一种高效、准确的目标检测方法,是深度学习在计算机视觉领域中的重要应用之一。在未来,随着计算机视觉技术的进一步发展,Faster R-CNN 这类基于深度学习的目标检测方法将会得到更广泛的应用。 ### 回答3: Faster R-CNN是一种结合了深度学习和传统目标检测算法的新型目标检测方法,旨在提高目标检测速度和准确率。Faster R-CNN采用了Region Proposal Network(RPN)来生成候选区域,并通过R-CNN网络对候选区域进行分类和定位。 RPN是一种全卷积神经网络,用于在图像中生成潜在的候选区域。RPN通常在卷积特征图上滑动,对每个位置预测k个候选区域和其对应的置信度得分。这样,对于输入图像,在不同大小和宽高比的Anchor上预测候选框,可以在计算上更有效率。 R-CNN网络利用卷积特征图作为输入,对RPN生成的候选区域进行分类和精确定位。与以前的目标检测方法相比,Faster R-CNN使用了共享卷积特征,使得整个检测网络可以端到端地进行训练和优化,缩短了训练时间,同时也更便于理解和改进。 Faster R-CNN不仅具有较高的准确性,还具有较快的检测速度。在各种基准测试中,Faster R-CNN与其他目标检测算法相比,都取得了优异的性能表现。总之,Faster R-CNN将目标检测引入了一个新的阶段,为实时目标检测提供了一个良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别和我卷!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值