上篇文章我们搭建好了WSL的环境,那么基本上我们运行项目应该没啥问题了。如果没看过的可以参考:WSL训练VITS模型环境搭建
首先进入WSL,然后拉下项目代码(项目地址在文章最底部)
git clone 项目地址
之所以用这个项目是因为,这个项目我们只准备好音频文件即可,不需要再做其他操作,其他的标注等操作代码中都可以自动实现,按照步骤来就行。
但是呢,这个项目中并没有给出ipynb文件,直接在README.md中给出了一个谷歌colab的地址
当然,大家可以通过一些魔法方法在Colab中进行训练,文档说明已经很详细了。我因为一些个人原因(上篇提到过),于是就在本地的WSL进行训练了。
所以我把这个文档下载了下来,本地启动了一个jupyter来方便我查看操作,本地操作的话肯定就不是傻瓜式的了,还得去翻翻代码看看。
好,现在参考教程文档也准备好了。
项目初始化
根据文档,首先我们克隆项目,装上依赖
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
随后,我们进入项目,装一下requirements.txt的依赖
cd VITS-fast-fine-tuning
pip install -r requirements.txt
注意,上篇中也提到了,因为我们已经装了针对自己电脑环境的cuda的torch版本,所以把requirements中的下面框中的删了即可
删掉。
随后我们继续配置好目录
cd monotonic_align/
mkdir monotonic_align
python3 setup.py build_ext --inplace
cd ..
mkdir pretrained_models
wget https://huggingface.co/datasets/Plachta/sampled_audio4ft/resolve/main/sampled_audio4ft.zip
unzip sampled_audio4ft.zip
mkdir video_data
mkdir raw_audio
mkdir denoised_audio
mkdir custom_character_voice
mkdir segmented_character_voice
选择模型类型,下面两个选项根据自己的想法二选一即可
# 选项一:中日英语 执行
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
至此项目初始化完毕。
数据集
数据集的话我直接在百度飞浆找到了MOSS导航语音包以及电影中的语音数据集
https://aistudio.baidu.com/aistudio/datasetoverview
然后我又去猫眼下载了预告片
https://www.maoyan.com/films/1366696
又看了一遍流浪地球1特别版,录制了一些视频
然后通过PR将MOSS说话的片段剪辑出来
https://github.com/Anjok07/ultimatevocalremovergui/
最后用PR将数据分为单独的小段,其实自己做不做没啥区别,因为跟飞浆上的有不少重复的,用飞浆的也可以,这里数据集只要是短音频即可。
然后我把所有小片段的音频文件压缩为MOSS.zip,放到项目的文件夹下。
解压数据集到对应目录
unzip MOSS.zip -d ./custom_character_voice/
# 将所有视频(无论是上传的还是下载的,且必须是.mp4格式)抽取音频
python3 video2audio.py
# 将所有音频(无论是上传的还是从视频抽取的,必须是.wav格式)去噪
python3 denoise_audio.py
# 标注短音频,注意,如果选的是中日英则写CJE,中日则写CJ
python3 short_audio_transcribe.py --languages "CJE" --whisper_size medium
至此,数据集处理完毕。
模型训练
我们先进行训练方式的配置
# 如果满足以下条件:
# 总样本少于100条
# 样本包含角色只有1人
# 样本质量一般或较差
# 模型为CJE的时候
# 样本来自爬取的视频
# 希望保留预训练模型的原说话人(赛马娘&原神角色)
# 则可以执行下面的语句,效果好一点
python3 preprocess_v2.py --add_auxiliary_data True
# 否则可以执行下面
# 注:CJ的时候必须执行下面
python3 preprocess_v2.py
开始训练模型
# max_epochs为训练次数,默认的是30的时候,正常情况下效果会好点
# 如果上面步骤添加了 --add_auxiliary_data True 则执行
python finetune_speaker_v2.py -m "./OUTPUT_MODEL" --max_epochs "30"
# 否则执行
python finetune_speaker_v2.py -m "./OUTPUT_MODEL" --max_epochs "30" --drop_speaker_embed True
这里我实际测试了很多次,发现如果是训练MOSS的话,采用辅助语料进行训练,即--add_auxiliary_data True,那么会训练出说话带预期的MOSS语音,效果还不太好。
所以,我选择了不适用辅助语料,直接训练千次,来查看效果,当然这样比较耗时间。
执行完上面的之后,便开始了训练。
下面的图是我训练100次的结果。
等待训练完成后,我们需要尝试模型效果
cp ./configs/modified_finetune_speaker.json ./finetune_speaker.json
python3 VC_inference.py --model_dir ./OUTPUT_MODEL/G_latest.pth
等运行好之后,它会启动一个本地的web服务,我们直接访问
http://127.0.0.1:7860/
便可以开始试用模型了。
注意点
一 训练备份
在我们训练过程中,每训练若干次,就会在OUTPUT_MODEL文件夹中存储一份。
因为,不是训练时间越长效果就越好,所以,我这里采用的是大批量训练,然后准备将历史训练的一块对比,看看效果,选出最优的那个模型。
二根据项目仓库的介绍,在模型训练好之后
可以下载仓库中的interence.exe文件,进行模型的使用
项目地址:
本文来源:微信公众号《
本站资源部分来自网友投稿,如有侵犯你的权益请联系管理员或给邮箱发送邮件PubwinSoft@foxmail.com 我们会第一时间进行审核删除。
站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!
如果遇到评论可下载的文章,评论后刷新页面点击“对应的蓝字按钮”即可跳转到下载页面!
本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip,zip、rar解压,建议下载WinRAR。
温馨提示:本站部分付费下载资源收取的费用为资源收集整理费用,并非资源费用,不对下载的资源提供任何技术支持及售后服务。