本期推荐的是一个基于Python的AI拟声项目——MockingBird。
MockingBird可以通过5秒钟的音频素材完成克隆声音,产生的输出音色与原始声音非常相似,并且能够合成原始音频样本中不存在的声音和辅音,同时也支持生成任意语音内容。
MockingBird特性:
- 中文支持普通话并使用多种中文数据集进行测试:aidatatang_200zh, magicdata, aishell3, biaobei, MozillaCommonVoice, data_aishell 等
- PyTorch适用于 pytorch,已在 1.9.0 版本(最新于 2021 年 8 月)中测试,GPU Tesla T4 和 GTX 2060
- Windows+Linux可在Windows操作系统和linux操作系统中运行(苹果系统M1版也有社区成功运行案例)
- Easy & Awesome下载器或新训练合成器合成器有良好的效果,自带声音预置的编码器/码,或实时的HiFi-GAN作为声码器
- Webserver Ready可服务器的训练结果,供远程调用
如何使用:
1.安装
- 安装PyTorch。
- 安装ffmpeg。
- 运行pip install -r requirements.txt来安装必要的包。
- 安装 webrtcvad pip install webrtcvad-wheels。
2.准备预训练模型
2.1 使用数据集自己训练合成器模型(与2.2二选一)
- 下载数据集并解压:确保您可以访问 train 文件夹中的所有音频文件(如.wav)
- 进行音频和梅尔频谱图预处理: python pre.py <datasets_root> -d {dataset} -n {number} 可传入参数
- -d{dataset} 指定数据集,支持 aidatatang_200zh, magicdata, aishell3, data_aishell, 不传默认为aidatatang_200zh
- -n {number} 指定并行数,CPU 11770k + 32GB实测10没有问题
假如你下载的 aidatatang_200zh文件放在D盘,train文件路径为 D:\data\aidatatang_200zh\corpus\train , 你的datasets_root就是 D:\data\
- 训练合成器: python synthesizer_train.py mandarin <datasets_root>/SV2TTS/synthesizer
- 当您在训练文件夹 synthesizer/saved_models/ 中看到注意线显示和损失满足您的需要时,请转到启动程序一步。
2.2使用社区预先训练好的合成器(与2.1二选一)
相关地址请参考文末链接中的介绍
2.3训练声码器 (可选)
- 预处理数据: python vocoder_preprocess.py <datasets_root> -m <synthesizer_model_path>
<datasets_root>替换为你的数据集目录,<synthesizer_model_path>替换为一个你最好的synthesizer模型目录,例如 sythensizer\saved_mode\xxx
- 训练wavernn声码器: python vocoder_train.py <trainid> <datasets_root>
<trainid>替换为你想要的标识,同一标识再次训练时会延续原模型
- 训练hifigan声码器: python vocoder_train.py <trainid> <datasets_root> hifigan
<trainid>替换为你想要的标识,同一标识再次训练时会延续原模型
3. 启动程序或工具箱
3.1启动Web程序:
python web.py 运行成功后在浏览器打开地址, 默认为 http://localhost:8080
3.2启动工具箱
python demo_toolbox.py -d <datasets_root>
请指定一个可用的数据集文件路径,如果有支持的数据集则会自动加载供调试,也同时会作为手动录制音频的存储目录。
更多内容大家可自行前往阅读。