作者:zhangjingxuan
期刊:audio trans
时间: 2019.6
abstract
基于声学特征中包含单独的语言信息和说话人特征的角度,单独提取disentangled linguistic 和speaker representations。在voice conversion的过程中,保持source的语言信息不变,只修改说话人信息。设计一个recognition encoder学到单独的文本信息。1⃣️pre-train:用到训练数据的文本翻译;2⃣️an adversarial training strategy进一步擦除文本表示中的说话人信息。还设计了一个speaker encoder提取说话人表示,首先用multi-speaker的数据与训练,然后用特征的conversion pair进行fine-tune。因为recognition encoder和decoder都是seq2seq的,因此不需要严格的帧对齐限制。实验结果比2018 VCC竞赛的结果好,也非常接近最好的parallel vc。
1. introduction
我们提出的方式是基于现有的识别-合成的思路。首先是一个ASR模型提取文本信息,比如ppgs,或者音素分类的bottleneck feature。然后是一个说话人相关的合成系统,与target speaker有关。这样的方法有以下不足:1⃣️ASR模型用于提取语言信息,没有和合成模型联合训练;2⃣️ASR模型只是在音素分类的loss上做训练,没有考虑 disentangle linguistic和说话人表示。3⃣️大部分方法是基于frame-to-frame的转化,不能做seq2seq,无法对duration做调整。
本文提出的思路是用seq2seq的encoder提取disentangle linguistic, 另一个nn encoder提取speaker representation。这两个特征拼接起来,送个seq2seq的decoder。wavenet被用作vocoder。
2. related work
A. Recognition-synthesis approach to non-parallel VC
本文和李海洲那边思路不同的是,他们是单独训练一个ASR模型,提取ppgs。本文提出的是recognition encoder和decoder联合训练。
B. Auto-encoder based voice conversion
3. proposed work
B. Loss functions for disentangled linguistic representations
4. experiment
4.1 experiment conditions
pre-train | multi-speaker datasets vctk | 99人 ~30h |
---|---|---|
fine-tune | slt & rms | 每人500句 |
validation and test | VCTK | 每人10-20句(pre-train之外的句子) |
mel-spec | 50ms、12.5ms的stft—80mel—80 log mel |
---|---|
text-encoder | Festival 生成phoneme transcript |
batch size | pre-train 32 fine-tune 8 |
learning rate | pre-train 0.01~80 epoches finetune half every 7 epoches |
beam width | recognition encoder=10 |
4.2 compared method
- DNN-based parallel data
- seq2seq vc
- cycle-gan
- vcc2018—non-parallel data
4.3 客观指标结果
客观指标MCD、F0 RSME、VUV的错误率、F0的皮尔逊相关系数、DDUR(source和target之间的duration差别,消除首尾静音帧之后的)
5. 平行数据而言:seq2seq最好;
6. non-parallel: 本文的方法最好(有一个例外)
7. 所有比较:我们的和平行数据还有差距—解释原因
4.4 主观评价结果
t-test https://zhuanlan.zhihu.com/p/38243421
p-value https://www.zhihu.com/question/23680352
依旧是seq2seq在平行数据表现最好,我们提出的方法在非平行数据表现最好,而且总体来看,我们提出的方法和基于平行数据的seq2seq的方法性能相差不大。
而且我们提出的方法在训练ASR的时候只用到VCTK的数据集,而其他的用了30h的多说话人数据集,因此,如果pre-train的数据集大一些的话,认为结果会更好。
4.5 Visualization of hidden representations
12个受测者取相同内容的12句话,分别用pre-train的speaker encoder和recognition encoder提取说话人信息和文本信息,然后用t-SNE算法可视化。发现说话人聚类和同一句话聚类的结果,证明了我们网络的有效性。
4.6 Evaluating on the amount of training data for fine-tuning
想要探究fine-tune过程中不同数据量的影响,做了5组实验,非平行数据量100,200,300,400,500,相对应的wavenet vocoder也只用500句训练。就MCD参数而言,也还是比2018 VCC 500句的结果好。
做ABX的实验(两个选一个更好的),vcc2018用500句和我们的用100句的相差不大,但是在同样用100句时,我们的结果明显要好。说明了本文方法对于有限资源的适用性。