《Voice Conversion with transformer network-samsung》论文总结

NVAE

  1. 先大致搞清楚 VAE为了使模型具有生成能力,vae要求每个p(https://blog-1301959139.cos.ap-beijing.myqcloud.com/picGo/20200810181426.png)都向正态分布看齐

  2. 有两个 Encoder,一个求 $\mu$, 一个求 $\sigma$img

  3. 说一下 VAE 中的「正态分布拟合」以及「从拟合的正态分布中采样」(Box-Muller 等等方法)image-20200810171404665

  4. VAE的名字中“变分”,是因为它的推导过程用到了KL散度及其性质

  5. 说一说 VAE中的噪声(方差)

    1. 增加重构难度,所以想减小它,让生成的数据更清晰
    2. 但是正是这个噪声,才是VAE精髓,增加了随机性
  6. 噪声的好处(增加随机性) 和 坏处(导致采样结果成为确定性结果——均值 u )

  7. 对噪声的处理:

    1. 不直接让 方差 变为0(导致退化成 AE
    2. 而是配合着,让每段语音数据的 后验分布 朝着正态分布区靠近
    3. image-20200810162407100
    4. image-20200810162443056
  8. image-20200810170401384

  9. 关于 后验分布 && 先验分布 的理解(公式(2))

    1. 后:单独的一段语音的高斯分布(标准正态)
    2. 先:某个说话人,所有语音的高斯分布集合(也是符合标准正态)
  10. VAE 中的 KL-loss image-20200810171816918

  11. CVAE中的KL-loss(一类方法:实现标签的加入,从 无监督 转为 有监督image-20200810172006118我们可以希望同一个类的样本都有一个专属的均值 $μ^Y$, (方差不变,还是单位方差),这个$μ^Y$让模型自己训练出来

  12. img【CVAE结构图】

1
2
3
4
5
6
python preprocess.py --resample_rate 16000 \
--origin_wavpath ./data/VCTK-Data/VCTK-Corpus/wav48 \
--target_wavpath ./data/VCTK-Data/VCTK-Corpus/wav16 \
--mc_dir_train ./data/VCTK-Data/mc/train \
--mc_dir_test ./data/VCTK-Data/mc/test \
--speaker_dirs p262 p272 p229 p232 p292 p293 p360 p361 p248 p251
1
2
3
4
5
6
7
8
9
10
python main.py --train_data_dir ./data/VCTK-Data/mc/train \
--test_data_dir ./data/VCTK-Data/mc/test \
--use_tensorboard False \
--wav_dir ./data/VCTK-Data/VCTK-Corpus/wav16 \
--model_save_dir ./data/aca16sjb/VCTK-Data/models \
--sample_dir ./data/VCTK-Data/samples \
--num_iters 200000 \
--batch_size 8 \
--speakers p262 p272 p229 p232 \
--num_speakers 4
1
2
3
4
5
6
7
8
python convert.py --resume_model 120000 \
--num_speakers 4 \
--speakers p262 p272 p229 p232 \
--train_data_dir ./data/VCTK-Data/mc/train/ \
--test_data_dir ./data/VCTK-Data/mc/test/ \
--wav_dir ./data/VCTK-Data/VCTK-Corpus/wav16 \
--model_save_dir ./data/aca16sjb/VCTK-Data/models \
--convert_dir ./data/VCTK-Data/converted