我们提出 Cotatron ,一种转录引导的语音编码器,用于独立于说话人的语言表示。
Cotatron 基于多说话人 TTS 体系结构,可以用传统的 TTS 数据集进行训练。
我们训练了一个语音转换系统,利用 Cotatron 特征重建语音,这与之前基于语音后图( PPG )的方法相似。
通过对来自 VCTK 数据集的 108 名说话者进行训练和评估,我们在自然度和说话者相似度方面都优于之前的方法。
我们的系统还可以将训练过程中看不到的说话人的语音转换为语音,并利用 ASR 实现自动转录,同时将性能降低到最低限度。
音频样本可在 https://mindslab-ai.github.io/cotatron 上找到,带有预先训练过的模型的代码将很快发布。
语音转换( VC )的最新进展显示出了广泛应用的潜力,例如增强受损的语音或娱乐用途。
为了将源语音的说话人身份转换为目标说话人身份,系统应该能够从给定的语音中对说话人无关(如语言)的特征进行编码,然后将它们与说话人表示配对来重建语音。
语音后验图( PPG )(《Phonetic posteriorgrams for many-to-one voice conversion without parallel data training》)是一种由说话者无关 ASR 提取的说话人无关特征,被广泛应用于非并行语音转换(《Non-parallel voice conversion using variational autoencoders conditioned by phonetic posteriorgrams and d-vectors》,《Rhythm-flexible voice conversion without parallel data using cycle-gan over phoneme posteriorgram sequences》,《Towards fine-grained prosody control for voice conversion》,《Oneshot voice conversion with global speaker embeddings》)。
然而,基于 PPG 的方法通常需要从音频分析中获得额外的声学特征,这可能表明 PPG 本身不足以编码丰富的人类语言特征。
在不舍弃语音要素的情况下对与说话人无关的特征进行编码的一种方法是训练一个有一定限制的语音编码器。
例如, Qian 等人(《AutoVC: Zero-shot voice style transfer with only autoencoder loss》)表明,一个经过仔细调整瓶颈的自动编码器可以有效地编码与说话人无关的特征,而不会丢失内容信息。
其他先前限制语音编码器的工作包括:传播说话者分类器(《Multi-target voice conversion without parallel data by adversarially learning disentangled audio representations》)的反向梯度,应用实例归一化(《One-shot voice conversion by separating speaker and content representations with instance normalization》),量化表示(《Neural discrete representation learning》,《Group latent embedding for vector quantized variational autoencoder in non-parallel voice conversion》,《Unsupervised end-to-end learning of discrete linguistic units for voice conversion》),以及训练一个基于条件流的生成模型(《Blow: a single-scale hyperconditioned flow for non-parallel raw-audio voice conversion》)。
然而,这些方法要求模型自行发现语言表示,尽管在数据集内转录是可用的。
将文本监督纳入语音转换系统的初步尝试训练了一个辅助 ASR 解码器(《Improving sequence-to-sequence voice conversion by adding textsupervision》,《Non-parallel sequenceto-sequence voice conversion with disentangled linguistic and speaker representations》,《Parrotron: An end-to-end speech-to-speech conversion model and its applications to hearing-impaired speech and speech separation》),或与 TTS (《Joint training framework for text-to-speech and voice conversion using multi-source tacotron and wavenet》)共享模型权值。
不幸的是,这些方法只能处理有限数量的说话人,或者每个说话人需要大量的数据,使其在现实应用程序中的有效性受到质疑。
在本文中,我们提出了 Cotatron ,一种基于预先训练的多说话人 TTS 模型的转录引导语音编码器(《Natural tts synthesis by conditioning wavenet on mel spectrogram predictions》,《Transfer learning from speaker verification to multispeaker text-to-speech synthesis》)。
Cotatron 将任意说话人的语音编码为说话人独立的语言特征,并将这些特征输入解码器进行非并行的任意对多语音转换。
当使用来自 VCTK 数据集(《Cstr vctk corpus: English multi-speaker corpus for cstr voice cloning toolkit (version 0.92)》)的 108 个说话者进行训练和评估时,我们基于棉环的语音转换系统在用户研究的自然度和说话者相似度分数方面优于之前的最先进方法 Blow (《Blow: a single-scale hyperconditioned flow for non-parallel raw-audio voice conversion》)。
Cotatron 是由转录引导的,从语音中提取出说话人独立的语言特征。
Cotatron 的基本架构与多说话人 Tacotron2 相同(《Natural tts synthesis by conditioning wavenet on mel spectrogram predictions》,《Transfer learning from speaker verification to multispeaker text-to-speech synthesis》);它通过文本编码、之前的梅尔帧和说话人表示共同学习对齐和预测下一个梅尔帧。
其中 T , M , A , Zid 分别对应文本,对数梅尔谱图,对齐,说话人表示。
训练后,使用一个简单而有效的技巧。通过将梅尔谱图的所有帧输入到使用强制教师的 Cotatron 中,获得语音和转录之间的对齐。
然后,通过对齐和文本编码的矩阵乘法得到语音的非说话人语言特征,如图 1 所示:
根据定义,文本编码不包含说话人信息。
此外,文本音频对齐 A 是一组标量系数,对文本编码的编码器时间步长进行加权求和。
因此,我们可以证明, Cotatron 的特征 L 不显式地包含一个源说话人的信息。我们在第 4.3 节显示说话人的解纠缠程度。
Cotatron 特性自然足以从大量的发言者中合成语音;这些特征可以被解释为 Tacotron2 的注意力机制的上下文向量,该机制已经为多说话人语音合成进行了优化。
我们通过将嵌入表替换为一个编码器来实现说话人表示 Zid ,从而进一步扩展了源说话人的覆盖范围。
该说话人编码器由 6 层 2D CNN 组成,遵循 Skery - Ryan 等人(《Towards end-to-end prosody transfer for expressive speech synthesis with tacotron》)的参考编码器架构。
每层有 3×3 个核, 2×2 个步幅, 32 、 32 、 64 、 64 、 128 、 128 个通道。
CNN 的输出被平铺,并通过 256 个单元的 GRU 获得最终状态下的定长说话人表示。
让我们考虑一个从 Cotatron 特征重构语音的解码器。
即使抄写的节奏是通过 Cotatron 的特征给出的,讲话的其他成分也可能不同。
例如,同一段文字的语音语调可能会以相同的节奏变化。
因此,解码器仅使用 Cotatron 特征和说话人表示是不够的。
为了填补信息的空白,我们设计了一种编码器,为解码器提供一个残差特征 R 。
残差编码器(图 2b )与扬声器编码器一样使用 6 层 2D CNN 构建,但并没有跨时间使用跨大步来保持梅尔谱图的时间维数。
每层 3 × 3 粒, 2 × 1 步,以及 32 、 32 、 64 、 64 、 128 、 128 个通道。
如果残差特征的维度太宽,残差编码器可能会学会通过编码与单个说话人相关的信息来作弊,例如绝对音高。
我们发现单通道输出有助于防止残差特征包含单个说话者的特征,并且足以表示语音的残差信息;这个方法也被 Lian 等人使用(《Towards fine-grained prosody control for voice conversion》)。
投影到单个通道后,应用实例归一化(《Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis》)来防止残留表示包含说话人相关的信息。
最后,通过与窗口大小为 21 的 Hann 函数的卷积,对 tanh 激活后的值进行平滑处理。
训练语音转换解码器(图 2c ),从给定的一对信息重建梅尔谱图;
Cotatron 特征 L 和残差特征 R 按通道级连接,然后用 256 维说话人嵌入从查找表中检索到的 yid 作为条件:
星号符号可以是 s 或 t ,每个表示语音转换的源/目标。
因此, Ms→s 表示重构, Ms→t 表示从 s 到 t 的语音转换。
遵循 GAN-TTS (《High fidelity speech synthesis with adversarial networks》)的模型架构, VC 解码器由四个 GBlock 组成,不进行上采样。
每个 GBlock 分别有 512 、 384 、 256 、 192 个通道。
对于说话人条件反射,经过仿射变换后,通过 GBlock 内的条件批处理归一化层(《A learned representation for artistic style》)注入目标说话人 yid 。
我们根据经验观察到说话人嵌入的连接导致较差的结果。
过度调节的(《Hypernetworks》)和权重解调的(《Analyzing and improving the image quality of stylegan》)都没有帮助。
解码器架构的设计选择可能还有改进的空间,但我们把它留作未来的工作,因为它超出了本工作的范围。
请注意, VC 解码器仅被训练为使用同一说话人的表示来重建梅尔声谱图。
虽然以对抗的方式直接训练转换是可能的,但我们证明了 Cotatron 在语音转换中仅使用重建损失的有效性。
我们的语音转换系统使用 VCTK 数据集(《Cstr vctk corpus: English multi-speaker corpus for cstr voice cloning toolkit (version 0.92)》)进行训练和评估,该数据集包含来自 108 位发言者的 46 小时英语语音。
与 Blow 所做的(《Blow: a single-scale hyperconditioned flow for non-parallel raw-audio voice conversion》)类似,我们通过随机选择 80% 、 10% 、 10% 的数据,将数据分成训练、验证和测试分割。
为了防止数据分割之间的转录重叠,数据是根据它们的转录而不是文件的数量进行分割的。
为了稳定多说话人 TTS 的训练,我们加入了 LibriTTS (《Libritts: A corpus derived from librispeech for text-to-speech》)的子集,这是一个专门用于 TTS 系统训练的数据集。从LibriTTS train-clean-100 中选出演讲时间超过 5 分钟的演讲者。
所有超过 10 秒的音频都不用于训练,以保证有效的批处理。
音频重新采样到采样率为 22.05 kHz ,然后进行归一化,不去除沉默。数据集的统计数据如表 1 所示。
Cotatron 使用上述 LibriTTS 子集进行训练,该子集基于 train-clean-100 分割。
然后,模型被转移到 LibriTTS 和 VCTK 训练分离学习。
为了提高文本-音频对齐学习的稳定性,自回归解码器采用了教师强制,比率为 0.5 ,即从真实帧或之前生成的帧中随机选取输入梅尔帧。
此外,我们发现利用交叉熵损失 Lid ,在音箱编码器的 Zid 之上训练额外的带丢弃的 MLP 来进行音箱分类是有帮助的。
总的来说,用梅尔谱图重建损失和说话人分类损失之和来训练 Cotatron :
其中, Ms,pre 和 Ms,post 分别表示 Cotatron 后网(《Natural tts synthesis by conditioning wavenet on mel spectrogram predictions》)前后的输出。
在整个培训过程中, Adam 优化器(《Adam: A method for stochastic optimization》)使用批量大小 64 。
初始学习速率 3×10^-4 用于第一个 25k 步,然后在接下来的 25k 步中指数衰减为 1.5×10^-5 。
在模型与 LibriTTS 收敛后,我们加入 VCTK 并重新使用学习速率衰减方案。
亚当优化器采用 1×10^-6 的重量衰减,并将梯度裁剪为 1.0 ,以防止梯度爆炸。
在对 Cotatron 进行训练后,根据 Cotatron 的特点对语音转换系统的部件进行训练。
利用残差编码器和 VC 解码器对梅尔谱图重建损失进行联合训练:
在重建训练阶段, Cotatron 被设置为评估模式:所有的丢弃层都被关闭,自回归解码器总是强制教师为 VC 解码器提供一致的特性。
采用恒学习率为 3×10^-4 的 Adam 优化器,重量衰减为 1×10^-6 ,批量大小为 128 。这里不使用渐变裁剪。
为了将一种语音转换为另一种语音,我们首先使用 Cotatron 和残差编码器分别从源语音中提取出与说话人无关的特征 Ls 和 Rs 。
然后,从查找表中检索目标说话人ytid的嵌入。
最后,利用对说话人无关的特征和目标说话人的嵌入来生成转换后的梅尔谱图, Ms→t 。
然后,使用 MelGAN (《Melgan: Generative adversarial networks for conditional waveform synthesis》)将得到的梅尔声谱图转换为原始音频,使用 LibriTTS 训练片段进行训练,然后使用整个 VCTK 数据集进行微调。
为了抗长度变化的鲁棒对准稳定性,我们应用了动态卷积注意( DCA )机制(《Location-relative attention mechanisms for robust long-form speech synthesis》)。
用说话人编码器从真实梅尔谱图中提取说话人表示,然后与文本编码器输出反复连接,馈入 Cotatron 自回归解码器。
对于 Cotatron 和语音转换系统,训练数据都使用混合(《Representation mixing for tts synthesis》)的表示法,即如果 CMUdict (《The cmu pronouncing dictionary》)中有单词,则将字素随机替换为音素。
两种解码器都产生 80 字节的日志梅尔谱图,这是从 22.05kHz 的原始音频计算出来的,使用 STFT ,窗口大小 1024 ,跳数大小 256 , Hann 窗口,以及一个从 70Hz 到 8000Hz 的梅尔滤波器组。
语音转换系统使用 PyTorch (《Pytorch: An imperative style, high-performance deep learning library》)实现,并使用两个NVIDIA V100 ( 32GB ) GPU 进行 10 天的数据并行训练。
我们使用主观和客观指标验证了我们的方法的有效性,每次测量分别使用 100 和 10000 个音频样本。
平均意见评分( MOS ):
为了评估转换语言的自然程度,我们在亚马逊机械土耳其语( MTurk )上测量了 5 分制的平均意见得分( MOS )。
我们的方法和自然语音的音频样本被下采样到 16khz ,以匹配 Blow (《Blow: a single-scale hyperconditioned flow for non-parallel raw-audio voice conversion》)的结果。
每个样本被分配给 5 个人类听众,最高/最低的分数被丢弃。
平均意见评分( DMOS ):
另一个用户研究是为了评估转换后的说话人和目标说话人原始记录之间的相似度。
在 MTurk 用 MOS 实验的相同设置测量退化平均意见得分( DMOS )。
说话人分类准确度( SCA ):
我们的系统应该能够愚弄说话人分类器,就好像转换后的语音是从目标说话人发出的一样。
说话人分类器是一个基于 MFCC 的单层分类器,它与 Blow (《Blow: a single-scale hyperconditioned flow for non-parallel raw-audio voice conversion》)使用的分类器相同,以便进行公平比较。
该分类器由 108 名来自 VCTK 列车分裂的说话人进行训练,在测试分裂上达到了 99.4% 的 top-1 精度。如果可能的话,可以直接从对数梅尔谱图计算 MFCC 。
语音判定错误( VDE ):
本文采用端到端的韵律迁移度量方法,将其应用于语音合成(《Towards end-to-end prosody transfer for expressive speech synthesis with tacotron》)中,作为衡量源语音和转换语音内容一致性的代理度量,测量两者之间的语音决策匹配率。
语音判决通过 rVAD (《rvad: An unsupervised segmentbased robust voice activity detection method》)进行, VAD 阈值设置为 0.7 。
我们将我们的系统与 Blow (《Blow: a single-scale hyperconditioned flow for non-parallel raw-audio voice conversion》)进行比较,这是迄今为止与所有 VCTK 说话人多对多语音转换的唯一文献。
如表 2 所示,我们的系统在 MOS 和 DMOS 上的效果都明显优于 Blow ,即使只使用 Cotatron 特性而不使用残余特性。
在我们的系统中加入残余编码器进一步增强了 MOS 。
然而,需要注意的是,关于说话人相似度( SCA )的客观结果与主观结果( DMOS )相矛盾。
因此,未来的工作应该重新考虑并为语音转换系统建立客观的说话人相似度指标。
考虑到现实应用的技术需求,我们进一步探索我们的语音转换系统的泛化能力。
首先,我们考虑任意对多的设置,即将任意说话人的语音转换为训练期间看到的说话人的语音。
接下来,我们检查使用 ASR 转录的可靠性,它使我们的系统不需要人工转录就可以实现全自动流水线。
在任意多转换实验中,我们从LibriTTS test-clean 片段中随机抽取演讲样本,将其转换为 VCTK 说话人。对于 ASR ,使用 wav2letter++ (《Fully convolutional speech recognition》,《Wav2letter++: A fast open-source speech recognition system》)。
在表 3 中,我们为所有可能的输入情况提供了 MOS 、 SCA 和 VDE 。
首先,所有的 MOS 结果都比表 2 中前面的方法好得多,尽管任意对多设置的得分略低于多对多设置的得分。
接下来, SCA 在不同案例中的差异可以忽略不计,在考虑 VAD 模块的准确性时, VDE 的值是最小的。
这些结果表明,使用: (1) 训练期间未见的说话人的源语音; (2) 从 ASR 自动转录,转换质量相当不受影响。
此外,令人惊讶的是,自动转录的单词错误并没有损害性能;这似乎表明,大多数的转录错误来自于它们的同音异义词,例如, site 经常被错误地转录为 sight 。
为了量化 Cotatron 和残差编码器的说话人特征解纠缠程度,我们还训练了一个神经网络,用给定的特征集对 VCTK 数据集中的说话人进行分类。
在理想说话人解缠的情况下, SCA 将接近随机猜测的 SCA : 0.9% 。
每个分类网络由 4 层一维 CNN 和批处理归一化构建,然后是时间池化层和带丢弃的 MLP 。
如表 4 所示,具有 Cotatron 特征和残留特征的 SCA 明显低于来自源梅尔谱图的 SCA 。
这些结果表明,我们的方法有效地将说话者的身份从语音中分离出来,但值得注意的是,仅使用 Cotatron 特征,网络对说话者的猜测能力略强。
在本文中,我们提出了 Cotatron ,一种基于多说话人 Tacotron2 体系结构的转录引导语音编码器,用于独立于说话人的语言表示。
我们的基于棉环的语音转换系统在对来自 VCTK 数据集的 108 个说话者进行转换时,在自然性和说话者相似性方面达到了最先进的性能水平,并在对任意说话人进行转换时显示了令人满意的结果。
即使输入带有错误的自动转录,它们的表现也没有变化。
据我们所知, Cotatron 是第一个通过明确地将转录与给定的语音对齐来编码与说话人无关的语言表征的模型。
这为语音处理任务的多模态方法开辟了一条新路,在这种情况下,通常只使用语音模态。
例如,可以考虑训练一个基于 Cotatron 特征的转录引导的语音增强系统。
此外,传统的用于唇动合成的语音特征也可能被 Cotatron 特征所取代,以融入转录以获得更好的质量。
尽管如此,使用 Cotatron 的语音转换系统仍有很大的改进空间。
尽管我们精心的设计选择,残留编码器似乎提供了与说话人身份纠缠在一起的语音特征,这可能会损害转换质量,甚至导致发音错误的问题。
此外,对目标说话人表征的调节方法也可能发生变化;例如,利用一个预先训练过的说话人验证网络作为说话人编码器,可以实现与我们的系统的任何对任何转换。