1203组会汇报进度

1206工作进度:

  1. 很多论文 ——看了
  2. 很多代码 ——看了、改了、写了
  3. 很多想法 ——可行与否缺乏交流
  4. 🌟没有机器 ——用单位机器被 Kill批评

  1. 初步想法——在stargan-vc2基础上改进,侧重点还是 少数据量 && 快速
  2. PGAN + Mel 处理,Embedding 部分调用 AiShell (还是得咱们自己重训,特征处理方式和PGAN不一样)(Mel 归一化方式不同
  3. 另外引入 “ Speaker Embedding循环损失,提升说话人相似度
  4. 最后再引入 洪丰 的“相对损失”来替代MSE,看效果提升度
    • Speaker Embedding 尺寸 256
    • PGAN 尺寸 80 mel
    • StarGAN 网络结构也得跟着改动了,为了迎合 两者输入特征尺寸
  1. PPG 路线:没有机器训,就在 Deep_voice_conversion 基础上改

    • 但是不知是论文读的少还是什么原因:

    • 所有 PPG –> Mel 环节,都是用的自身转自身(就是只能单一目标人转换

    • 🌟如果加 speaker embedding 的思路来做多目标人,那是不是就只能用 GAN 来做?

    • (这条路线真的好复杂,想训 Kaldi-librispeech 来学做 ppg 提取,完全训不起来,cpu占用太高了)

    • (有 fac-via-ppg 项目,做的口音转换,用的pykaldi,但是没法引入 VC)


  1. guanlongzhao/fac-via-ppg

    1. 这个任务,实现了用PyKaldi提取PPGs信息(可套来用)、PPGs 转 Mel(咱们做的是口音转换,看怎么通过改 Loss 成语音转换)、WavaGlow后端(有预训练的模型,256维度?)
    2. 这个的训练需要自己手动整理 file list,等我整理一下,自己训一下看成不成功,应该问题好解决
    3. 准备用aishell3 数据集试试中文提取ppg效果
  1. sos1sos2Sixteen/aishell-3-baseline-fc

    1. 从❤️ 这里 抄的,原本是做的英文,改成中文

    2. 这个AiShell3 的多说话人合成任务,实质是 Fork 自另一份caizexin/tf_multispeakerTTS_fc

    3. 不得不说,文档真的很差,看不清,折腾好几天起不来

    4. 🌟问题:

      1. 数据的放置位置,处理顺序全都没讲
      2. 给的预训练模型都是另一份英文的,并没有任何体现中文aishell3的存在感的地方
      3. 尝试直接跑 预训练模型,起不来,代码有问题!真的是代码有问题,传参时缺参数,一时半会不知怎么加上去,改了N多代码还是不行
      4. 不得不说,Tensorflow 问题真的比Torch多多了
    5. 🌟最新进展:demo .ipynb 跑通了!:

      1. 将 wavernn 代码 vocoder/models/fatchord_version.py 中所有 .cuda() 注释掉

      2. 将三个 ckpt 文件放入对应文件夹:

        1. pertained/tacotron_ckpt
        2. tf_multispeaker/vocoder/saved_models/aishell/aishell_ssb.pt
        3. ❤️这里的aishell/aishell_ssb.pt手动改名就行
      3. 注释掉【51】:
      1
      2
      # def mel2audio(mel) : 
      # return np.random.randn(14000)[None]

      image-20201204002224675

    6. display 函数jupter notebook环境下的一个函数接口:

    7. image-20201204002342062

    8. image-20201204002439910

      1. 文本送进去的是音素,所以生成语音需要的是音素信息,这个转换不用管,【可以用声韵母训练,用pypinyin做标注,或者找对应的音素字典就好】image-20201204002635896

      2. 说话人 embedding 这里aishell3 采用的是 ,先用预训练的 speaker encoder 提前提取所有语音embeddinmg,然后碎每个人的embedding做一个均值处理;而且这里demo提供的 embedding提取,是已经准备好的;

      3. 在原版的代码中,这里是需要手工提取的,这个回头是我钻研的重点,看怎么准备数据和文本,然后训起来再说;

      4. image-20201204002857320

  2. fatchord/WaveRNN

    1. 这个非常清楚,代码写的很工整
    2. 主要特色就是他的 WaveRNN声码器 + tacotron 前端(更改了 attention 部分机制)
    3. 目前在训练 taco前段部分,用的是 LjSpeech
  1. CorentinJ/Real-Time-Voice-Cloning
    1. 这份是比较经典的多说话人合成任务,里面有 Speaker Encoder,还没跑,有参考价值