会议:2018interspeech
作者:MengHelen, liusongxiang, sunlifa
Voice Conversion 项目笔记(含从VCC 2016匿名比赛深挖的各前沿方法性能对比)https://blog.csdn.net/a790209714/article/details/77771866
abstract
针对特定说话者的VC任务通常需要相当大数量的source-target数据,而我们想要仅通过一句source-target就完成voice conversion,我们称之为any-to-any的vc。我们做了两个系统(1)基于i-vector的vc系统,称之为IVC,使用i-vector表示一个新的target speaker;(2)speaker-encoder based vc,称之为SEVC,用一个单独训练的网络生成一个说话者embedding。使用ppgs提取说话者无关的语言特征。这两个系统都完成了目的,就自然度和语音质量而言,IVC更胜一筹。
1. introduction
经常会需要将vc任务用于一个新的特定说话者,这种时候就需要对与训练好的模型进行自适应或者用目标说话者的数据完全从头开始训模型。如果可用的目标说话者数据量很小的时候,自适应或者重新训模型就很难实现。一种方法就是用现有的multi-speaker数据训练一个多说话者语音转换(MSVC,multi speaker voice conversion)模型,说话者的身份特征被编码额外作为输入。然后MSVC对于新的source-target pair的时候,从source中提取语言信息ppgs,然后从target提取说话者信息,一起作为输入。提取说话者身份特征的方法是多样的:可以用i-vector,是一个低维度的说话者身份编码方式【21】;也可以用可以学习的说话者编码方式【22,23】。
对于新的target speaker,用一个预训练的离线的i-vector提取器提取embedding,而不能从已有的speaker embedding table中直接得到。有感于【24】,单独训练一个模型,用learned speaker embedding估计新的target speaker embedding。
优点在于
- 仅需要一句source-target就可以完成转换,而且转换的语音质量和相似度是在可以接受的范围;
- 不需要自适应的过程,意味着模型可以的直接用于任何的新的source-target数据;
- 不需要平行数据,意味着任何可用的数据都可以用于模型训练。
2. Any-to-Any Voice Conversion Systems
2.1. TheI-vector-basedVCSystem
i-vector在语音识别中是有效的说话者身份的低维特征表示,本文用传统的GMM i-vector的方法作为i-vector提取器。它将channel和说话者信息压缩到一个total variable space的低维空间,因此将每一个GMM super-vector投影到成为i-vector的total factor feature。
s
=
m
+
T
w
s=m+Tw
s=m+Tw
其中:s–super vector m:GMM-UBM的均值,T–total variabel matrix
w–i-vector,∑k是GMM-UBM的协方差,s,m已知,由EM算法通过T求i-vector
i-vector同时包含speaker和channel的信息,使用LDA和WCCN来减弱channel影响。
图1说明了IVC系统的训练和转换过程,从MFCCs中提取通过embedding extractor提取speakerID encoding, 直接提取的LF0和SI-ASR提取的ppgs拼接,再和speakerID encoding拼接作为输入,通过多说话者转换网络映射到STFTMs,计算regression loss。最后通过GL声码器进行还原。
&emsp图2是网络的模型结构,N1是全连接层的堆叠,N2是BLSTM层的堆叠,为了充分的用到speakerID embedding的特征,我们将它加在网络的不同地方。再和ppgs以及Lf0拼接之前,先通过一层全连接,变成高维特征。
2.2. TheSpeaker-Encoder-based VC System
speaker encoder是一个回归模型,本文使用的结构如图3所示,用可以拿到的数据集进行训练,输入mel谱,映射到已知的speaker embedding。
训练过程:(1)首先用多说话者语料集训练MSVC模型,embedding parameter被近似初始化,然后通过回归损失和其他参数一起训练;(2)用训练的说话者语音的梅尔谱作为输入,learned speaker embedding作为目标训练speaker encoder模型。
转换过程也很相似,不同的是将speaker embedding生成的过程替换一下。
3. Experiments
做实验探究i-vector和 speaker embedding的性能,并且探究更多的source-target语句是否可以改善转换的语音质量,分别做了1,5,10三个数量的模型试验。
3.1. TheSI-ASR Model and the I-vector Extractor Training
SI-ASR模型由4层DNN,在TIMIT数据集(462speaker)上训练,提取131 senone。提取13维的MFCC(25ms帧长,5ms帧移)。
用ESJ0+WSJ1+TIMIT数据集训练i-vector,一共847speaker,声学特征:19维MFCC+LF0(log energy??)以及它的一阶二阶导数。用基于能量的VAD算法移除静默帧,用sliding window cepstral mean and variance normalization(CMVN)对特征做归一化。性别相关的2048UBM,i-vector提取器,LDA, 带有白噪化和长度过一化的PLDA,i-vector的维度是400,LDA的秩是400,PLDA的投影矩阵的秩是32,因此最终提取的是32维i-vector。
3.2. MSVC Model Training
如图2所示,
multi-head attention layer | 2 heads and a unit size of 64 for keys, queries and values |
---|---|
2层gated CNN | 64个kernel,kernel宽度12 |
2层FC | 节点数64 |
提取80维的对数功率谱,1024维的线性谱,对输入的对数功率谱做归一化变换,speaker encoder不需要归一化。
86个speaker(35male, 51female)用于训练speaker encoder, 另外10个做验证集。对应1,5,10句的source-target speech分别训练3个speaker encoder。adam优化器。初始学习率0.001,退火参数0.5。
4. Experimental Results
图4展示了语音质量的MOS结果,将FF、MF、MM、FM的结果分别和groud truth进行比较,i-vector N01表示是用i-vector表示说话者身份,仅用一句source-target进行转换。
图5展示了语音相似度的结果。i-vector的方案全面超过speaker embedding的方法,而且在target是女性的时候相似度更高,分析原因是训练数据中包含了更多的女性数据,因此希望能够通过数据集的均一化缩小这个差距。而且在两个系统上,随着训练数据集的增加,相似度是一个连续的改善。
给出了实验的样音。并提出可以通过替换GL vocoder达到更好的结果。
1Some audio samples can be found in “https://vcdemo.github.io”但是没有说是在什么样的数据集上训练出来的结果。
只做了主观评价,没有MCD的评价指标。
未完成的工作
1.对i-vector, GMM-UBM,以及EM算法的理解
2.对multi-head attention的理解。attention is all u need
3.speaker encoder的本质是什么?和i-vector的区别