当前位置:首页 » 《随便一记》 » 正文

基于VITS 快速微调的本地环境配置、本地训练以及本地推理的教程

7 人参与  2023年04月14日 08:50  分类 : 《随便一记》  评论

点击全文阅读


该教程能教会读者如何使用本地服务器使用VITS微调训练自己的想要的角色的声音并且本地推理,注意只能使用linux版本进行训练,但是推理可以在windows上完成。

操作系统:Linux(Ubuntu20.04)Python版本:3.9使用Conda虚拟环境

STEP 0 使用conda配置虚拟环境(个人习惯,也可以直接在本地服务器上嗯配)

conda create -n vits python=3.9activate vits

STEP 1 复制代码库并安装运行环境

git clone https://github.com/Plachtaa/VITS-fast-fine-tuning.gitpip install imageio==2.4.1pip install --upgrade youtube-dlpip install moviepycd VITS-fast-fine-tuningpip install -r requirements.txtcd monotonic_align/mkdir monotonic_alignpython setup.py build_ext --inplacecd ..mkdir pretrained_models# download data for fine-tuningwget https://huggingface.co/datasets/Plachta/sampled_audio4ft/resolve/main/sampled_audio4ft.zipunzip sampled_audio4ft.zip# create necessary directoriesmkdir video_datamkdir raw_audiomkdir denoised_audiomkdir custom_character_voicemkdir segmented_character_voice

记得没错的话会提示关于pyopenjtalk的报错,因为这个包是基于openjtalk的共享库之上的,要安装之前需要先安装共享库,打开https://github.com/r9y9/open_jtalk的travis.yml文件,按照上面的教程进行make编译(注意要先进行before_install部分的安装在执行script部分)。

STEP 1.5 选择预训练模型

中日英三语模型(在根目录执行)

wget https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer/resolve/main/pretrained_models/D_trilingual.pth -O ./pretrained_models/D_0.pthwget https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer/resolve/main/pretrained_models/G_trilingual.pth -O ./pretrained_models/G_0.pthwget https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer/resolve/main/configs/uma_trilingual.json -O ./configs/finetune_speaker.json

中日双语模型(在根目录执行)

wget https://huggingface.co/spaces/sayashi/vits-uma-genshin-honkai/resolve/main/model/D_0-p.pth -O ./pretrained_models/D_0.pthwget https://huggingface.co/spaces/sayashi/vits-uma-genshin-honkai/resolve/main/model/G_0-p.pth -O ./pretrained_models/G_0.pthwget https://huggingface.co/spaces/sayashi/vits-uma-genshin-honkai/resolve/main/model/config.json -O ./configs/finetune_speaker.json

STEP 2 配置训练数据集

可以选择上传视频,长音频,短音频进行训练,但所放置的位置不一样。

视频:./video_data/长音频:./raw_audio/短音频:./custom_character_voice/1.其中短音频的格式是: ├───Character_name_1 ├   ├───xxx.wav ├   ├───... ├   ├───yyy.mp3 ├   └───zzz.wav ├───Character_name_2 ├   ├───xxx.wav ├   ├───... ├   ├───yyy.mp3 ├   └───zzz.wav ├───... ├ └───Character_name_n     ├───xxx.wav     ├───...     ├───yyy.mp3     └───zzz.wav质量要求:2秒以上,10秒以内,尽量不要有背景噪音。数量要求:一个角色至少10条,最好每个角色20条以上。2.以角色名命名的长音频文件,音频内只能有单说话人,背景音会被自动去除。命名格式为:{CharacterName}_{random_number}.wav(例如:Diana_234135.wav, MinatoAqua_234252.wav),必须是.wav文件。3.以角色名命名的长视频文件,视频内只能有单说话人,背景音会被自动去除。命名格式为:{CharacterName}_{random_number}.mp4(例如:Taffy_332452.mp4, Dingzhen_957315.mp4),必须是.mp4文件。

STEP 3 自动处理所有加载的数据

对数据进行预处理

# 将所有视频(无论是上传的还是下载的,且必须是.mp4格式)抽取音频python video2audio.py# 将所有音频(无论是上传的还是从视频抽取的,必须是.wav格式)去噪python denoise_audio.py# 分割并标注长音频(如果没有就不用执行,{PRETRAINED_MODEL}如果用中日英就填写CJE,否则CJ)python long_audio_transcribe.py --languages "{PRETRAINED_MODEL}" --whisper_size medium标注短音频(如果没有就不用执行,{PRETRAINED_MODEL}如果用中日英就填写CJE,否则CJ)!python short_audio_transcribe.py --languages "{PRETRAINED_MODEL}" --whisper_size medium#运行好后会生成划分好训练/测试集的最终标注,以及配置文件 

辅助训练数据(ADD_AUXILIARY)是从预训练的大数据集抽样得到的,作用在于保留预设角色的音色,以及防止模型在新的数据上过拟合。该选项只有在选择CJE模型的时候才能使用  

#以下情况请选用:  

#总样本少于100条/样本包含角色只有1人/样本质量一般或较差/样本来自爬取的视频/希望保留预训练模型的原说话人(赛马娘&原神角色)  

python preprocess_v2.py --add_auxiliary_data True

#以下情况可以不选用:  

#总样本量很大/样本质量很高/希望加速训练/只有二次元角色

#样本仅包含单说话人会导致报错,请勾选ADD_AUXILIARY或加入几个dummy speaker绕过去  

python preprocess_v2.py

STEP 4 开始训练

#开始微调模型,在30轮训练后会自动结束。

#训练时长取决于你录入/上传的音频总数。

#根据声线和样本质量的不同,所需的训练epochs数也不同。但是一般建议设置为30 epochs,  

#你也可以在Tensorboard中预览合成效果,若效果满意可提前停止。  

开启Tensorboard

tensorboard --logdir "./OUTPUT_MODEL"

如果开启了辅助训练数据(ADD_AUXILIARY)请使用以下指令:

python finetune_speaker_v2.py -m "./OUTPUT_MODEL" --max_epochs "{Maximum_epochs}"#{Maximum_epochs}为你想要训练的Epoch

否则执行以下指令:

python finetune_speaker_v2.py -m "./OUTPUT_MODEL" --max_epochs "{Maximum_epochs}" --drop_speaker_embed True#{Maximum_epochs}为你想要训练的Epoch

STEP 5 本地推理

 直接下载https://github.com/Plachtaa/VITS-fast-fine-tuning/releases/download/webui-v1.1/inference.rar

下载好并且解压缩之后之后将训练好的模型文件G_latest.pth以及配置文件config.json(请先改名为finetune_speaker.json)放入inference的根目录目录中,然后运行inference就能愉快的玩耍啦!


点击全文阅读


本文链接:http://zhangshiyu.com/post/59514.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1