《One-shot Voice Conversion by Separating Speaker and Content Representations with Instance Normalization》论文学习

文章目录

  • 《One-shot Voice Conversion by Separating Speaker and Content Representations with Instance Normalization》论文学习
    • 摘要
    • 1 介绍
    • 2 提出方法
      • 2.1 变分自动编码器
      • 2.2 特征分解的实例归一化
    • 3 实现细节
      • 3.1 架构
      • 3.2 声学特征
      • 3.3 训练细节
    • 4 实验
      • 4.1 解纠缠评估
      • 4.2 说话人嵌入可视化
      • 4.3 客观评估
        • 4.3.1 全局方差
        • 4.3.2 频谱图实例
      • 4.4 主观评估
    • 5 结论

摘要

近年来,在没有并行数据的情况下,通过训练单个模型在输入语音转换(VC)为多个不同说话人的多目标场景下,成功实现了语音转换。但该模型存在局限性,只能将训练数据中说话人进行语音转换,从而缩小了VC的适用场景。在本文中,我们提出了一种新颖的一次性VC方法,它可以分别通过源说话人和目标说话人的一个示例语音来执行VC,并且在训练过程中源说话人和目标说话人甚至不需要出现。这是通过将说话人和内容表示与实例规范化(IN)分开来实现的。客观和主观评价表明,我们的模型能够生成与目标说话人相似的声音。除了性能测量之外,我们还证明了该模型能够在没有任何监督的情况下学习有意义的说话人表征。
       
       关键字 :语音转换,特征解耦,生成模型

1 介绍

VC的目标是在保持语音内容不变的情况下,对语音信号的非语言信息进行转换。非语言信息可能涉及说话人身份(《Voice conversion using sequence-to-sequence learning of context posterior probabilities》,《Voice conversion based on speaker-dependent restricted boltzmann machines》,《Non-parallel voice conversion using i-vector plda: Towards unifying speaker verification and transformation》)、口音或发音(《Automatic speech pronunciation correction with dynamic frequency warping-based spectral conversion》,《Generative adversarial networks for unpaired voice transformation on impaired speech》)等。VC可以用于一些下游任务,如多说话人文本到语音(《Transfer learning from speaker verification to multispeaker text-to-speech synthesis》,《Machine speech chain with one-shot speaker adaptation》)和表达性语音合成(《Towards end-to-end prosody transfer for expressive speech synthesis with tacotron》,《Style tokens: Unsupervised style modeling, control and transfer in end-to-end speech synthesis》),也可以用于一些应用,如语音增强(《Improving the intelligibility of dysarthric speech towards enhancing the effectiveness of speech therapy》,《Generative adversarial network-based postfilter for statistical parametric speech synthesis》,《Wavecyclegan: Synthetic-to-natural speech waveform conversion using cycle-consistent adversarial networks》)或发音纠正(《Automatic speech pronunciation correction with dynamic frequency warping-based spectral conversion》,等等。在本文中,我们将重点研究说话人身份转换的问题。
       
       之前关于VC的研究大致可以分为两种类型,一种是有监督的,一种是无监督的。有监督VC取得了很好的性能(《Voice conversion using deep neural networks with speaker-independent pre-training》,《High-order sequence modeling using speaker-dependent recurrent temporal restricted boltzmann machines for voice conversion》,《Voice conversion using deep bidirectional long short-term memory based recurrent neural networks》,《Voice conversion using deep neural networks with layer-wise generative training》)。然而,它需要源和目标话语之间的框架级对齐。如果源域和目标域之间存在巨大的差距,不准确的对齐可能会损害转换的性能。更重要的是,收集并行数据是困难的和耗时的,这使得监督VC不是一个理想的框架,如果我们想要有灵活性,使其适应一些新的领域。
       
       无监督VC由于其数据收集效率高,近年来成为一个研究热点。这意味着我们不需要收集并行数据,而是利用非并行数据来训练VC系统。有些作品尝试加入ASR系统来执行无监督VC(《Rhythm-flexible voice conversion without parallel data using cycle-gan over phoneme posteriorgram sequences》,《Personalized, cross-lingual tts using phonetic posteriorgrams》,《A kl divergence and dnn-based approach to voice conversion without parallel training sentences》)。通过将语音转换为音素后验序列,再用目标域合成器合成语音,实现无监督VC。但是,这种方法的性能很大程度上依赖于ASR系统的准确性,如果ASR系统功能不佳,会导致性能下降。还有一些作品尝试利用深度生成模型,如VAE(《Auto-encoding variational bayes》)或GAN(《Generative adversarial nets》)来做无监督VC(《Parallel-data-free voice conversion using cycle-consistent adversarial networks》,《Stargan-vc: Non-parallel many-to-many voice conversion with star generative adversarial networks》,《Acvae-vc: Non-parallel many-to-many voice conversion with auxiliary classifier variational autoencoder》,《Voice conversion from unaligned corpora using variational autoencoding wasserstein generative adversarial networks》,《Multi-target voice conversion without parallel data by adversarially learning disentangled audio representations》)。这些文章将VC表述为一个领域映射问题,旨在学习能够在不同领域之间传递话语的网络。这些作品能够生成高质量的语音,并能成功地转换说话人的特征。然而,这些作品的主要局限在于它们无法合成那些从未在训练阶段出现过的说话人的声音。
       
       语音信号固有地携带静态信息和语言信息。静态部分,如说话人,声学条件是时间独立的,仅在整个发声过程中发生变化,而语言部分可能每隔几帧就会发生显著变化。在这里,我们假设一个话语可以被分解为一个说话人表征加上一个内容表征。为了分离说话人和内容表征,我们的模型由三个组件组成:说话人编码器、内容编码器和解码器,如图1所示。训练说话人编码器将说话人信息编码到说话人表征中。训练内容编码器只将语言信息编码为内容表征。然后解码器的任务是将这两种表征合成为语音。在内容编码器中,我们利用不带仿射变换的实例归一化(《Instance normalization: The missing ingredient for fast stylization》)对控制全局信息的信道统计信息进行归一化。这样,就可以从内容编码器编码的表征中删除全局信息,比如说话人信息。解码器采用自适应实例归一化(《Arbitrary style transfer in real-time with adaptive instance normalization》),由说话人编码器提供相应的仿射参数。通过这样做,解码器中需要的全局信息由说话人编码器控制。在设计的体系结构中,鼓励我们的模型学习分解表示。这种分解使我们的模型能够进行如下的一次性语音转换:利用源说话人的一条语音和目标说话人的另一条语音,我们首先从目标语音中提取说话人表征,然后从源语音中提取内容表征,最后将其与解码器结合,生成转换后的结果如图1所示。值得一提的是,我们的模型在训练过程中不需要对语音进行任何说话人标注,这使得数据的收集更加容易。有趣的是,即使我们不提供任何说话人标签,说话人编码器也会学习有意义的说话人嵌入。

       在将分解技术应用于语音方面,之前的一些作品提出使用对抗训练从话语中去除某些属性(《Disentangling correlated speaker and noise for speech synthesis via data augmentation and adversarial factorization》,《Multi-target voice conversion without parallel data by adversarially learning disentangled audio representations》)。然而,由于训练一个额外的鉴别器网络的成本,需要使用更多的计算资源。此外,对抗性训练还存在不稳定性问题,使训练过程困难。在我们提出的方法中,我们简单地使用实例归一化技术而不是对抗训练来去除说话人的信息,这大大减少了计算量,使训练过程更容易。
       
       我们的贡献有三个方面:1. 我们提出的模式可以在没有任何监管的情况下进行一次VC。2. 验证了实例归一化对VC解纠缠表示的有效性。3.我们证明我们的模型能够将学习有意义的说话者嵌入作为一个额外功能。

2 提出方法

2.1 变分自动编码器

设xxx为声学特征片段,xxx为训练数据中所有声学片段的集合。设EsE_sEs​为说话人编码器,EcE_cEc​为内容编码器,DDD为解码器。训练EsE_sEs​生成说话人表示zsz_szs​。EcE_cEc​被训练生成内容表示zcz_czc​。我们假设p(zc∣x)p(z_c|x)p(zc​∣x)是一个条件独立的高斯分布,其单位方差与(《Unsupervised image-toimage translation networks》)相同,即p(zc∣x)=N(Ec(x),I)p(z_c|x) = N (E_c(x), I)p(zc​∣x)=N(Ec​(x),I)。重构损失如式1所示。
Lrec(θEs,θEc,θD)=Ex∼p(x),zc∼p(zc∣x)[∣∣D(Es(x),zc)−x∣∣11](1)L_{rec}(\theta_{E_s},\theta_{E_c},\theta_{D})=\underset {x \sim p(x),z_c \sim p(z_c|x)} {\mathbb{E}} [||D(E_s(x),z_c)-x||^1_1] \tag{1} Lrec​(θEs​​,θEc​​,θD​)=x∼p(x),zc​∼p(zc​∣x)E​[∣∣D(Es​(x),zc​)−x∣∣11​](1)       在训练过程中,我们从xxx中均匀采样声学片段xxx(即公式1中的p(x)p(x)p(x)是xxx上的均匀分布)。为了使后验分布p(zc∣x)p(z_c|x)p(zc​∣x)与先验N(0,I)N(0, I)N(0,I)匹配,KL散度损失将被最小化。由于我们假设单位方差,KL散度减少为L2正则化。KL散度项如式2所示。
Lkl(θEc)=Ex∼p(x)[∣∣Ec(x)2∣∣22](2)L_{kl}(\theta_{E_c})=\underset {x \sim p(x)} {\mathbb{E}} [||E_c(x)^2||^2_2] \tag{2} Lkl​(θEc​​)=x∼p(x)E​[∣∣Ec​(x)2∣∣22​](2)       VAE训练的目标函数是最小化加权超参数λrecλ_{rec}λrec​和λklλ_{kl}λkl​的组合。
minθEs,θEc,θDL(θEs,θEc,θD)=λrecLrec+λklLkl(3)\underset {\theta_{E_s},\theta_{E_c},\theta_{D}} {min} L(\theta_{E_s},\theta_{E_c},\theta_{D}) = λ_{rec}L_{rec} + λ_{kl}L_{kl} \tag{3} θEs​​,θEc​​,θD​min​L(θEs​​,θEc​​,θD​)=λrec​Lrec​+λkl​Lkl​(3)

2.2 特征分解的实例归一化

乍一看,根据2.1节的描述,不清楚两个编码器EsE_sEs​和EcE_cEc​是如何分别对说话人和内容信息进行编码的。本文发现,在不进行仿射变换的情况下,只需在EcE_cEc​中加入实例归一化(IN),就可以在保留内容信息的同时去掉说话人信息。在计算机视觉(《Arbitrary style transfer in real-time with adaptive instance normalization》)中,类似的思想已经被证实是有效的。
       
       不进行仿射变换的实例归一化(IN)公式如式5所示。这里MMM为前一卷积层输出的特征图谱, McM_cMc​为第ccc通道,为WWW维阵列。这里每个通道都是一个数组而不是矩阵,因为使用的是一维卷积而不是二维卷积。要应用IN,首先要计算第ccc通道的均值μc\mu_cμc​和标准方差σc\sigma_cσc​。
μc=1W∑w=1WMc[w]σc=1W∑w=1W(Mc[w]−μc)2+ϵ(4)\mu_c=\frac {1} {W} \sum^W_{w=1}M_c[w] \\ \sigma_c=\sqrt {\frac {1} {W} \sum^W_{w=1}(M_c[w]-\mu_c)^2+\epsilon} \tag {4} μc​=W1​w=1∑W​Mc​[w]σc​=W1​w=1∑W​(Mc​[w]−μc​)2+ϵ​(4)       其中Mc[w]M_c[w]Mc​[w]是McM_cMc​中的第www个元素。公式4中的ϵ\epsilonϵ只是一个小值,以避免数值不稳定。然后在IN中,将数组McM_cMc​中的每个元素归一化为Mc′M_c'Mc′​,如下所示
Mc′[w]=Mc[w]−μcσc(5)M_c'[w]=\frac {M_c[w] - \mu_c} {\sigma_c} \tag {5} Mc′​[w]=σc​Mc​[w]−μc​​(5)       归一化的Mc′M_c'Mc′​经过以下深层网络层处理。我们在内容编码器中利用IN层,防止内容编码器学习领域信息。从而实现该模型分别从说话人编码器中提取说话人信息和从内容编码器中提取内容信息。
       
       为了进一步增强说话人编码器生成说话人表示的能力,我们通过自适应实例归一化(adaIN)层(《Arbitrary style transfer in real-time with adaptive instance normalization》)向解码器提供说话人信息。在第二层中,译码器首先通过IN对全局信息进行归一化,然后由说话人编码器提供全局信息。公式如下:
Mc′[w]=γcMc[w]−μcσc+βc(6)M_c'[w]=\gamma_c \frac {M_c[w] - \mu_c} {\sigma_c} + \beta_c \tag {6} Mc′​[w]=γc​σc​Mc​[w]−μc​​+βc​(6)       μc\mu_cμc​和σc\sigma_cσc​按式4计算。每个信道的γc\gamma_cγc​和βc\beta_cβc​是说话人编码器EsE_sEs​输出的线性变换。

3 实现细节

3.1 架构

我们在编码器和解码器中使用Conv1d层一次处理所有的频率信息,如图2所示。在说话人编码器和内容编码器中都使用了ConvBank层,以便更好地捕获长期信息(《Tacotron: Towards end-to-end speech synthesis》)。我们对说话人编码器应用了一段时间的平均池化,以强制说话人编码器只学习全局信息。在内容编码器中使用实例规范化层对全局信息进行规范化。解码器中使用PixelShuffle1d(《Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network》)层进行上采样。一层用于向解码器提供全局信息。说话人表征zsz_szs​首先经过残差DNN处理,然后通过仿射层进行变换,再进入每一层。

3.2 声学特征

我们使用梅尔尺度谱图作为声学特征。我们首先消除了沉默,并将音量正常化,然后将音频转换为24kHz。之后,我们以50毫秒的窗口长度、12.5毫秒的跳跃长度和2048毫秒的STFT窗口大小对音频执行STFT。然后将谱图的幅度转换为512维梅尔谱图。用相减均值除以标准差的方法对梅尔谱图进行归一化处理。为了将梅尔标度谱图转换为波形,我们采用近似逆线性变换来恢复线性标度谱图(《Gansynth: Adversarial neural audio synthesis》)。并用GriffinLim算法100次迭代重建相位。

3.3 训练细节

我们用ADAM优化器以0.00050.00050.0005的学习速率训练提出的模型,β1=0.9\beta_1 = 0.9β1​=0.9, β2=0.999\beta_2 = 0.999β2​=0.999。我们将批量大小设置为256。为了防止模型过拟合,我们将Dropout应用到每一层,并设置比例为0.50.50.5,权重衰减为0.00010.00010.0001。λrecλ_{rec}λrec​为101010,λklλ_{kl}λkl​为0.010.010.01。我们为202020万次迭代(小批量)训练模型。更多的细节可以在我们的实现代码中找到。

4 实验

我们在CSTR VCTK语料库(《Superseded-cstr vctk corpus: English multi-speaker corpus for cstr voice cloning toolkit》)上评估了我们的模型。这些音频数据是由109名讲英语的人产生的,他们都有不同的口音。我们随机抽取20个说话人的话语作为我们的测试集,剩下的话语将被分割为9090%90的训练集和1010%10的验证集。虽然我们在训练时将段长度设置为128,但由于是全卷积结构,在推理阶段模型可以处理任意长度的输入。在去除所有少于128帧的话语后,训练集包含大约16000条语音。

4.1 解纠缠评估

为了观察IN层的效果,我们进行了消融研究,验证了它可以帮助内容编码器去除说话人特征信息。我们训练另一个网络(包含1024个神经元和ReLU激活的5DNN),根据内容编码器编码的潜在表征对说话人身份进行分类。比较了内容编码器加IN、内容编码器不加IN、内容编码器不加IN和语音编码器加IN三种设置下的分类精度。结果如表1所示。我们可以看到,将IN应用于内容编码器时,分类精度明显较低。但我们也发现,即使我们没有在内容编码器中应用IN,其精度也没有预期的高。这可能是由于说话人编码器能够通过adaIN控制解码器的信道统计,整个模型倾向于从说话人编码器而不是从内容编码器学习说话人信息。为了进一步证实这一假设,我们测试了上述第三种设置下的分类精度,即不是将IN应用于内容编码器,而是应用于说话者编码器。我们可以看到,由于平均池化随时间的特性结合IN层(输出零向量),说话人编码器不能再拥有完整的说话人信息,因此整个模型倾向于通过内容编码器流动更多的说话人信息,提高了分类精度。

4.2 说话人嵌入可视化

我们发现,即使我们没有明确地向编码器(《Learning speaker representations with mutual information》)添加任何目标或约束,说话人编码器也能学习到与说话人相关的有意义的嵌入。我们通过说话人编码器输入(在训练过程中)出现过和未出现的说话人的语音,并在图3中用t-SNE2D空间中绘制其嵌入图。我们发现,不同的说话人说的话是完全分开的。我们还利用这些嵌入方法对说话人id进行了分类实验。设置与第4.1小节相同。出现过的说话人的正确率为0.9973,未出现的说话人的正确率为0.9998,说明说话人编码器在嵌入空间中学习到了合理的表征。

4.3 客观评估

4.3.1 全局方差

为了证明我们的模型能够转换说话人的特征,我们使用全局方差(GV)作为光谱分布的可视化。全局方差已被用作一种方法,以方差分布(《A speech parameter generation algorithm considering global variance for hmm-based speech synthesis》)来看语音转换结果是否与目标说话人匹配。我们评估了4个转换例子中每个频率指标的总体方差:男性到男性,男性到女性,女性到男性,女性到女性。结果如图4所示,我们发现我们生成的样本在方差分布方面确实与目标说话人匹配。

4.3.2 频谱图实例

图5显示了一些频谱热力图的例子。我们可以看到,我们的模型能够对基频(f0)进行转换,在男女转换和女男转换中都保留了原有的语音内容。

4.4 主观评估

对转换后的声音(包括男性对男性、男性对女性、女性对男性、女性对女性,共四对说话人)进行主观评价。这四对说话人在训练过程中都是不可见的,所以我们提出的方法只使用一个源语音和一个目标语音输出每对说话人的转换结果。然后我们让评测人员用4个分值来评估两条语音之间的相似性,即相同的绝对肯定、相同的不确定、不同的不确定和不同的绝对肯定。这两条语音是一个源说话人语音或一个目标说话人语音的转换结果。结果如图6所示。我们的模型能够生成与目标说话人相似的声音。

5 结论

我们提出了一种解决一次性无监督VC的新方法,通过应用实例归一化来强制模型学习分解后的表示。这样,我们就可以用一条语音对未出现过的说话人进行VC。主观和客观评价表明,在与目标说话人的相似度方面取得了良好的效果。此外,解缠实验和可视化表明,在我们提出的方法中,说话人编码器在没有任何监督的情况下学习有意义的嵌入空间。

Chou, Ju-Chieh et al. “One-shot Voice Conversion by Separating Speaker and Content Representations with Instance Normalization.” INTERSPEECH (2019).

【论文学习】《One-shot Voice Conversion by Separating Speaker and Content Representations with IN》相关推荐

  1. 【论文学习笔记】《A Review of Deep Learning Based Speech Synthesis》

    基于深度学习的语音合成综述论文学习 文章目录 基于深度学习的语音合成综述论文学习 1 简介 2 语音合成概述 2.1 语音合成概念 2.2 语音合成发展历史 2.3 传统语音合成技术 2.3.1 拼接 ...

  2. 论文学习之综述:《Deep learning》

    论文学习之综述:<Deep learning> 文章目录 论文学习之综述:<Deep learning> 前言: 第一部分:深度学习基础(1-4)页 作者介绍: 前期知识储备: ...

  3. 论文翻译:2021_语音增强模型压缩_Towards model compression for deep learning based speech enhancement...

    论文地址:面向基于深度学习的语音增强模型压缩 论文代码:没开源,鼓励大家去向作者要呀,作者是中国人,在语音增强领域 深耕多年 引用格式:Tan K, Wang D L. Towards model c ...

  4. 综述:基于深度学习的文本分类 --《Deep Learning Based Text Classification: A Comprehensive Review》总结(一)

    文章目录 综述:基于深度学习的文本分类 <Deep Learning Based Text Classification: A Comprehensive Review>论文总结(一) 总 ...

  5. 论文详读:LEMNA: Explaining Deep Learning based Security Applications

    我以我ppt的内容顺序介绍一下这篇论文,希望有错误的地方大家可以帮我指出嘻嘻 1.论文出处 论文名:LEMNA: Explaining Deep Learning based Security App ...

  6. 【论文学习笔记】《Parallel WaveNet: Fast High-Fidelity Speech Synthesis》

    Parallel WaveNet 论文学习 文章目录 Parallel WaveNet 论文学习 1 简介 2 WaveNet 介绍 3 Parallel WaveNet 介绍 4 概率密度蒸馏 4. ...

  7. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  8. 【论文学习】《“Hello, It’s Me”: Deep Learning-based Speech Synthesis Attacks in the Real World》

    <"Hello, It's Me": Deep Learning-based Speech Synthesis Attacks in the Real World>论文 ...

  9. 综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation

    综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation 近期主要在学习语义分割相关方法,计划将arXi ...

  10. 论文翻译七:Adversarial Transfer Learning for Deep Learning Based Automatic Modulation Classification

    30天挑战翻译100篇论文 坚持不懈,努力改变,在翻译中学习,在学习中改变,在改变中成长- Adversarial Transfer Learning for Deep Learning Based ...

最新文章

  1. Java反射理解与案例
  2. Remoting方面的转帖1
  3. java函数ao活动对象_JavaScript中的执行上下文和变量对象
  4. Effective Objective-C 2.0 初读小结
  5. linux卸载minicoda2,MiniConda2下载 MiniConda python 2.7 v4.3.30.2 Linux 64位 官方免费版(附安装步骤) 下载-脚本之家...
  6. mysql -- MAC下安装配置mysql
  7. mysql 存储二进制数据_为什么在MySQL中存储二进制数据?
  8. 《关于Win10系统下Oculus Senser USB无法识别的问题》
  9. nginx创建n个工作子进程
  10. 如何写出整洁规范的R代码?是时候讨论一下代码规范性了
  11. php date()
  12. 2021-06-09反射的类型方法
  13. c语言编写的小游戏(c语言编写小游戏入门)
  14. 模型预测控制Paolo Falcone 博士面试 (二) - MPC控制的稳定性
  15. 访问不到webapp
  16. k8s cpu 和内存资源说明
  17. ng-bind、ng-value和ng-model
  18. 一点小感受:界面和程序的分离
  19. 企企通:如何利用数字化之道,赋能汽车行业供应链创新?
  20. 如何用Zabbix监控OpenWrt路由器-Zabbix-Agent安装篇

热门文章

  1. 淘宝API 搜索相似的商品
  2. html怎么把图片左移_html元素向左移代码 html
  3. excel如何设置下拉框选项
  4. 11x 程序员专属 TapTap 代码编辑器主题
  5. python中def demo是什么意思_python中def是什么意思
  6. 哔哩哔哩视频下载到电脑,bilibili UWP下载的视频重命名,blibli视频下载到电脑...
  7. 计算机一级字幕设置,如何开启电脑哔哩哔哩中的CC字幕功能
  8. 中国最伟大的现实主义诗人:杜甫的一生
  9. AIRS Opencat机器猫
  10. C语言程序设计(十七)12.12