0. 说明
记录的是2021-2-15到2021-3-8之间的工作
主要是跨语言音色迁移的三步走中:
- Pre-trained Ear Speech
- Self-trained Ear Speech
的系统搭建和实验结果
同时也给
- Tacotron 找到/实现了更好的一版 Pytorch 代码
- https://github.com/ruclion/Tuned-GE2E-EarSpeech (跑通了, 并且效果好)
- https://github.com/ruclion/WisdomTeeth-Tacotron (能训练运行, 但是还有错误)
1. Pre-trained Ear Speech
详细过程见:
https://blog.csdn.net/u013625492/article/details/114433229
1.1. 代码
- 来源: RealTime VoiceClone: https://github.com/CorentinJ/Real-Time-Voice-Cloning
- 简化它, 写在 Git 中: https://github.com/ruclion/Pretrained-EarSpeech
1.2. 注意事项
- 下载到 Pretrained-EarSpeech 文件夹
- unzip pretrained.zip
- 直接使用 Pre-trained Model
1.3. 实验结果
- 无口音
- 质量低
2. 参考音频优化
2.1. 思路
- 用 M2VoC 的数据训练
- 可以加上 databaker, thucoss
- 并且可以在 RTVC-7 Voice Cloning Model 的 Tacotron Pretrained Model 上忽略 embedding layer, 进行 Tune
npy-EarSpeech-HCSI-Data -> dereverb_npy -> SSB0005 -> spk-SSB00050001.npy
-> spk-SSB00050002.npy
-> SSB0009 -> ...
-> tst_npy -> MST-Originbeat-S1-female-5000 -> spk-000001.npy
-> TST-Track1-S4-male-Game-100 -> spk-000001.npy
2.2. Base 版逻辑
https://github.com/ruclion/Tuned-EarSpeech
依据是改动代码最少
需要枚举的逻辑有很多, 其中本质上思路有不同的:
- Base 版 的 Speaker Embedding 使用张阳给逸轩的, 加了一个 FC 到 256; 再尝试下 GE2E 的
仅仅是可以加快收敛的:
- Base 版未进行 Guided Attention
- Base 版模型随机初始化, 不使用 warm-up
- 代码中只有 60000 的 train data, 没有 validation 的代码
- Batch 只使用的代码自带的 12, 实际上 16 或者 20 应该没问题
2.3. GE2E 版逻辑
https://github.com/ruclion/Tuned-GE2E-EarSpeech
依据是在 Base 版的基础上, 只改动 Speaker Embedding 为 GE2E 的结果, 其他思路先不加
逻辑从 /ceph/home/hujk17/Tuned-GE2E-EarSpeech/FaPig_extract_GE2E.py 开始, 提取完了所有的 GE2E Embedding
- 256 的 Embedding 仍然后面接了一个 FC, 和 Base 一致, 并且 FC 也不会太影响
- 换代码的时候, 仅仅是指定 speaker 路径不同
- 剩下代码和 Base 完全一致
2.4 Base 版实验结果
- batch_size = 12, 4000 多内存
- 7 个小时左右, 到达 20000 步, 能够初步形成 alignment 图, Tacotron 代码版本正确
- teacherForce 的音频还可以
2.5 GE2E 版实验结果
- batch_size = 12, 4000 多内存
- 2个小时左右, 到达 7000 步, 能够初步形成 alignment 图, 证明 GE2E Speaker Embedding 更集中一些/准确
- teacherForce 的音频还可以
3. 下阶段任务
- 商业化 TTS 的尝试