python声音模拟,
实现Python AI模仿:克隆你的语音,5秒生成任意语音内容_wx6237f50e82bc0的技术博客_博客
Yyds干货库存
中文功能支持普通话,使用多种中文数据集测试:Aidatatang _ 200ZH、Magic Data、AI Shell 3、标贝、Mozilla CommonVoice、Data _ AI Shell等。
PyTorch适用于pytorch,已经在1.9.0版本(最新2021年8月)、GPU特斯拉T4和GTX 2060中测试过。
Windows linux可以在Windows和linux两种操作系统下运行(M1版苹果系统也有成功的社区运行案例)。
易牛逼只需要下载或者训练一个合成器,效果不错。重用预训练的编码器/声码器或实时HiFi-GAN作为声码器。
ServerReady可以远程调用您的培训结果。
1.安装需求测试您是否已经根据原始存储库准备好了所有的环境。
运行工具箱(demo_toolbox.py)需要Python版或更高版本。
安装PyTorch。如果用pip安装时得到错误:找不到符合要求的版本torch==1.9.0cu102(来自版本:0.1.2,0.1.2.post1,0.1.2.post2)这个错误可能是python版本太低,3.9可以成功安装。
安装ffmpeg。运行pip install -r requirements.txt来安装其余必需的软件包。
安装webrtcvad pip安装webrtcvad-wheels。
准备预训练模型考虑训练您自己的模型或下载社区中其他人训练的模型:
最近创建了一个知乎项目,会不定期的更新炼丹小技巧或者经验,欢迎提问。
2.1使用数据集训练编码器模型(可选)进行音频和Mel谱图预处理:Python encoder _ preprocess . py datasets _ root使用-d {dataset}指定数据集,支持librispeech_other、voxceleb1、aidatatang_200zh,使用逗号分割处理多个数据集。
培训编码器:python encoder _ train . pymy _ run datasets _ root/SV 2 TTS/encoder
编码器被训练使用visdom。您可以添加-no_visdom来禁用visdom,但是最好有可视化。在单独的命令行/进程中运行“visdom”来启动visdom服务器。
2.2使用数据集自己训练合成器模型(作为2.3的替代)。下载数据集并解压:确保可以访问所有音频文件(如。wav)放在火车文件夹里。
音频和Mel声谱图预处理:python pre . py datasets _ root-d { dataset }-n { number }可以传入参数:
-d {dataset}指定数据集,支持aidatatang_200zh、Magic Data、AI Shell 3、Data _ AI Shell,默认为Aidatatang _ 200ZH。
-n {number}指定并行行数,CPU 11770k 32GB实测10时没有问题。
如果您下载的aidatatang_200zh文件在驱动器D上,则train文件的路径是D:\data\ aidata Tang _ 200 zh \ corpus \ train,并且您的datasets_root是D:\ data \
训练合成器:python synthesizer _ train . pymandarindatasets _ root/SV 2 TTS/synthesizer
当你在训练文件夹synthesizer/saved_models/中看到关注线显示和损耗符合你的需求时,请转到启动程序的步骤。
2.3使用社区预先培训的合成器(作为2.2的替代方案)
2.4训练声码器(可选)对效果影响不大,预置了3个模型。如果想自己训练,可以参考以下命令。
预处理数据:Python Vocoder _ preprocess . py datasets _ root-m synthesizer _ model _ path
Datasets_root替换为您的数据集目录,synthesizer_model_path替换为您的最佳合成器模型目录,例如synthesizer \ saved _ models \ XXX。
训练wavernn声码器:python vocoder _ train . py train id datasets _ root
trainid被替换成你想要的logo,再次训练时同样的logo会延续原来的模式。
训练hifigan声码器:python vocoder _ train . py train id datasets _ root hifi gan
trainid被替换成你想要的logo,再次训练时同样的logo会延续原来的模式。
训练fregan声码器:python vocoder _ train . py train id datasets _ root-config config . jsonfregan。
trainid被替换成你想要的logo,再次训练时同样的logo会延续原来的模式。
将GAN声码器的训练切换到多GPU模式:修改。GAN文件夹中的json文件。
3.启动程序或工具箱
您可以尝试使用以下命令:
3.1启动Web程序(v2): PythonWeb.py运行成功后会在浏览器中打开地址,默认为http://localhost:8080。
仅支持手动新录制(16khz),不支持超过4MB的录制。最佳长度为5 ~ 15s。
3.2启动工具箱:
python demo_toolbox.py -d数据集_根
请指定可用的数据集文件路径。如果有支持的数据集,会自动加载进行调试,也会作为手动录制音频的存储目录。
4.番外:语音转换(基于PPG)
想象一下柯南拿着变声器发出毛利小五郎的声音?本项目基于PPG VC,引入两个附加模块(PPG提取器PPG2Mel)实现变声功能。(文档不完整,尤其是培训部分,正在补充)
4.0准备环境
确保项目上面的环境已经安装好,并运行pip install espnet来安装其余必要的软件包。
下载以下模型链接:百度网盘,请输入提取代码提取代码:gh41
24K采样速率专用声码器(hifigan)至声码器\saved_models\xxx
预训练的ppg功能编码器(ppg_extractor)到ppg_extractor\saved_models\xxx
预先训练的PPG2Mel到ppg2mel\saved_models\xxx
4.1使用数据集自行训练PPG2Mel模型(可选)
下载aidatatang_200zh数据集并解压:确保可以访问所有音频文件(如。wav)放在火车文件夹里。
音频和Mel声谱图预处理:python pre 4 ppg . py datasets _ root-d { dataset }-n { number }可以传入参数:
-d {dataset}指定数据集,支持aidatatang_200zh,默认为aidatatang_200zh。
-n {number}指定平行线的数量。CPU 11700k 8的时候需要运行12到18个小时!有待优化
如果您下载的aidatatang_200zh文件在驱动器D上,则train文件的路径是D:\data\ aidata Tang _ 200 zh \ corpus \ train,并且您的datasets_root是D:\ data \
训练合成器,注意上一步下载ppg2mel.yaml,修改地址指向预先训练好的文件夹:Python ppg2mel _ train.py-config。\ ppg 2 Mel \ saved _ models \ ppg 2 Mel . YAML-one shot VC。
如果你想继续上次的训练,你可以通过-load指定一个预训练模型文件。\ ppg 2 Mel \ saved _ models \ old _ pt _ file参数。
4.2启动工具箱的VC模式
您可以尝试以下命令:python demo _ toolbox . py-VC-ddatasets _ root
请指定可用的数据集文件路径。如果有支持的数据集,会自动加载进行调试,也会作为手动录制音频的存储目录。
引用论文。这个库最初是从只支持英语的实时声音克隆中分出来的。鸣谢作者。
常见问题(FQ答)1。在哪里可以下载数据集?
2.datasets _ root是什么意思?
如果数据集路径是D:\data\aidatatang_200zh,那么datasets_root就是D:\data。
3.训练模型的内存不足。
若要训练合成器:调低synthesizer/hparams.py中的batch_size参数
编码器-预处理数据集时:减少synthesizer/hparams.py中的batch_size参数
声码器-训练声码器时:调低声码器/Wavernn/hparams.py中的batch_size参数。
4.遇到运行时错误:加载tacotron的state _ dict时出错:encoder.embedding.weight的大小不匹配:从检查点复制shapetorch.size为[70,512]的参数,当前模型中的形状为torch。大小([75,512])。
参见问题#37。
5.如何提高CPU和GPU占用率?
适当调整batch_size参数以提高性能。
6.页面文件太小,无法完成操作。
请参考这篇文章,把虚拟内存改成100G(102400),比如把文件放在D盘的时候把D盘的虚拟内存改一下。
7.培训什么时候结束?
首先,注意力模型必须出现,其次,损耗足够低,取决于硬件设备和数据集。作为参考,我的注意出现在18k步之后,50k步之后损耗变得小于0.4。
版权归作者所有:来自博主的苦糖?原创作品请联系作者授权转载,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。