首页
/ GPT-SoVITS 版本演进全解析:从 V1 到 V2Pro 的更新历史、能力矩阵与源码级实现对照

GPT-SoVITS 版本演进全解析:从 V1 到 V2Pro 的更新历史、能力矩阵与源码级实现对照

2026-09-04 18:14:42作者:董斯意

本文以仓库内的日语更新历史 Changelog_JA.md 为核心骨架,系统梳理 GPT-SoVITS 自 2024 年 1 月至 2026 年 4 月的全部迭代脉络:从 V1 基础版到 V2、V3、V4 与 V2Pro 系列的模型演进,以及 fast_inference 并行推理、流式合成、LoRA 训练、48kHz 音频超分等关键能力的落地过程。读完本文,你可以:1) 按时间线掌握各版本引入的能力与已知缺陷修复;2) 将每一条更新对应到当前仓库中的真实源码与配置路径(如 config.pyTTS.pyfasterwhisper_asr.py);3) 理解 is_halfis_sharestreaming_mode 等配置项在代码中的实际生效位置。

一、更新历史的整体主线:模型版本与能力演进

Changelog_JA.md 按月份(YYYYMM)组织,每条记录包含日期、关联的 PR/Commit 编号、内容摘要、类型(新機能/修正/最適化/ドキュメンテーション)与贡献者。从源码结构看,这条时间线与当前仓库中的模型版本体系完全吻合:

  • config.py 中的 pretrained_sovits_namepretrained_gpt_name 定义了 v1、v2、v3、v4、v2Pro、v2ProPlus 六个版本的预训练权重路径;
  • TTS.pyTTS_Config.default_configs 对同一组版本给出默认推理配置(T2S/VITS 权重、Hubert、BERT 路径);
  • SoVITS_weight_version2root / GPT_weight_version2root 把每个版本的自训练权重分目录存放在 SoVITS_weights_v2GPT_weights_v3 等目录下。

版本主线与发布节点如下(以更新历史为准):

时间节点 事件 说明
2024.01 起 V1 基础版持续迭代 多语言、Mac/CPU 支持、精度自适应、fast_inference 分支起步
2024.08.02 V2 模型加入 2024.08.21 正式释放 V2 版本
2025.02.11 V3 模型加入 微调需 14GB 显存;2025.02.28 正式释放 V3
2025.04.20 V4 模型加入 2025.04.22 正式释放 V4
2025.06.04 V2Pro / V2ProPlus 引入 V2Pro 系列模型
2025.11.28 流式推理落地 streaming_mode 进入 API

二、V1 时期(2024.01–2024.07):打地基的 7 个月

这是更新历史中条目最密集的阶段,主题集中在:多语言前端、跨平台训练(Mac/CPU)、GPU 精度自适应、推理提速、数据流水线健壮性。

2.1 2024.01:环境、精度与多语言的一次性补齐

该月约 30 条更新,代表性条目包括:

日期 类型 内容
2024.01.21 文档 WebUI 增加英语界面翻译支持(PR#108)
2024.01.21 修正 尝试修复 SoVITS 训练的 ZeroDivisionError(Issue#79)
2024.01.21 优化 大幅缓解合成音频携带参考音频尾音的问题
2024.01.21 功能 cmd-asr.py 默认检查 FunASR 模型是否存在,缺失时自动从 ModelScope 下载
2024.01.21 功能 config.py 增加 is_share 参数,设为 True 可将 WebUI 映射到公网
2024.01.21 优化 清理 TEMP 目录中的缓存音频文件
2024.01.22 优化 语音路径检查改进:非法路径直接报告"路径不存在"而非抛 ffmpeg 错误(PR#124)
2024.01.23 修正 解决 Hubert 抽取 NaN 导致 GPT/SoVITS 训练 ZeroDivisionError(Issue#79 后续)
2024.01.23 优化 中文分词 jieba 替换为 jieba_fast
2024.01.23 功能 推理 WebUI 支持快速模型切换
2024.01.25 功能 支持 Mac 训练与推理(PR#183、PR#200,Lion-Wu)
2024.01.26 功能 新增中日混合、日英混合输出文本(PR#204)
2024.01.26 功能 输出分段方式(セグメンテーションモード)变为可选项
2024.01.26 优化 不支持半精度的 GPU 自动强制单精度;CPU 推理时强制单精度
2024.01.28 修正 修正 GPT 训练不保存 checkpoint;限制不合理参考音频长度;修复句首数个字被吞
2024.01.29 修正 16 系列等半精度训练有问题的 GPU,训练配置改为单精度
2024.01.29 修正 FunASR 更新到 1.0 并修复接口不一致(PR#135)
2024.01.30 修正/功能 修复中/日/英句读切分问题;新增按句读切分

其中与当前仓库源码直接对应的两处:

  1. is_share 参数config.py 从环境变量读取 is_share(默认 False),webui.pyapp.queue().launch(share=is_share) 处生效,inference_webui.py 也以同样方式从环境变量读取,二者机制一致。
  2. 半精度自动判定config.pyget_device_dtype_sm() 依据 CUDA 计算能力与显存大小自动选择设备与 dtype——显存低于 4GB 或 SM 低于 5.3 回退 CPU;SM 6.1 或识别为 16 系列(SM 7.5)的 GPU 强制 float32;SM 高于 6.1 才启用 float16。这正是 2024.01.26 / 2024.01.29 两条"单精度强制"更新的实现落点,最终在 config.py 汇总为 infer_deviceis_half 全局变量。

2.2 2024.02:ASR 体系成型与 DPO 训练选项

日期 类型 内容
2024.02.01 修正 修复 ASR 输出路径末尾斜杠导致文件名保存错误
2024.02.03 功能 UVR5 格式读取错误修复;中日英混合文本自动语言判别与切分
2024.02.03 功能 引入 PaddleSpeech 文本规范化("xx.xx%"、"元/吨"读法、下划线问题,PR#377)
2024.02.05 优化 英语文本前处理优化(PR#395)
2024.02.06 修正 语言参数混淆导致中文推理质量下降(Issue#391)
2024.02.06 功能 集成 Faster Whisper,新增日语/英语 ASR(PR#400)
2024.02.07 修正 修复 UVR5"inf everywhere"错误(16 系 GPU 半精度布尔转换问题)
2024.02.12 功能 增加 DPO 损失训练选项(用负样本抑制 GPT 重复/漏字),推理接口公开更多参数(PR#457)
2024.02.12 优化 优化 ASR 逻辑;Faster Whisper 支持镜像下载以规避 HuggingFace 连接问题
2024.02.15 修正 支持中文实验名训练;DPO 训练改为可选项(启用时自动减半 batch size)
2024.02.16 功能 支持不输入参考文本(PR#499)
2024.02.17 优化 中/日前处理改进(PR#509/507/532/556/559)
2024.02.21 功能 macOS 推理设备由 MPS 改为 CPU(PR#557);数据前处理增加去噪选项(16K 降采样,高噪声场景外不建议)
2024.02.28 修正 is_half 判定修正,MacOS 恢复 CPU 推理(PR#573);UVR5 MDXNet 参数顺序错误导致输出文件夹反转(PR#610)

Faster Whisper 的集成在源码中依然可见:fasterwhisper_asr.pydownload_model() 负责按 model_size 拉取模型到 tools/asr/models/execute_asr()device = "cuda" if torch.cuda.is_available() else "cpu" 对应了后来 2024.03.06"CUDA 不可用时自动 CPU 推理"的更新。

2.3 2024.03–2024.05:CPU 训练与训练稳定性

  • 2024.03.06(PR#675):无 CUDA 时 Faster Whisper 自动 CPU 推理;非中文 ASR 使用时无需预下载 FunASR 模型。
  • 2024.03.09(PR#672):推理速度提升 50%(RTX3090 + PyTorch 2.2.1 + CU11.8 + Win10 + Py39 环境验证)——这是 fast_inference 路线的第一步。
  • 2024.03.10(PR#721):新增 fast_inference 分支(ChasonJiang)。
  • 2024.03.13(PR#761):支持 CPU 训练,macOS 可以纯 CPU 训练(Lion-Wu)。
  • 2024.03.19(PR#804/812/821):英语文本前端优化。
  • 2024.03.30(PR#894):API 格式改进。
  • 2024.04.03(PR#917):UVR5 WebUI 中 FFmpeg 命令字符串格式修正。
  • 2024.05.02(PR#953):修复 SoVITS 训练时 VQ 冻结遗漏(Issue#747,会导致音质劣化)。
  • 2024.05.19(PR#1102):数据预处理时对不受支持语言给出报错提示。
  • 2024.05.27(PR#1132):Hubert 抽取 bug 修复。

2.4 2024.06–2024.07:fast_inference 并入主干与话速控制

  • 2024.06.06:修复 GPT 微调时中文文本 BERT 特征读取错误(训练/推理不一致,导致质量劣化)。官方提示:若已用大量数据微调过,建议重训模型——这是更新历史中少见的"需要用户行动"的警示。
  • 2024.06.07(PR#1159):修复 s2_train.py 进度条。
  • 2024.06.10:UVR5 MDXNet 调 FFmpeg 字符串格式修正(含空格路径);纯句读/多句读输入处理优化(PR#1168/1169,Issue#1165)。
  • 2024.06.13:CPU 推理默认 batch size 小数点问题。
  • 2024.06.28(PR#1258/1265/1267):去噪/ASR 抛异常时不再中断整批音频处理。
  • 2024.06.29:多 GPU 训练多进程保存逻辑修正;删除冗余 my_utils.py(PR#1251)。
  • 2024.07.06(PR#1253):句读切分中小数点被误切分。
  • 2024.07.06:高速推理代码经验证合并进 main 分支,且无参考文本模式下也可用(对应 inference_webui_fast.py 的由来)。
  • 2024.07.13(PR#1294/1298):i18n 扫描重构与多语言配置文件更新——当前仓库 tools/i18n/ 下的 13 个语言包即来自这条脉络;(PR#1299)用户文件路径末尾斜杠引发命令行错误修复。
  • 2024.07.19(PR#756):GPT 训练使用自定义 bucket_sampler 时步数不一致——与 bucket_sampler.py 直接相关。
  • 2024.07.23(Commit#9588a3c5、PR#1340):支持合成话速调节(含"固定随机性只调速度"选项),api.py 同步更新。当前 api.pyspeed=1.0 参数及其透传链(get_ttstts_model)就是这条更新的产物。
  • 2024.07.27(PR#1306/1356):新增 BS-RoFormer 人声/伴奏分离模型(源码见 bsroformer.py);(PR#1351)中文文本前端改进。

三、V2(2024.08):第二代模型与粤语 ASR

日期 类型 内容
2024.08.01 杂务 WebUI 文件处理时路径自动填充(PR#1355)
2024.08.01 优化 启用 BS-RoFormer FP16 推理
2024.08.01 杂务 GPU 识别逻辑优化,支持用户输入任意 GPU 索引
2024.08.02 新機能 加入 GPT-SoVITS V2 模型(Commit#ff6c193f~de7ee7c7)
2024.08.03 新機能 用 FunASR 支持粤语 ASR(Commit#8a101474)
2024.08.06 修正/新機能 多音字处理逻辑优化(V2 专属,PR#1404/987/488)
2024.08.13 修正 只能上传 1 个参考音的 bug 修复;数据集缺少文件时弹出警告(PR#1422)
2024.08.20 新機能 上游 LangSegment 支持 SSML 标签的数字/电话/日期/时间优化(Issue#1508)
2024.08.20 修正 API 修正与优化(PR#1503)
2024.08.20 重构 fast_inference 分支合入主干(PR#1490)
2024.08.21 GPT-SoVITS V2 正式释放

仓库证据:

  • V2 预训练权重路径在 config.py 中固定为 gsv-v2final-pretrained/s2G2333k.pths1bert25hz-5kh-longer-epoch=12-step=369668.ckpt
  • 粤语 ASR 在 funasr_asr.py 中落地:language 可选 zh, yue, ja, en, ko, autoyuespeech_UniASR_asr_2pass-cantonese-CHS-16k 模型;推理端语言集合中亦新增 auto_yue/all_yue(见 TTS.pyv2_languages);
  • 多音字优化的载体是 g2pw 模块,其中 polyphonic.reppolyphonic.pickle 等数据文件即服务于该逻辑。

四、V3(2025.02):显存门槛的三级下降与 48kHz 超分

V3 是本阶段信息密度最高的版本条目,核心叙事是"同一个 14GB 显存要求如何在两个月内降到 8GB":

日期 类型 内容 显存门槛
2025.02.11 新機能 加入 V3 模型,微调需 14GB VRAM 14GB
2025.02.12 优化 注意力计算逻辑优化(PR#2010)
2025.02.12 新機能 微调启用梯度检查点(PR#2040) 12GB
2025.02.14 新機能 切换到新的语言切分工具,改善多语言混合切分;优化数字与英文处理(PR#2047/2062/2073)
2025.02.23 新機能 V3 支持 LoRA 训练(Commit#56509a17~514fb692) 8GB
2025.02.23 新機能 Mel Band Roformer 人声/乐器分离(PR#2078)
2025.02.26 修正 修复中文路径下 MeCab 报错(日/韩/多语言切分用,PR#2112/2114)
2025.02.27 新機能 24kHz→48kHz 音频超分模型,缓解 V3 生成 24K 音频的"闷"感(Issue#2085/2117)
2025.02.28 修正 模型识别不到的短 CJK 字符启用规则式检测(PR#2122,Issue#2116)
2025.02.28 修正 新增发声速度参数控制合成速度
2025.02.28 GPT-SoVITS V3 正式释放

仓库证据:

  • LoRA 训练实现见 s2_train_v3_lora.py:基于 peft.LoraConfigr=lora_ranklora_alpha=lora_rank)包裹 net_g.cfm,权重保存到带 lora_{rank} 后缀的 logs_s2_{version}_lora_{rank} 目录;配置侧由 configs/s2v2Pro.json 等训练配置提供 train/data/model 三段参数(32kHz 采样率、fp16_rungrad_ckptfreeze_quantizer 等字段)。
  • 48kHz 超分的模型目录即 tools/AP_BWE_main/24kto48k/,配套实现位于 tools/AP_BWE_main/ 的 dataset 与 model 模块。
  • 梯度检查点对应 s2v2Pro.json"grad_ckpt": false 这一训练开关,启用后可把显存需求从 14GB 压到 12GB(更新历史的表述)。
  • V3/V4/V2Pro/V2ProPlus 共用 GPT 底模 s1v3.ckpt,差异在 VITS 权重(TTS.py),这与 V4 章节"模型版本参数传递"的修复相呼应。

五、V4(2025.04)与 V2Pro 系列(2025.06)

5.1 V4:模型加入与并行推理

日期 类型 内容
2025.03.31 修正 依赖版本问题修复(PR#2236,涉及 PyOpenJTalk/ONNX/Pydantic/PyTorch-Lightning 多组 Issue)
2025.03.31 新機能 SoVITS v3 并行推理启用(PR#2241,ChasonJiang)
2025.03 修正 ONNX 运行时 GPU 推理支持:G2PW 内 ONNX 模型 CPU→GPU(削减 CPU 瓶颈)、foxjoy 去混响模型 GPU 推理
2025.04.01 修正 v3 并行推理锁释放、异步模型加载逻辑修复
2025.04.07 风格 Ruff 代码格式化;G2PW 链接更新(PR#2255)
2025.04.15 杂务 文档整理、新增 Python 3.11 支持、安装器更新(PR#2290)
2025.04.20 新機能 加入 GPT-SoVITS V4 模型(Commit#e0c452f0~9d481da6)
2025.04.21 新機能 启用 V4 并行推理(PR#2307)
2025.04.22 修正 模型版本参数传递修复(PR#2309);Numpy/Numba 版本不一致、librosa 更新(PR#2310,Issue#2308)
2025.04.22 GPT-SoVITS V4 正式释放(原文此处日期误写为 2024.04.22)
2025.04.22/25 杂务 Gradio 参数更新(PR#2311);Colab/Kaggle 笔记本脚本改进(PR#2322)

5.2 V2Pro 系列:从"新增模型"到"工程化打磨"

日期 类型 内容
2025.06.04 新機能 新增基于 TorchScript 的 V4 模型导出功能(PR#2417,对应 export_torch_script_v3v4.py
2025.06.04 新機能 正式引入 V2Pro / V2ProPlus 模型(Commit#b7c0c5ca~298ebb03)
2025.06.05 修正 config/inference_webui 初始化错误(PR#2426)
2025.06.05 新機能 自动精度检测逻辑优化;WebUI 前端折叠(Collapsible)组件(PR#2427 等)
2025.06.06 修正 "X一X"型多音字检测修正(PR#2427,wzy3650)
2025.06.09 修正 修复 ge.sum 数值溢出导致推理由无声(Commit#8056efe4)
2025.06.10 修正 实验名以空格结尾时 Windows 路径错误;v2pro 并行推理 bug(PR#2450)
2025.06.11 修正 v2pro ge 抽取时数值溢出修复
2025.06.17 优化 install.sh 逻辑优化(PR#2464/2482)
2025.06.27 优化 onnxruntime 加载逻辑优化(GPU/CPU 检测,PR#2489);语言切分与格式优化(PR#2488)

ge.sum 无音修复值得关注:ge(全局嵌入,global embedding)是 SoVITS 的音色/韵律全局条件,其数值溢出会使整段合成变无声——更新历史明确给出了根因(Commit#8056efe4 与 #ed89a023 两条分别修了 ge.sum 与 v2pro ge 抽取两处溢出)。

六、2025.07–2026.04:并行推理收尾、流式合成与工程稳定性

  • 2025.07.10:提升推理进程优先级(Win11 下 GPU 被限用的可能,Commit#426e1a2bb)。
  • 2025.07.16:修复 TTS.py 不识别 v2Pro/v2ProPlus 的版本判定问题并更新默认配置(PR#2490);并行推理模式下 v2pro 模型识别问题(Commit#4d8ebf85)——这两条与 TTS.pyassert self.version in ["v1","v2","v3","v4","v2Pro","v2ProPlus"] 的版本白名单直接相关。
  • 2025.07.17(PR#2531):Whisper ASR 支持更省资源的蒸馏模型。源码印证:fasterwhisper_asr.pydownload_model() 已内置 distil(distil-whisper-large-v3.5-ct2 / Systran/faster-distil-whisper-*)与 large-v3-turbo(mobiuslabsgmbh/faster-whisper-large-v3-turbo)的仓库映射。
  • 2025.07.18(PR#2536/2537):TTS_Config 逻辑优化;GPT 损失计算问题修复。
  • 2025.08.02(PR#2561):WSL + ROCm 支持
  • 2025.09.10(Commit#11aa78bd):修复环境变量可能非字符串的问题。
  • 2025.11.28(PR#2671/2678、PR#2469):流式推理——当前 api_v2.pystreaming_mode(0/1/2/3 四档:关闭/最佳质量最慢响应/中等/较低质量更快响应)、overlap_length(语义 token 重叠长度,默认 2)、min_chunk_length(最小块长,默认 16)即该功能的接口形态;实现侧涉及 stream_v2pro.pyStreamT2SModel / StepVitsModel 逐步解码结构。
  • 2025.11.28(PR#2636):数式文本前处理优化;(PR#2577)支持 VQ 分布训练;(PR#2627/2679)ASR 模型下载逻辑优化;(PR#2662)默认 batch size bug 修复。
  • 2025.12.30(PR#2703/2704):采样错误修复。
  • 2026.02.08/09:Conda 未接受服务条款导致构建失败修复(PR#2727);自动环境设置优化(PR#2732,对应 install.shDocker/ 内安装脚本)。
  • 2026.04.18 一批更新:G2PW 推理输入构建与多音字处理优化(PR#2763);Windows 单卡 V3 LoRA 训练流程改善(PR#2767);多模块杂项 bug(PR#2755);数据集处理错误处理提示(PR#2758);并行推理 bug(PR#2733);DPO 训练缺失漏字模拟支持修复(PR#2733/PR#2767 同期);ONNX 脚本缺失 import 修复(Commit#02425ea)。

七、把更新历史落到实操:关键配置与源码对照表

以下把更新历史中反复出现的配置项映射到当前仓库中的实际定义位置,便于按图索骥:

配置/参数 定义与生效位置 来源更新
is_half(环境变量,默认 True) config.py 读取后在 config.py 依据 GPU 能力覆盖 2024.01.26、2024.02.28
is_share(环境变量,默认 False) config.pywebui.py launch(share=is_share) 2024.01.21
infer_device 自动选择 config.py get_device_dtype_sm() 2024.01.26/29、2024.08.01
各 WebUI/API 端口 config.py:主 WebUI 9874、UVR5 9873、推理 9872、SubFix 9871、API 9880 2024.01 起
版本→预训练权重映射 config.pyTTS.pyTTS_Config.default_configs V2/V3/V4/V2Pro 各发布节点
speed 话速参数 api.py 参数表与 get_tts 透传 2024.07.23、2025.02.28
streaming_mode 流式合成 api_v2.py 请求参数(0/1/2/3 档) 2025.11.28
ASR 模型下载与蒸馏模型 fasterwhisper_asr.py download_model()funasr_asr.py 粤语/多语言 2024.02.07、2024.08.03、2025.07.17
LoRA 微调 s2_train_v3_lora.py LoraConfig(r=lora_rank) 2025.02.23
48kHz 超分 tools/AP_BWE_main/24kto48k/ 模型目录) 2025.02.27

八、阅读建议:如何继续深挖

  1. 查版本能力:先读 Changelog_JA.md(日文)或同目录其他语言 Changelog(如 Changelog_CN.md),再对照 config.py 的版本字典确认权重与目录约定;
  2. 查推理行为:以 TTS_infer_pack/TTS.pyTTS_Config 为版本/设备/精度判定入口,配合 configs/tts_infer.yaml 查看推理配置结构;
  3. 查训练能力:LoRA 训练看 s2_train_v3_lora.pyconfigs/s2v2Pro.json 中的 train 段(epochsbatch_sizefp16_rungrad_ckpt);GPT 侧分桶采样看 bucket_sampler.py
  4. 查多语言前端:语言切分逻辑集中在 text/LangSegmenter/text/cleaner.py,多音字数据在 text/g2pw/——更新历史中 2024.02–2026.04 的多数"文本前端"条目最终都落在这几个模块。

适用前提与限制:本文所有事实均以当前仓库快照为准(Changelog 更新至 2026.04.18);文中引用的 PR/Commit 编号仅作为更新历史中的追溯标识,实际验证需以各编号对应的提交内容为准。涉及显存门槛(14GB/12GB/8GB)、推理提速百分比等数据,均为更新历史原文给出的经验值,会随硬件与 PyTorch/CUDA 组合变化。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
527
590
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
904
1.82 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
docsdocs
暂无描述
Markdown
889
5.78 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.52 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.33 K
1.45 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
980
502
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384