So-VITS-SVC 4.0 新版整合 v2.0适合Windows系统
so-vits-svc-v4-Webui:v11 适合linux系统
So-VITS-SVC 项目一直都有在更新,B站视频(指4月26日换源前的视频)里的版本已经比较落后了,并且原版整合包因为做的匆忙,有很多地方做得比较粗糙,所以痛定思痛重写了一个新的真·一站式WebUI整合包。除了f0均值滤波功能外,项目本体没有太大改动,所以先前训练的进度也可无缝转移。
有什么新的?
- 放弃了各种乱七八糟的脚本文件,数据预处理/推理/训练现可在WebUI一站式解决
- 支持多卡指定GPU训练、多分支一站式整合
- 更多的推理可选参数和可选项(f0均值滤波、声码器增强器)
- 加入了更多防呆手段,尽可能减少报错
- 保持更新,尽可能与项目仓库同步
为了方便So-VITS-SVC后续更大规模的更新,项目对部分代码进行了重构,将部分模块与模型解耦,同时实现了多分支、多编码器完全整合。由于项目本体改动较大,本整合包也对部分代码进行了同步重构,并加入了新功能。现在你可以自由选择训练时使用的特征编码和f0提取,进一步提升模型质量;多分支(v1/vec768/hubertsoft)无缝整合,可以在整合包内自由切换推理。但由于改动较大,v1.x 版本整合包将无法通过增量更新升级到 v2.0 及后续版本。同时,先前训练的模型需要进行一些简单的操作才能够兼容 v2 整合包。
使用教程
Step 1: 安装Python 3.8.9
Python环境已经整合到整合包中,现在无需安装Python也可以使用新版整合包了。(你问我为什么之前不整合?问就是懒🤣)
Step 2: 解压整合包
将整合包解压到电脑硬盘中(路径中尽量不要包含中文),整合包内已经搭建好了运行所需的所有环境依赖,你无需自己手动搭建环境。
Step 3: 准备数据集
5.2日更新:现在你可以在WebUI中进行数据集音频切片了。在WebUI中整合了一个小工具,可以无需调参一键式切片,确保你的数据集不会出现过长或过短的音频。
Step 4: 在WebUI中进行数据预处理/训练
将准备好的数据集放置在 .\dataset_raw\ 文件夹中,确保文件夹结构正确:
dataset_raw
├───speaker0
│ ├───xxx1-xxx1.wav
│ ├───…
│ └───Lxx-0xx8.wav
└───speaker1
├───xx2-0xxx2.wav
├───…
└───xxx7-xxx007.wav
打开启动WebUI.bat,选择上方“训练”标签卡,进入训练设置界面:
(很简单啊,一看就懂了)
遇到WebUI卡死请参照以下解决方案:关闭代理/换浏览器(Chrome为佳)/清除浏览器缓存/如果浏览器自带网页翻译也要关闭
一些说明:
- 评估日志和保存模型均是按照步数(steps)而非轮数(epoch)来计算的,默认的数值比较常用。步数和轮数的关系是:steps = epoch * (数据集数量/batch size)
- 批量大小(batch_size)极度影响显存占用。如果遇到CUDA out of memory报错请首先调低batch size,如果不行再考虑升级显卡驱动、CUDA驱动。本环境在CUDA 11.7和12.0中测试稳定
- 半精度训练(fp16)是一个比较玄学的参数,如果你不知道这是干嘛的还是保持关闭就好
- 多卡用户如果要指定某张显卡用于训练的话,可以使用 nvidia-smi 命令来查看显卡的系统编号,但是英伟达的编号分配逻辑就是依托,很容易出现指定不到你想选的那张显卡的问题。默认0是不会出错的
- 不要问我怎么才算训练好了,用整合包的启动tensorboard.bat来查看损失函数值收敛趋势,tensorboard里还可以试听当前模型的测试音频,但是测试音频不代表模型的实际产出。你觉得差不多训练好了就可以手动中止了。
Step 5: 在WebUI中进行推理
快来试试刚刚出炉的模型吧!
新版整合包的推理和旧版除了多出来一些可选项以外没有任何区别。
新版WebUI在生成音频的时候会将文件自动保存在results文件夹内,你无需一个个手动下载了。
🥰外部模型如何迁移到新版整合包?
把旧版的G_模型和Kmeans聚类模型放到新版整合包的以下目录:
.\logs\44k
把旧版模型对应的config.json(在configs文件夹内)放置到新版的以下目录:
.\configs
不太建议将旧版整合包未完成的训练转移到新版,因为两个包的环境依赖有所不同,容易出现意料之外的问题。