本篇是「AI 歌曲翻唱(So-VITS-SVC)」系列教程的一篇,整合包基于 So-VITS-SVC 4.1,适合想用自己声音训练 AI 翻唱模型的同学。说明:本站不提供整合包与现成翻唱模型的下载,但提供 AI 音色模型的定制训练服务。教程内容按原项目文档整理,已去除无关信息。
版本号说明
目前该文档使用两个版本号系统,分别是 So-VITS 官方的版本号,以及本整合包的版本号。请注意不要混淆。
So-VITS 官方版本号目前为 4.1,其下另有两个分支:4.1-Stable 以及 4.1-Latest.
⏩4.1-Stable是官方的稳定版本,4.1-Latest中包含一些尚在开发的新特性。由于后者可能存在一些 BUG,因此本整合包将仅同步更新 4.1-Stable的内容。
本整合包使用语义化版本,与 So-VITS 官方版本号独立发展。如无特殊说明,整合包的最新版本将始终与官方同步更新。您可以在更新日志中查看本整合包最新的版本说明。
配置要求
- 一张支持 CUDA 的 nVIDIA 显卡,拥有至少 6G 以上显存
- Windows 10/11 系统
下载地址
完整整合包
百度网盘:
提取码:g8n4
Google Drive: https://drive.google.com/file/d/19e7HJYk32WHVIXm-CuhvbwF8IHjZ48QU/view?usp=sharing
增量更新
⚠️ ⚠️ v1.x 版本的整合包无法通过增量更新更新至 v2,请参考 这里 了解更新方式
⚠️ ⚠️ v2.3.14 以前版本请直接下载完整整合包
百度网盘:
提取码:yryv
在开始之前
为了避免在之后的使用中出现各种意料之外的问题,请务必对照下面的 Checklist 检查本机环境。
- 关闭全局梯子 / 绕过局域网
- 使用推荐的浏览器(✅Chrome / Edge / Firefox)
- 关闭浏览器自带的网页翻译功能
- 关闭所有第三方杀毒软件 / 安全卫士等
- 将系统虚拟内存设置为至少 30G
⚠️ 部分浏览器(尤其是 Edge)会出现 WebUI 打开后无法正常工作的现象。如果遇到卡死/无法点击交互等现象,请尝试更换为上述推荐的其他浏览器。
启动 WebUI
本整合包的所有训练/推理流程均在浏览器交互界面(WebUI)中实现。
- 将整合包解压至硬盘内,请确保硬盘内至少还有 20GB 的剩余空间
- 双击整合包内启动webui.bat即可启动 WebUI,初次使用需要初始化,可能会等待较长时间,启动完成后将会使用默认浏览器自动弹出 WebUI 窗口。
推理
推理 (Inference) 是指将输入源音频通过 So-VITS 模型转换为目标音色的过程。因此,执行 So-VITS 的推理过程,你必须拥有:
| 名称 | 文件后缀 | 存放目录 | 描述 |
| So-VITS 模型 | .pth |
.logs44k |
推理所必须的神经网络模型 |
| 配置文件 | .json |
.configs |
存放模型参数的配置文件,必须与模型一一对应 |
除此之外,还有一些文件属于可选项,能够执行推理的扩展功能。即使缺失也可以正常执行推理:
| 名称 | 文件后缀 | 存放目录 | 描述 |
| 聚类 (Kmeans) 模型 | .pt |
.logs44k |
执行混合聚类方案必须的模型 |
| 扩散模型 | .pt |
.logs44kdiffusion |
执行浅扩散推理必须的模型 |
| 扩散模型配置文件 | .yaml |
.configs |
存放扩散模型参数的配置文件,必须与模型一一对应 |
| 特征索引模型 | .pkl |
.logs44k |
执行混合特征索引必须的模型 |
⚠️ ⚠️ 在默认模式下,上述所有文件必须放置在对应的存放目录,否则无法正常读取。如有较多模型,可以启用独立目录模式管理模型,具体请参考 多模型管理 。
从外部迁移模型
⏩从外部转移模型时,只要将对应的文件放置到models文件夹下,然后在 WebUI 底部启用独立目录模式即可(详情参考多模型管理)。模型的文件名可以任意更改,但请保持后缀不变。聚类模型和扩散模型使用的是同一个后缀(.pt),请在重命名时显著区分这两种模型。
⚠️ ⚠️ 从云端下载模型时,请务必注意只有”G_”模型才是推理可用的模型。错误下载”D_”模型将无法正常推理。
加载模型
在推理过程中,模型会默认被加载到 CUDA 设备(显卡)或 CPU 上,取决于你当前可用的设备。按照以下步骤加载模型:
- 选择所使用的 So-VITS 模型,此时会自动读取模型所使用的编码器
⏩关于不同的编码器详解,请参考训练 – 编码器详解
- 选择该模型对应的配置文件,此时会自动读取配置文件中的编码器参数
⚠️ ⚠️ 配置文件与模型的编码器必须对应,否则无法正常推理 。旧版模型需要修改配置文件以兼容 4.1 版本,关于如何修改配置文件兼容,请参考 旧模型兼容 。
- 如需使用浅扩散、聚类模型、NSF-HifiGAN 声码器增强器,请自行选择
- 点击加载模型
⚠️ 浅扩散、聚类模型及声码器增强器需要在选中后再加载模型。如果已经有模型加载,选中选项后需要重新加载模型。
模型加载需要大约 10-30 秒,多说话人模型可以在 So-VITS 说话人列表中选择对应的说话人。
上传音频并转换
你需要首先上传一段输入源音频才能进行转换,优秀的输入源音频的要求是:
- 纯人声,无伴奏、底噪、和声、混响等
- WAV 格式,44100 hz,16 bit
⚠️ ⚠️ 上传的音频最好不要超过 6 分钟,否则有概率导致转换不成功。
⏩关于如何从歌曲中分离伴奏、去除混响和声,请参考训练 – 数据集处理 – 人声伴奏分离
⏩整合包中预装了 FFmpeg,因此即便不是 44100 hz, 16 bit 的 WAV 文件也可以上传。如果在推理时遇到 FFmpeg 相关的错误,请重启 WebUI 后再次尝试,或手动使用音频处理软件转换为正确的格式
一般来说,默认的参数对于转换歌曲足够使用。你也可以参考推理参数详解来了解各个推理可选项的参数说明。
训练
训练是指使用目标说话人的音声数据集令 AI 学习特征并生成神经网络模型。在训练之前,你需要准备:
- 目标说话人的授权数据集(至少 30 分钟的纯人声 / 歌声,1-2 小时最佳)
- 音频处理软件(Adobe Audition, UVR5)
- 本整合包
⚠️ ⚠️ 训练过程的显卡负载非常高,且一般会持续数小时,在此期间建议不要使用计算机进行其他的任务。
数据集处理
人声伴奏分离
如果你使用的是带伴奏的歌曲作为数据集,那么请一定要将人声从伴奏中分离出来。分离伴奏和人声推荐使用 Ultimate Vocal Remover 5 (UVR5), 并下载对应的处理模型。一些推荐的处理模型和功能如下:
- MDX-Net | MDX23C-InstVocal HQ: 分离人声及伴奏
- VR Architecture | 5_HP-Karaoke-UVR: 分离和声
- VR Architecture | UVR-DeEcho-DeReverb: 去除混响和回声
⏩上述所有模型均可在 UVR5 软件选择模型处 —— Download More Models 下载(可能需要科学上网)
⚠️ 需要注意的是,没有任何一种方法能够做到无损分离人声。当歌曲中的伴奏越复杂,分离后的人声失真越严重。较差的人声质量会显著影响模型训练的结果。
除了传统的 UVR5 工作流,你还可以试试来自字节跳动火山引擎的 SAMI 技术分离人声。在人声伴奏分离方面 SAMI 可能有比 UVR5 更好的效果;且可以通过 WebUI 请求远程服务器,无需本地硬件推理。
音频切片
数据集的音频需要切分成数秒至数十秒的片段。一般来说 3- 15 秒为佳。在 WebUI 里整合了一个智能音频切片工具,可以满足上述切片要求。
⚠️ ⚠️ 在切片之前,请将待切片的音频文件以纯数字、字母、下划线命名。
- 打开 WebUI – 小工具/实验室特性 – 智能音频切片
- 将包含所有待处理音频文件(.wav 格式)的文件夹路径输入到原始音频文件夹内
- 点击加载原始音频,确认音频被正确识别
- 输入切片后的输出目录,选择对过短音频的处理方式
- 开始处理
预处理
数据集预处理的流程是:
⚠️ 响度匹配 —— 重采样 —— 生成配置文件 —— 提取特征
⚠️ ⚠️ 注意:虽然 So-VITS 项目自带响度匹配脚本,但该脚本会将音频匹配到 0db, 这可能会造成音质的受损。最佳的做法是使用专业音频处理软件,如 Adobe Audition 自行对数据集进行响度匹配处理后再进入预处理流程。如果数据集已经完成了响度匹配或启用了响度嵌入,可以在预处理时跳过程序自带的响度匹配流程。
上述所有流程在 WebUI 中均可一键完成:
- 将上一步切片完成的数据集文件夹放置到整合包根目录下dataset_raw文件夹内
⚠️ ⚠️ 请注意文件结构: dataset_raw/speaker_name/*.wav
- 在 WebUI 训练选项卡中,点击识别数据集,确认数据集被正确识别
- 根据说明自行选择训练使用的编码器和 f0 预测器
编码器详解
| 编码器名称 | 优点 | 缺点 |
vec256l9 |
– | 不支持扩散模型 |
vec768l12(推荐) |
最还原音色、有大型底模、支持响度嵌入 | 咬字能力较弱 |
hubertsoft |
咬字能力较强 | 音色泄露 |
whisper-ppg |
咬字最强 | 音色泄露、显存占用高 |
更多的编码器选项,请参考 训练参数详解 – 关于特征编码器
🦻音色泄露指的是输出的音色向底模/推理输入源的原始音色接近,模型说话人越多,音色泄露越严重。考虑到大多数人都希望尽可能还原目标说话人的音色,因此音色泄露被认为是一种不受欢迎的结果。
- 如要训练扩散模型或启用响度嵌入,请自行勾选
⚠️ 勾选训练扩散后将会提取扩散模型所需的特征文件,会占用更多硬盘空间。有关扩散模型的详细说明,请参考 训练参数详解 。
⚠️ ⚠️ 启用响度嵌入需要选择 Vec768L12 编码器,其它编码器没有响度嵌入的底模。
- 点击数据预处理
数据预处理的输出信息中可能存在报错信息。如果出现报错,则代表数据预处理未完成。你可以参考常见报错和解决方案自行排障。
⚠️ ⚠️ 数据预处理可以多进程执行,但会显著占用显存和内存。建议 6G 以下显存不要开启多线程。12G 以下显存不要将线程数设置为 2 以上。
⚠️ ⚠️ 同一个数据集只需要预处理一次,往后继续训练不需要也不可以重新预处理!
最佳实践
如果你是初次接触,面对眼花缭乱的可选项,不知道该如何设置预处理参数,这里为你提供了一些不同使用场景下的最佳实践:
用于翻唱(非实时转换):
| 编码器 | f0 预测器 | 响度嵌入 | 跳过响度匹配 | TINY | 浅扩散 |
| vec768l12 | rmvpe | √ | √ | × | √ |
用于朗读 / 说话(非实时转换):
| 编码器 | f0 预测器 | 响度嵌入 | 跳过响度匹配 | TINY | 浅扩散 |
| hubertsoft / whisper-ppg(8G以上显存) |
rmvpe | √ | √ | × | √ |
训练参数设置和开始训练
请参考 WebUI 中的说明自行设置参数并开始训练。有关训练参数和聚类模型的更多说明,请参考训练参数详解。
训练过程中会根据你之前设置的保存步数(默认为 800 步)保存一次模型。
请严格区分轮数 (Epoch) 和步数 (Step):1 个 Epoch 代表训练集中的所有样本都参与了一次学习,1 Step 代表进行了一步学习,由于 batch size 的存在,每步学习可以含有数条样本,因此,Epoch 和 Step 的换算如下:
Epoch=(数据集条数÷batch_size)Step
训练默认 10000 轮后结束,但正常训练通常只需要数百轮即可有较好的效果。当你觉得训练差不多完成了,可以在训练终端按 Ctrl + C 中断训练。中断后只要没有重新预处理训练集,就可以在 WebUI 中继续上一次保存的训练进度。
模型怎样才算训练好了?
这是一个非常无聊且没有意义的问题。就好比上来就问老师我家孩子怎么才能学习好,除了你自己,没有人能回答这个问题。
模型的训练关联于你的数据集质量、时长,所选的编码器、f0 算法,甚至一些超自然的玄学因素;即便你有一个成品模型,最终的转换效果也要取决于你的输入源以及推理参数。这不是一个线性的的过程,之间的变量实在是太多,所以你非得问“为什么我的模型出来不像啊”、“模型怎样才算训练好了”这样的问题,我只能说 WHO F**KING KNOWS?
但也不是一点办法没有,只能烧香拜佛了。我不否认烧香拜佛当然是一个有效的手段,但你也可以借助一些科学的工具,例如 Tensorboard 等,下一段就将教你怎么通过看 Tensorboard 来辅助了解训练状态,当然,最强的辅助工具其实长在你自己身上,一个声学模型怎样才算训练好了?塞上耳机,让你的耳朵告诉你吧。
Tensorboard
可以用 Tensorboard 来查看训练过程中的损失函数值 (loss) 趋势,试听音频,从而辅助判断模型训练状态。
- 双击启动tensorboard.bat运行 Tensorboard
⚠️ Tensorboard 是根据训练时默认每 200 步的评估生成日志的,如果训练未满 200 步,则 Tensorboard 中不会出现任何图像。
Losses 详解
你不需要理解每一个 loss 的具体含义,大致来说:
- loss/g/f0、loss/g/mel和loss/g/total应当是震荡下降的,并最终收敛在某个值
- loss/g/kl应当是低位震荡的
- loss/g/fm应当在训练的中期持续上升,并在后期放缓上升趋势甚至开始下降
观察 losses 曲线的趋势可以帮助你判断模型的训练状态。但 losses 并不能作为判断模型训练状态的唯一参考,甚至它的参考价值其实并不大,你仍需要通过自己的耳朵来判断模型是否训练好了。
⚠️ 对于小数据集(30分钟甚至更小),在加载底模的情况下,不建议训练过久,这样是为了尽可能利用底模的优势。数千步甚至数百步就能有最好的结果。
⚠️ ⚠️ Tensorboard 中的试听音频是根据你的验证集生成的,无法代表模型最终的表现。
说明:本站不提供文中所述整合包及现成翻唱模型的下载;如果你想要训练属于自己的音色模型(变声 / 翻唱均可),本站提供模型定制训练服务,可先查阅本站训练相关教程,或在会员群内咨询下单。


















微信扫一扫,添加客服
暂无评论内容