GPT-SoVITS 版本演进全解读:从 Changelog 看 V1 到 V2Pro 的能力里程碑与源码落点
本文基于仓库内的更新日志 Changelog_TR.md(土耳其语版更新日志,与 docs/cn/Changelog_CN.md、docs/en/Changelog_EN.md 等多语言版本互为镜像),完整梳理 GPT-SoVITS 从 2024.01 到 2026.04 的全部关键变更记录,并结合当前仓库源码(config.py、TTS_infer_pack/TTS.py、api.py 等)标注每项能力的实际落点。读完本文,你可以掌握:GPT-SoVITS V1/V2/V3/V4/V2Pro/V2ProPlus 各版本的演进脉络、每个里程碑对应仓库中的具体模块与配置项,以及如何依据更新日志判断自己使用的功能处于哪个版本线。
一、更新日志的结构与阅读方法
Changelog_TR.md 按“月份”组织章节(## 202401 … ## 202604,并在大版本发布处标注 V2 Sürümü、V3 Sürümü、V4 Sürümü、V2Pro Serisi),每条记录固定包含四个字段:
- 日期(如
2025.02.23); - 变更引用:对应的 Commit 短哈希(形如
Commit#ed207c4b)与 PR 编号,同一功能可能跨多个提交区间(用~连接); - İçerik(内容):变更描述;
- Tür(类型):
Özellik / Yeni Özellik(新功能)、Düzeltme / Hata Düzeltme(修复)、Optimizasyon / Performans Optimizasyonu(性能优化)、Dokümantasyon(文档)、Chore(杂项)、Stil(代码风格)、Yeniden Yapılandırma(重构); - Katkıda Bulunan(贡献者):提交者或 PR 作者。
此外,日志在关键条目处会附“İlgili(关联 Issue)”与警告性提示(例如 2024.06.06 的 BERT 特征修复条目明确要求“若此前用大量数据微调过,建议重新微调模型”)。这类提示对存量用户直接决定是否需要重训,阅读时应优先关注。
二、2024.01 奠基期:稳定性、多语言支持与推理体验
这是日志中最密集的一个月,核心主题是把训练/推理管线从“能跑”打磨到“好用”:
| 日期 | 变更 | 类型 | 仓库落点 |
|---|---|---|---|
| 2024.01.21 | WebUI 增加英语界面翻译支持 | 文档 | tools/i18n/locale/en_US.json |
| 2024.01.21 | SoVITS 训练 ZeroDivisionError 修复尝试(关联 Issue#79) | 修复 | GPT_SoVITS/s2_train.py |
| 2024.01.21 | 合成音频“复现参考音频尾部”的问题大幅减轻 | 优化 | 训练数据截断逻辑 |
| 2024.01.21 | cmd-asr.py 自动检测 FunASR 默认目录,缺失时自动从 ModelScope 下载 |
功能 | tools/asr/funasr_asr.py |
| 2024.01.21 | Config.py 新增 is_share 参数,True 时 WebUI 可被外网访问 |
功能 | config.py(现由环境变量 is_share 读取,见下文) |
| 2024.01.22 | 极短输出文件“复读参考音频”的问题修复 | 修复 | 推理管线 |
| 2024.01.22 | 音频路径不存在时给出明确报错,替代 ffmpeg 原始错误 | 优化 | 路径校验逻辑 |
| 2024.01.23 | 解决 Hubert 特征 NaN 引发的训练 ZeroDivisionError 根因 | 修复 | GPT_SoVITS/feature_extractor/cnhubert.py |
| 2024.01.23 | 中文分词由 jieba 换为 jieba_fast |
优化 | GPT_SoVITS/text/cleaner.py |
| 2024.01.23 | 模型文件排序逻辑优化 | 优化 | config.py 中的 custom_sort_key |
| 2024.01.23 | 推理 WebUI 支持快速切换模型 | 功能 | WebUI 下拉框刷新机制 |
| 2024.01.25 | 增加 Mac 训练与推理支持(PR#183、PR#200,Lion-Wu) | 功能 | 平台适配 |
| 2024.01.26 | 支持中英、日英混合文本输出(PR#204,Kakaru Hayate) | 功能 | GPT_SoVITS/text/ 前端 |
| 2024.01.26 | 增加“可选切分模式”开关 | 功能 | 文本切分参数 |
| 2024.01.26 | 多行结尾符导致推理失败的问题修复 | 修复 | 输入清洗 |
| 2024.01.26 | 不支持半精度的 GPU 自动强制单精度;CPU 推理强制单精度 | 优化 | 精度自动判定逻辑(见第五节) |
| 2024.01.28 | Dockerfile 中模型下载流程补全(PR#238) | 修复 | Dockerfile、GPT_SoVITS/download.py |
| 2024.01.28 | 数字发音被误转为汉字的问题修复(PR#257) | 修复 | 中文前端 |
| 2024.01.28 | GPT 训练 checkpoint 不保存的问题修复 | 修复 | GPT_SoVITS/s1_train.py |
| 2024.01.28 | 通过长度约束过滤不合理的参考音频 | 修复 | 数据校验 |
| 2024.01.28 | 句首字符被吞的问题修复 | 修复 | 推理管线 |
| 2024.01.29 | 16 系等半精度有问题的 GPU,训练配置改为单精度 | 修复 | 训练 yaml |
| 2024.01.29 | FunASR 升级至 1.0 并修复接口不兼容(PR#135) | 修复 | tools/asr/funasr_asr.py |
| 2024.01.30 | 中英标点切分问题修复,句首句尾补标点 | 修复 | 前端 |
| 2024.01.30 | 增加按标点切分的支持 | 功能 | 前端 |
| 2024.01.30 | 自动去除路径输入中的双引号,避免新手复制报错 | 修复 | 输入清洗 |
源码佐证:2024.01.23 的“模型文件排序逻辑优化”对应 config.py 中的 custom_sort_key——用正则把文件名拆成数字/非数字段再排序,保证 s2G488k.pth 这类命名按数值序而非字典序排列;2024.01.21 的 is_share 参数在 config.py 中体现为从环境变量 is_share 解析布尔值,True 时 WebUI 映射到局域网。
三、2024.02 多语言与 DPO 训练:能力横向扩展
本月的两条主线是多语言自动处理与训练增强:
- 2024.02.03:中文-日文-英文混合文本自动切分与语言识别(
Commit#3ebff70b),这是后续多语言推理能力的底座; - 2024.02.03:集成 PaddleSpeech Normalizer(PR#377),修复
xx.xx%、元/吨(应读“元每吨”)及下划线类文本的朗读错误; - 2024.02.07:集成 Faster Whisper 作为日/英 ASR(PR#400),与已有 FunASR(中文/粤语)形成双引擎,对应 tools/asr/fasterwhisper_asr.py 与 tools/asr/funasr_asr.py;同月日志提到“为规避 HuggingFace 连接问题改用镜像下载”;
- 2024.02.12:新增 DPO Loss 训练选项,用于抑制 GPT 的复读与跳字现象,推理 WebUI 同步增加新参数(PR#457);
- 2024.02.15:DPO 训练由强制改为可选,启用时 batch size 自动减半;训练实验名支持中文;
- 2024.02.16:支持“不输入参考文本”的推理入口(PR#499,关联 Issue#475),显著降低无参考文本场景的使用门槛;
- 2024.02.21:数据预处理增加去噪选项(仅保留 16kHz,建议仅在高背景噪声时使用);Mac CPU 推理弃用 MPS 改走 CPU 以提升性能(PR#557);
- 2024.02.28:Mac CPU 推理的
is_half检查修复(PR#573)、UVR5 混响模型参数颠倒修复(PR#610)。
此外还有 ASR 路径以 / 结尾导致的保存错误(2024.02.01)、UVR5 格式解析失败(2024.02.03)、librosa 新版本兼容(PR#403)、is_half 未做布尔转换导致的 UVR5 inf 问题(2024.02.07,16 系 GPU 高发)、Gradio 依赖问题(2024.02.07)、Windows 10 1909 + 繁体系统下 GPT 训练卡死(2024.02.08)等修复。
四、2024.03–06 推理提速与训练正确性
- 2024.03.06:无 CUDA 时 Faster Whisper 自动回退 CPU 推理(PR#675);非中文 ASR 不再预下载 FunASR 中文模型;
- 2024.03.09:推理速度提升约 50%(PR#672,测试环境 RTX3090 + PyTorch 2.2.1 + CU11.8 + Win10 + Py39)——这是“fast_inference”工作的起点;
- 2024.03.10:快速推理分支
fast_inference建立(PR#721); - 2024.03.13:支持 CPU 训练,Mac 可用 CPU 训练(PR#761);
- 2024.03.19 / 03.30:英文前端多轮改进(PR#804/812/821)、API 格式改进(PR#894),对应 api.py;
- 2024.05.02:修复 SoVITS 训练中 VQ 未冻结导致的音质下降(PR#953,关联 Issue#747)——对训练质量是硬修复;
- 2024.05.19 / 05.27:不支持的语言在数据处理阶段给出明确报错;Hubert 推理错误修复;
- 2024.06.06:关键警告条目——修复“GPT 微调时中文 BERT 特征未读取”导致的推理不一致与质量下降,日志明确提示:若之前已用大量数据微调过,建议重新微调模型;
- 2024.06.10:纯标点 / 连续标点输入的处理逻辑改进(PR#1168/1169);
- 2024.06.13 / 06.28 / 06.29:CPU 推理默认 batch 的小数问题、去噪/ASR 异常时后续音频全部失败的问题、多卡训练多进程注册逻辑(PR#1258/1265/1267、
Commit#a208698e)相继修复; - 2024.07.06:按标点切分时小数点被误切的修复(PR#1253)。
五、2024.07 快速推理并入主线与语速控制
- 2024.07.06(
Commit#b0786f29):加速推理代码经过验证后合并进主分支,日志保证“与基础版本推理效果一致”,且无参考文本模式下同样支持加速推理; - 2024.07.13:i18n 扫描重排、多语言配置文件更新(PR#1294/1298);路径末尾斜杠引发的命令行报错修复(PR#1299);
- 2024.07.19:GPT 训练使用自定义
bucket_sampler时训练步数不一致的修复(PR#756),对应 GPT_SoVITS/AR/data/bucket_sampler.py; - 2024.07.23:语速调节功能加入(
Commit#9588a3c5、PR#1340):合成时可调语速,并支持“固定随机种子、仅控制语速”。该能力落在 api.py 中——请求参数与默认配置均含speed字段(api.py),底层实现见 TTS_infer_pack/TTS.py 的speed_change:把 PCM 写入 ffmpeg 管道,用atempo滤镜变速后再解码回 NumPy 数组,即“先正常合成、后无损变速”的流水线; - 2024.07.27:新增 BS-RoFormer 人声分离模型(PR#1306/1356),落在 tools/uvr5/bs_roformer/;中文前端继续改进(PR#1351)。
六、2024.08:V2 版本正式官宣
这是第一个大版本节点(2024.08.21 GPT-SoVITS V2 正式发布):
- 2024.08.02(
Commit#ff6c193f~Commit#de7ee7c7):GPT-SoVITS V2 模型加入——更大的预训练底模; - 2024.08.03:基于 FunASR 的粤语 ASR 支持(
Commit#8a101474),补全粤语数据处理链路; - 2024.08.06:多说话人(多角色)文本处理逻辑优化,仅 V2(PR#1404/987/488);
- 2024.08.01:BS-Roformer 开启 FP16 推理;GPU 识别逻辑优化,能正确处理用户手输的 GPU 序号;
- 2024.08.13:修复“只能上传一个参考音频”的 bug,并为缺失文件增加数据集校验弹窗(PR#1422);
- 2024.08.20:上游 LangSegment 库改用 SSML 标签优化数字、电话、日期、时间朗读(Issue#1508);
fast_inference分支并入主干(PR#1490);API 修复与优化(PR#1503)。
源码佐证:V2 权重目录映射已固化在 config.py 的 pretrained_sovits_name / pretrained_gpt_name 中(v2 对应 gsv-v2final-pretrained 底模),用户权重目录为 SoVITS_weights_v2 / GPT_weights_v2(见 config.py)。
七、2025.02:V3 版本与低显存训练(14GB → 12GB → 8GB)
V3 是日志中工程密度最高的版本线(2025.02.28 V3 正式发布):
- 2025.02.11:GPT-SoVITS V3 模型加入,微调需 14GB VRAM(
Commit#ed207c4b~Commit#6e2b4918); - 2025.02.12:梯度检查点支持,微调降至 12GB VRAM(PR#2040);注意力计算优化(PR#2010);
- 2025.02.23:V3 支持 LoRA 训练,8GB 显存即可微调(
Commit#56509a17~Commit#514fb692),对应仓库中的 GPT_SoVITS/s2_train_v3_lora.py 与 GPT_SoVITS/s2_train_v3.py 双训练入口; - 2025.02.23:人声/乐器分离新增 Mel Band Roformer 模型(PR#2078),落在 tools/uvr5/bs_roformer/mel_band_roformer.py;
- 2025.02.14:切换新语言切分工具,多语言混合切分策略、数字与英文处理逻辑优化(PR#2047/2062/2073);
- 2025.02.27:新增 24kHz→48kHz 音频超分模型,缓解 V3 24K 输出的“闷”的问题(关联 Issue#2085、#2117),对应 tools/AP_BWE_main/(内含
24kto48k权重目录); - 2025.02.28:语速控制参数正式进入合成链路(
Commit#c38b1690、Commit#a32a2b89);短 CJK 字符的基于规则的语言识别兜底(PR#2122)。
源码佐证:V3 底模 s1v3.ckpt / s2Gv3.pth 与 v2Pro 系列底模均登记在 config.py;V3/V4 的 mel 配置(32kHz 采样率、hop 320)见 TTS_infer_pack/TTS.py 的 mel_fn_v4。
八、2025.03–04:V3 并行推理与 V4 发布
- 2025.03.31:依赖版本问题批量修复(PyOpenJTalk、ONNX、Pydantic、PyTorch-Lightning 各自关联多个 Issue,PR#2236);SoVITS v3 并行推理启用(PR#2241);ONNX 运行时 GPU 推理集成修复——G2PW 的 ONNX 模型从 CPU 搬到 GPU 以消除 CPU 瓶颈,降噪模型同步支持 GPU 推理;
- 2025.04.01:v3 并行推理“解锁”+ 异步模型加载修复(
Commit#6a60e5ed); - 2025.04.15:文档清理、Python 3.11 支持、安装脚本更新(PR#2290);
- 2025.04.20:GPT-SoVITS V4 模型加入(
Commit#e0c452f0~Commit#9d481da6); - 2025.04.21:V4 并行推理启用(
Commit#8b394a15~Commit#bc2fe5ec、PR#2307); - 2025.04.22:模型版本参数传递修复(PR#2309)、NumPy/Numba 版本冲突与 librosa 版本修复(PR#2310)、Gradio 参数更新(PR#2311);当日 V4 正式发布。
源码佐证:并行推理与流式推理的开关集中在 TTS_infer_pack/TTS.py:parallel_infer(默认 True)、streaming_mode、overlap_length、min_chunk_length、fixed_length_chunk 等参数在此统一解析,并处理“并行 + 流式 + 声码器”等组合下的互斥降级逻辑;V4 权重目录 SoVITS_weights_v4 / GPT_weights_v4 见 config.py。
九、2025.05–06:V2Pro 系列(V2Pro / V2ProPlus)
- 2025.05.26:SoVITS V3/V4 推理速度再提升约 10% 的缓存策略(PR#2377);
- 2025.06.04:TorchScript 导出 V4 支持(PR#2417),对应 GPT_SoVITS/export_torch_script_v3v4.py;同日 V2Pro 系列模型加入(V2Pro、V2ProPlus)(
Commit#b7c0c5ca~Commit#298ebb03); - 2025.06.05:精度自动检测逻辑优化(PR#2427)——当前实现即 config.py 的
get_device_dtype_sm:读取每张卡的 SM 版本与显存,<4GB或SM<5.3回退 CPU,SM==6.1或 16 系(SM 7.5)强制 float32,SM>6.1才启用 float16;模块加载时据此自动计算全局is_half(config.py);同批还有 WebUI 折叠面板、多音字X一X模式检测修复(PR#2426); - 2025.06.09 / 06.11:
ge.sum引发的数值爆炸(静默输出)与 v2pro 下ge推理溢出两连修;v2pro 并行推理识别错误修复(PR#2450); - 2025.06.17 / 06.27:
install.sh逻辑优化(PR#2464/2482)、onnxruntime 安装时按 GPU/CPU 自动选包(PR#2489)、语言切分与格式化再优化(PR#2488)。
十、2025.07–2026.04:流式推理与长期维护
日志最后一段记录了最近的持续演进:
- 2025.07.10:提升推理进程优先级(缓解 Win11 下 GPU 占用受限);
- 2025.07.16:修复
TTS.py版本识别不认v2pro/v2proPlus的问题并更新默认配置(PR#2490)——对应 GPT_SoVITS/TTS_infer_pack/TTS.py 的TTS_Config默认配置表; - 2025.07.17–18:Whisper ASR 支持更省资源的蒸馏模型(PR#2531)、
TTS_Config逻辑优化(PR#2536)、GPT loss 计算修复(PR#2537); - 2025.08.02:WSL + ROCm 环境修复(PR#2561);
- 2025.11.28(集中一批重要变更):流式推理(streaming inference) 合入(PR#2671/2678、PR#2469),仓库中配套 GPT_SoVITS/stream_v2pro.py 演示入口与 TTS.py 中的
decode_streaming分块解码路径;数学表达式文本前端优化(PR#2636);VQ 分布式训练支持(PR#2577);ASR 模型下载逻辑优化(PR#2627/2679);默认 batch size 错误修复(PR#2662); - 2025.12.30:采样(sampling)错误修复(PR#2703/2704);
- 2026.02.08–09:Conda 条款导致的构建错误修复(PR#2727)、自动环境安装优化(PR#2732),对应 Docker/miniforge_install.sh、install.sh;
- 2026.04.18:G2PW 推理输入构造与多音字处理优化(长句减负,PR#2763)、Windows 单卡 v3 LoRA 训练流程改进(PR#2767)、并行推理若干错误修复(PR#2753)、DPO 训练缺失词模拟支持(PR#2733)、数据集处理报错提示增强(PR#2758)、ONNX 脚本缺失 import 修复(
Commit#02425ea)。
十一、如何把更新日志对照到当前仓库
结合日志与仓库结构,读者可以用下面三条线索快速定位“某项能力现在在哪里”:
- 版本 → 权重目录:
config.py的pretrained_sovits_name/pretrained_gpt_name(config.py)给出 v1–v4、v2Pro、v2ProPlus 的底模路径,SoVITS_weight_version2root/GPT_weight_version2root给出用户权重目录命名(SoVITS_weights_v3、GPT_weights_v2Pro等),与日志中各版本发布条目一一对应; - 能力 → 入口文件:语速控制看 api.py 的
speed参数与 TTS.py 的speed_change(ffmpegatempo实现);并行/流式推理看 TTS.py 的parallel_infer/streaming_mode参数组;流式演示看 GPT_SoVITS/stream_v2pro.py;ASR 双引擎看 tools/asr/funasr_asr.py 与 tools/asr/fasterwhisper_asr.py;人声分离看 tools/uvr5/(BS-RoFormer、Mel Band Roformer);24K→48K 超分看 tools/AP_BWE_main/;LoRA 训练看 GPT_SoVITS/s2_train_v3_lora.py; - 环境 → 自动判定:精度(
is_half)、GPU 选择、WebUI 端口(主 WebUI 9874、UVR5 9873、推理 9872、附属工具 9871、API 9880)均由 config.py 统一计算,与日志中 2024.01/2024.08/2025.06 关于“半精度强制、GPU 索引处理、精度自动检测”的条目直接对应。
适用前提与限制:以上版本与参数均以当前仓库实际内容为准——例如 V3 微调 14GB / 检查点 12GB / LoRA 8GB 的显存门槛来自日志条目描述,实际占用随数据与 batch 配置浮动;speed 语速调节依赖系统 ffmpeg;粤语 ASR 依赖 FunASR 模型下载成功。若你在升级模型版本(v1→v2→v3→v4)时遇到行为差异,可优先回到 Changelog_TR.md(或同目录其他语言的对应版本)按日期检索相关条目,并对照 config.py 中登记的权重路径确认底模版本是否匹配。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0622
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00