CALM:用于富有表现力的文本到语音合成的对比跨模态说话风格建模

CALM:用于富有表现力的文本到语音合成的对比跨模态说话风格建模

Abstract

为了进一步改善合成语音的说话风格,当前的文本到语音(TTS)合成系统通常使用参考语音来风格化其输出,而不仅仅是输入文本。这些参考语音是通过耗费资源的人工选择获得的,或者是通过语义特征选择的。
然而,语义特征不仅包含与风格相关的信息,还包含与风格无关的信息。文本中与说话风格无关的信息可能会干扰参考音频选择并导致不正确的说话风格。
为了改进参考选择,我们提出了对比声学语言模块(CALM)来从文本中提取与风格相关的文本特征(STF)。 CALM 通过对比学习优化说话风格嵌入和提取的 STF 之间的相关性。因此,通过检索具有最高STF相似度的语音来选择一定数量的最适合输入文本的参考语音。然后根据 STF 相似性对风格嵌入进行加权总结,并用于对 TTS 合成语音进行风格化。

Introduction

首先引入全局风格嵌入(GSE,Global style embeddings)来提取参考语音的说话风格。进一步提出了全局风格标记(GST,Global style tokens),将参考语音的 GSE 嵌入到风格标记的加权和中。这两种方法都使用真实的语音作为训练的参考。
CALM 是一个基于对比学习的跨模态说话风格选择模块,它学习通过音频监督从文本中提取风格相关的文本特征(STF)。 CALM 利用风格编码器从语音中提取风格嵌入,并利用语言编码器从文本中提取 STF。
在训练阶段,风格编码器首先与TTS 系统进行训练。然后,我们通过将具有相似风格嵌入的 STF 推向彼此靠近,同时推开具有不同风格嵌入的 STF,来联合优化风格编码器和语言编码器。最终,CALM 学会将语音风格和文本映射到风格嵌入和 STF 共享的同一嵌入空间中。因此,在推理阶段,为了获得说话风格最适合输入文本的参考语音,我们可以直接选择STF最相似的语音。然后对说话风格进行加权总结,以对 TTS 合成语音进行风格化。

Methodology

Contrastive Acoustic-Linguistic Module (CALM)

我们使用语言编码器从文本中提取与风格相关的文本特征(STF),并使用风格编码器从语音中提取风格嵌入。 CALM 将样式和文本映射到相同的嵌入空间,并通过对比学习改变它们相应嵌入之间的距离。具体来说,CALM 强制文本和相似说话风格(正样本)具有更接近的 STF。相反,不同语音风格的 STF(负样本)在嵌入空间中尽可能分散。在推理阶段,STF 用于指导 TTS 中的参考音频选择。

Positive and negative samples selection

为了选择正样本和负样本进行对比训练,我们首先在训练集上训练风格编码器(style encoder)。然后,我们利用经过训练的风格编码器为每个训练音频提取风格嵌入,用于测量不同样本之间的风格相似度。
对于每个(语音,文本),在训练数据集中,我们根据风格嵌入与当前语音的风格嵌入的余弦相似度对训练集中的所有其他对进行排序。选择排序结果中的前K个作为正样本,而从排序对的后半部分中随机选择K个样本得到负样本。我们不选择最后 K 个样本作为负样本,因为最后 K 个样本太容易让模型区分。

CALM training

在这里插入图片描述
如图 1 中的蓝色虚线所示,给定 2K 个(语音、文本)对作为输入,CALM 尝试预测一个 2K × 2K 矩阵 M ′ ,其中第 i 行第 j 列位置的值表示风格编码器获得的第 i 个语音的风格嵌入与语言编码器获得的第 j 个文本的 STF 嵌入之间的余弦相似度。
ground truth矩阵M仅由1和-1值组成:(i)1表示STF嵌入和风格嵌入均来自正样本集或从负样本集中的相同对中提取的元素; (ii) 其他的为-1。具体来说,前K对(语音,文本)为正样本,后K对为负样本。损失函数 LCALM 是预测矩阵 M ’ 和真实矩阵 M 之间的均方误差 (MSE)。通过这些设置,CALM可以通过联合训练风格编码器和语言编码器来学习多模态嵌入空间,以最大化正样本之间嵌入的余弦相似度并最小化负样本之间的余弦相似度。

Model details

CALM 风格编码器的设置与 GST 增强型 Fastspeech 2 的风格编码器部分相同。 **CALM的语言编码器旨在从文本中获取句子级特征。**它包含一个预训练的 BERT ,将包含 L 个单词的句子作为输入和形状为 (L × D) 的输出单词级特征,该特征将被输入到具有双层 GRU的网络中,dropout使用速率 r 和线性单位将输出维度调整为与样式嵌入相同的维度。借助上述训练过程,输出的文本特征往往与语音风格更加相关,因此称为风格相关文本特征(STF)。
在这里插入图片描述

The TTS system with CALM

Training stage

在训练期间,如第 2.1.1 节所示,我们首先训练 GST 增强型 Fastspeech 2,即图 1 中的 TTS 模块。预训练的风格编码器用于提取训练集中的语音风格。之后,我们得到所有话语的正样本和负样本,正样本的风格嵌入不仅会在CALM中使用,还会加权汇总到TTS模块中使用的最终风格嵌入中。我们将 N 定义为参考音频的数量。给定从参考音频 S = [s1, s2, …, sn] 中提取的 N 个样式嵌入,以及从参考文本 T = [t1, t2, …, tn] 中提取的 STF,以及输入文本t0,最终样式嵌入的计算可以表示如下:
在这里插入图片描述
其中 w 是样式嵌入的权重。由于CALM训练中的正样本也可以作为预测目标音频的参考音频,因此我们在训练时间中设置N = K。将最终的样式嵌入和目标文本作为输入,TTS 模块生成目标音频。我们与 CALM 从头开始​​联合训练整个 TTS 系统。整个TTS系统的总损失可以定义为:
在这里插入图片描述
其中 λ 是 CALM 损失的权重。借助这个损失函数,我们可以联合优化整个系统的CALM和TTS部分。

Inference stage

如图 2 所示,在推理期间,输入文本被输入到 CALM 中经过训练的语言编码器中以获取 STF。训练集中的所有(语音,文本)对文本将被输入到 CALM 的语言编码器中以获得 STF。然后我们计算 STF 与训练集中所有 STF 的余弦相似度,并按降序对它们进行排序。我们使用其中的前 N ​​个作为参考音频来提取风格嵌入,并进行加权汇总以获得最终的风格嵌入。以最终的风格嵌入和文本作为输入,TTS系统可以合成具有相应说话风格的音频。与训练阶段不同,N 的数量可以变化并且与 K 不同。

  • 17
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值