MockingBird Training Tutorial – CN

术语

  • Speaker encoder:说话人编码器,提取指定说话人语音的特征向量
  • Synthesizer:合成器,用文本结合上面的特征向量,产生将指定说话人特征融入指定文本对应的语音的频谱
  • Vocoder:声码器,用频谱生成语音

准备

硬件环境准备

  • 显卡:建议8G显存以上, 支持CUDA的NVIDIA显卡,小显存或CPU需要按 问题3 修改训练参数否则会报错。
  • 硬盘:建议500GB可用空间以上的硬盘,语音数据集相当庞大,并且理论上数据集越大最后模型效果更好。

软件环境准备

本教程主要面向Windows 10使用者,一方面是用户群体较大,另一方面是我只有Windows 10囧,linux系统理论上只需要针对一些警告与报错修复也是可行的,但其他机器例如M1需要特殊考虑

确保训练用的机器已经成功装好以下程序:

  • Python 3.9.6 (或其他高于3.7的版本)
  • CUDA Toolkit,版本 10.2 或 11.1 (可能需要显卡驱动升级后支持)
  • 【强烈推荐】Anaconda 用清华Tuna源
  • PyTorch 选择对应的平台和版本后复制命令运行安装,示例见下图
  • ffmpeg 并设置环境变量
  • 在项目源代码根目录下运行pip install -r requirements.txt 来安装剩余的必要包。
  • 安装 webrtcvad pip install webrtcvad-wheels

下载数据集

在有500GB可用空间以上的分区,准备一个语音数据目录(下称 <datasets_root>),根据要训练的模型进行数据集选择:

Encoder

训练与否对最终效果影响较小 参考:https://zhuanlan.zhihu.com/p/415926999

  • TODO

Synthesizer & Vocoder

aidatatang_200zh (推荐)

下载后为tar.gz格式,需要先解压两次得到文件夹<datasets_root>\aidatatang_200zh后,再把aidatatang_200zh\corpus\train下的全选再次解压,得到以下文件结构:

<datasets_root>├─aidatatang_200zh│  └─corpus│      └─train│         ├─G4180
│         ├─...更多语音文件夹

magicdata

下载后为tar.gz格式,需要先解压两次得到文件夹train,在<datasets_root>下新建名为 magicdata的文件夹,转移文件夹trainmagicdata文件夹中,得到以下文件结构:

<datasets_root>├─magicdata│  └─train│     ├─5_541
│     ├─...更多语音文件夹

aishell3

下载后为tar.gz格式,需要先解压两次得到文件夹<datasets_root>\aishell3 后,得到以下文件结构:

<datasets_root>├─aishell3│  └─train
│      └─wav
│         ├─SSB0005
│         ├─...更多语音文件夹

开始训练

Encoder

  • TODO

Synthesizer & Vocoder

进行音频和梅尔频谱图预处理: python pre.py <datasets_root> 可以传入参数 –dataset {dataset} 支持 aidatatang_200zh, magicdata, aishell3

训练合成器: python synthesizer_train.py mandarin <datasets_root>/SV2TTS/synthesizer

训练结束

是不存在的,炼丹姿势千千万,大功告成别希望。每天换换数据集和参数组合,跑着跑着就发现效果更好了,持续在知乎专栏更新技巧。

训练工作可以观察到 <synthesizer>\saved_models\<id> 多了以下几个文件夹:

  • Mel-spectrograms, wavs 训练过程自动保存的测试记录
  • Metas 基本模型参数
  • Plots 训练过程自动保存的阶段结果截图

在练的过程中,至少要等到Plots里面的attention图出现收敛(Convergence),才能正常发出人声,如下图出现一条明显斜线,否则就是一团奇怪噪音对于loss数字就多寡随意,丰俭由人了。

图片[1]-MockingBird Training Tutorial – CN-知计

其他

微调 fine tune: CNN入门讲解:什么是微调(Fine Tune)?

温馨提示:本文发布于2022年12月25日 14:21,某些资源具有时效性,若有错误或已失效,请联系知计修复。
----- < 完 > -----
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容