Mellotron:Multispeaker expressive voice synthesis by conditioning on rhythm, pitch and global style

在Tacotron-GST的基础上进行改进 ,可以完成多说话人语音合成。可以精确的控制生成各种风格的语音。并且训练的时候只需要read speech data,并且不需要text和audio的对齐。

introduction

想要语音合成特定风格的语音,必须要有对应的训练数据。但是这样比较难以获得,因此我们提出一种不需要这类数据也能进行风格控制的方法。
GST已经提供了一种可能的解决方法,但是它的控制方法比较粗糙。我们提出的Mellotron可以通过很少的音频或者乐谱细粒度的控制情感特征(基频和韵律信息)。
把旋律的信息添加到语音合成中,Mellotron也可以完成歌唱合成的任务。然而最近的工作表示这仍然需要高度的依赖对应的歌唱数据。Mellotron并不需要任何歌唱的数据,也不需要为了歌唱合成手工进行pitch和text的对齐。
training:Mellotron仅需要read data和文本转录
inference: 通过一个audio or music score控制合成的情感或者是歌唱合成,
Mellotron是一个通用的语音合成模型,可以确保不同sources的特征结合,并且可以合成训练数据中没有见过的特征。

methods

Mellotron将explicit and latent 变量结合。一些已经固定的信号处理算法可以提取explicit variables用以表示像基频包络,voice decisions这样的情感信息。深度学习的算法提取的是latent variables用以表示音频特性,但是很难形式化。
从single speaker的mel 谱中提取explicit variable,比如spaeker identity,基频包络,text, vuv,以及两种latent variable,一种是GST提出的 vector directory,第二种是text和mel的对齐关系。
建模
在这里插入图片描述
其中
T TT:text P PP—f0&vuv S SS–speaker R RR—对齐关系 Z ZZ–GST
θ θθ—网络参数

添加explicit variable的两大好处:(1)避免了text 和speaker information的纠缠,(2)训练的时候提供f0&vuv信息,在reference的时候就可以更好的控制这两个特征。
同样,latent variable的两大好处:(1)学习text和mel谱的对齐,因此不需要人工进行音素对齐,并且可以的在inference的时候控制节奏,(2)GST的向量学到了很难直接提取到的特征,充分利用了latent variable的特点。
在这里插入图片描述
因此,可以通过替换建模函数中的某些项完成source 到target的转换。比如保证T(text), P(pitch), R(rhythm)不变的情况下,采样选择需要的Z q u e r y Z_{query}Zquery​–GST,以及目标说话人R。

目前模型可以做到的是目标说话人必须是训练集seen,source text, pitch, rhythm可以是unseen。因此模型可以用训练集以外的audio或者歌唱数据,而不需要对基频,对齐等进行手工标注。

implementation

model architecture

和deep voice2/3 的site specific speaker embedding不一样,单独用一个speaker embedding,channal-wise的拼接在encoder output上,基频包络通过一个卷积层(ReLU)然后拼接在decoder inputs上。

training

需要text-audio pair,以及speaker id,Yin 算法提取基频,L2 loss算mel损失。
尽可能的使用音素信息。

inference

从audio或者music中提取 text, rhythm and pitch information ,然后再得到一个GST, speaker id。

audio signale

提取特征的步骤:
(1)text: 通过ASR或者文本转录得到音频的语言内容信息,然后通过预处理把字母转为音素。
(2)rhythm 信息:通过一个强制对齐工具,或者用Mellotron作为强制对齐工具。先用训练数据得到对齐映射,在必要的时候,用小的学习率优化Mellotron的对齐。
(3)pitch:用Yin算法提取,后来发现Melodia的voice information信息更准确。

Music Score

对XML格式的music score进行处理,乐谱中的每一部分包含了pitch, duration of note和syllables。然后通过信号处理的办法把pitch转成连续的表示。(持续时间变成数帧的表示)
把音节变成字,然后把字母变成音素。对单独的音素事件,每个phone的持续时间等同于这个事件的时间。对于multi-phone的情况,每个phone的时间取决于它的类型。用启发式的方法把20-100ms分配给辅音,剩余的分配给元音。
举例子bass这个词(1s时长),【B, AE, S】三个部分, B to 20 ms, S to 100 ms,剩余给AE。从而实现对每个音素时间的控制。

experiment

setupment

训练数据集:LJS, LibriTTS(100人,每人平均25min), Sally dataset。都是read speech
没有做数据增广,因此模型还可以对说话人进行音域和语速的调节。
vocoder: waveglow, 在Sally dataset上训练,它可以做一个通用解码器。
train setup:首先用LJS and Sally训练Mellotron,然后用LibriTTS的新的speaker embedding 进行优化。(大数据训练学习attention对齐,小数据finetune的方法比较简单)

Quantitative Results

评判标准

  • Gross Pitch Error (GPE) --总基音误差,歌唱合成pitch error的错误率非常重要,错误率越低,旋律越准确。
  • Voicing Decision Error (VDE)
  • F0 Frame Error (FFE) —对于prosody transfer中,FFE越低,说明和target speaker越像。

Style transfer from Audio Signal

实验受到提供给模型的节奏以及基频包络的影响,forced-alignments 得到的节奏数据必须不断的进行微调。一些基频包络超出了说话人的音域范围,这时候Mellotron持续是最高或者最低值。修正的办法是乘以一个因子以匹配说话人音域。

Rhythm Transfer

从source音频到目标说话人进行节奏和对应文本的变化,因为对整个过程的每个音素持续时间有一个控制,因此简单的进行语速加减就可以实现,或者复杂的加减速操作。节奏转换中,给Mellotron的基频包络是一组零阵列。在这里插入图片描述
如图所示,一句话的source到转换后的(先0.5倍速,慢慢到2倍速)。

Rhythm and Pitch Transfer

通过控制节奏和基频,可以表示source speaker的讲话风格。也可以将source speaker的风格和target speaker的音色结合在一起。和Tacotron2做了这样的对比实验。

Singing Voice Synthesis

在这里插入图片描述
Mellotron可以合成训练集中没有见过的节奏和基频,图2是一个音乐合成的样例,和E2E-prosody做对比。Mellotron的基频包络更接近原始的。

conclusion

【4】已经说明即使对于人类演唱者或者语音合成任务而言,严格的对准note duration很难,但是我们做到了。前提假设是pitch在说话人的vocal 范围内,如果不是的话,就用最低的或者最高的表示。
下一步的工作是想要理解多说话人训练对于说话人音域以及扩大说话人音域的影响。也会进一步探究在富有情感的数据集上训练Mellotron得到的效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值