该教程能教会读者如何使用本地服务器使用VITS微调训练自己的想要的角色的声音并且本地推理,注意只能使用linux版本进行训练,但是推理可以在windows上完成。
操作系统:Linux(Ubuntu20.04)
Python版本:3.9
使用Conda虚拟环境
STEP 0 使用conda配置虚拟环境(个人习惯,也可以直接在本地服务器上嗯配)
conda create -n vits python=3.9
activate vits
STEP 1 复制代码库并安装运行环境
git clone https://github.com/Plachtaa/VITS-fast-fine-tuning.git
pip install imageio==2.4.1
pip install --upgrade youtube-dl
pip install moviepy
cd VITS-fast-fine-tuning
pip install -r requirements.txt
cd monotonic_align/
mkdir monotonic_align
python setup.py build_ext --inplace
cd ..
mkdir pretrained_models
# download data for fine-tuning
wget https://huggingface.co/datasets/Plachta/sampled_audio4ft/resolve/main/sampled_audio4ft.zip
unzip sampled_audio4ft.zip
# create necessary directories
mkdir video_data
mkdir raw_audio
mkdir denoised_audio
mkdir custom_character_voice
mkdir 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.pth
wget https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer/resolve/main/pretrained_models/G_trilingual.pth -O ./pretrained_models/G_0.pth
wget 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.pth
wget https://huggingface.co/spaces/sayashi/vits-uma-genshin-honkai/resolve/main/model/G_0-p.pth -O ./pretrained_models/G_0.pth
wget 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文章来源:https://www.toymoban.com/news/detail-426533.html
下载好并且解压缩之后之后将训练好的模型文件G_latest.pth以及配置文件config.json(请先改名为finetune_speaker.json)放入inference的根目录目录中,然后运行inference就能愉快的玩耍啦!文章来源地址https://www.toymoban.com/news/detail-426533.html
到了这里,关于基于VITS 快速微调的本地环境配置、本地训练以及本地推理的教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!