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

该教程能教会读者如何使用本地服务器使用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

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

你可能感兴趣的:(深度学习,人工智能)