- 会议:2020 icassp
- 单位:Google brain
- 在此文基础上的层级建模改进CSDN解说:Robust and fine-grained prosody control of end-to-end speech synthesis
abstract
- 对韵律进行多粒度建模,使用CVAE提取hierarchical, fine-grained , interpretable的隐向量。
- 韵律和其他很多特征耦合在一起,本文尝试对韵律控制进行层级建模,使得latent prosody model的过程可解释性增强,每一维的向量都有对应的物理含义。
introduction
ref【13】Robust and fine-grained prosody control of end-to-end speech synthesis
本文的prosody是对pitch,energy,duration的统称。【13】提出可以建模phn粒度的prosody embedding,但是某些特征(比如字级别发音的连贯性、noise level以及声道特性)都不能仅仅从phn prosody embedding中得到。因此本文提出多层级的解耦控制——utterance level & word level & phone level。
不和真实的latent factor结合而学习独立分布的隐变量,这一方向已经取得了很大的进展。但是【25】证明没有任何inductive bias下无监督学习得到解耦特征是不可能的。【25】中证明了相同边界分布的两个空间具有无限的双向映射关系(两个空间高度耦和)。
multi-level prosody modeling structure
- 首先根据tacotron2的Location-sensitive attention得到对齐信息。
- 然后根据phn-word align信息,计算得到词边界,average spec以得到计算word-level prosody embedding
- 然后根据已经得到的word-level prosody embedding,预测更细粒度的phn level prosody embedding。
- phn prosody和word prosody拼接(根据phn-word align扩帧),送给decoder用于特征重建。
- 因为 z f ( n ) w z^w_{f(n)} zf(n)w的分布也是变量,所以要乘期望,但是实际上,这个期望的分布在模型计算的时候,每个batch内自动求了,并不需要体现在损失函数中。
Interpretable CVAE
-
如图所示,假设VAE建模的多维向量之间彼此不相关(对角高斯分布),train/infer stage可以表示为left (1)/(2); z 1 z_1 z1不会给 z 2 , z 3 z_2, z_3 z2,z3提供任何的信息;
-
但是如果特征没有解耦干净,比如 z 1 z_1 z1提取的是能量信息,它会告诉 z 2 , z 3 z_2, z_3 z2,z3提取能量之外的信息(further info),变成了有相关性的韵律建模,这个关系表示为left (3)——预测过程有相关性。
因为【13】text-side 的实验结果说明各个维度的特征之间还有耦合关系,因此在模型设计的时候进行层级的设计。 -
每次预测一维latent embedding,在预测第k维latent embedding的时候,VAE的输入是aligned spec + sum(previously extracted latent features),这样的目的是让第k维latent embedding更多的编码其他维度之外(previous extracted latent features)还没有表示的信息,然后输入到decoder帮助重建,
-
trick:实验发现,解耦得到的特征依次会是energy-duration-F0 ,首先只打开第一维训练若干steps稳定之后,再打开第二维,在已经energy先验之后会更主动的去学习duration信息。