不训练也能出好声音?GPT-SoVITS v2ProPlus 开源语音合成底模的底气在哪
【免费下载链接】GPT-SoVITS1 min voice data can also be used to train a good TTS model! (few shot voice cloning)项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS
在 GPT-SoVITS 的 WebUI 底模下拉框里选一下v2ProPlus,贴一段 5 秒参考音频,出来的声音就能直接用——不用喂数据、不用调参数。这是这个开源语音合成项目"免训练底模"路线的含义。我对着配置和推理代码翻了一遍v2ProPlus相对上一代v2Pro的改动,发现它不是"换了个更大的网络",而是几处小而实的改动:解码器通道加宽、底模文件独立、权重目录分开。这篇文章把改动落到代码里讲清楚,再说怎么三分钟上手。
它和上一代到底差在哪
一句话定位:v2ProPlus是一个零样本语音克隆拿来就能用、音质上探一档的高品质底模。
具体可感知的差异有三处:
- 波形解码的第一级变厚了。Pro 家族不走外接声码器,mel 频谱由内置解码器直接出 32kHz 波形。配置 GPT_SoVITS/configs/s2v2ProPlus.json 里,解码器首个上采样层的初始通道从
v2Pro的 512 提到 768,对应 kernel 从 16 提到 20。通道更宽,高频细节的表达空间就更大,这是听感变"亮"的直接来源。 - 底模文件真正独立了。SoVITS 侧是单独的
s2Gv2ProPlus.pth,权重目录也是独立的SoVITS_weights_v2ProPlus/GPT_weights_v2ProPlus;GPT 侧则继续共享s1v3.ckpt底模。 - 判别器变严格了。Pro 家族训练时的多周期判别器比常规版本多了 17、23 两个素数周期分支,对抗监督更密。
| 你关心什么 | v2Pro | v2ProPlus |
|---|---|---|
| 底模 SoVITS 文件 | s2Gv2Pro.pth | s2Gv2ProPlus.pth(独立训练) |
| 首个上采样初始通道 | 512 | 768(+50%) |
| 首个上采样 kernel | 16 | 20 |
| 权重目录 | SoVITS_weights_v2Pro | SoVITS_weights_v2ProPlus |
| GPT 底模 | s1v3.ckpt | s1v3.ckpt(共享) |
核心改动拆解:代码里藏了什么
解码器加宽 50%,骨架没动
s2v2ProPlus.json里除了通道数,其余和v2Pro基本一致:上采样率仍是[10, 8, 2, 2, 2],采样率 32kHz,语义帧率 25Hz。换句话说,不是重新设计了解码结构,而是把第一级上采样那层的特征图加宽了五成。第一级上采样最决定波形的"质感",这里加宽等于直接补高频细节。
判别器用更多"素数"检验波形
落到 GPT_SoVITS/module/models.py 里,Pro 家族和普通版本差在几行分支:
这段代码决定多周期判别器沿哪些周期采样来检验波形真伪
if version in v2pro_set: periods = [2, 3, 5, 7, 11, 17, 23] else: periods = [2, 3, 5, 7, 11]多周期判别器可以这么理解:把波形沿不同周期降采样后,让判别器判断"像不像真人"。周期列表加上 17 和 23,等于假波形要在更多位置被"查岗"。好比安检多了两道更细的关卡,生成端在同等的对抗压力下,只能把更细粒度的周期做干净——听感上的"金属音"往往就来自这些细粒度周期没对齐。
Pro 家族多加载一个说话人验证模型
推理入口 GPT_SoVITS/TTS_infer_pack/TTS.py 里还有一处小分叉:
权重路径含 "Pro" 时,额外初始化一个说话人验证模型
version, model_version, if_lora_v3 = get_sovits_version_from_path_fast(weights_path) if "Pro" in model_version: self.init_sv_model()这个说话人验证模型用来算音色相似度。零样本克隆总要知道"我像不像这个人",它就是这个参照物。底模路线既然主打"开箱即用",给一个可量化的相似度高低,比让用户自己猜靠谱。
训练端做了什么让它更好听
配置里的改动都是"结构","策略"集中在底模训练这一侧,原因都挺好解释:
- GPT 复用,只重训 SoVITS。GPT 负责把文本变成语义序列,
s1v3.ckpt已经够稳;音色和波形质量在 SoVITS 侧决定。只重训后者,算力省下来,文本端行为也不变。 - 32kHz 直出,没有二级声码器。v3/v4 路线要再挂一个外接 BigVGAN 声码器;Pro 家族模型内部直接出波形。链路少一级,误差传播就少一级,推理也快一截。
- 更强对抗监督 + fp16 兜成本。配置里
fp16_run开着,batch_size32,segment 20480 采样(约 0.64 秒 @32k)。判别器多两个分支带来的训练开销,基本被 fp16 摊平。
说白了,v2ProPlus的训练策略是"同骨架、宽一档、多一层监督",追求的是音质上限,不是架构翻新。
上手体验:三分钟跑通 🎧
git clone https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS,按install.sh(或install.ps1)装环境、下模型。- 运行
python webui.py,等主界面起完。 - 在 TTS 推理页底模下拉选"不训练直接推v2ProPlus底模!"。
- 贴 5~10 秒干净人声的参考音频,填上参考文本和要合成的文本。
- 点生成,出来跟参考音频对着听一遍。
API(api.py)和命令行(inference_cli.py)同样支持这个底模,但第一次体验,WebUI 最直观。听感提示:重点听句中拖长音的部分(比如姓氏、地名),对比v2Pro的高频——v2ProPlus应该更实、更亮,细碎的高频毛刺更少。
还没解决的 & 下一步
实话实说:通道加宽之后,推理的显存和速度都比v2Pro略重,低端卡上基本得开 fp16 才舒服;零样本"开箱即用"是泛化能力,参考音色离底模覆盖较远时,还得走小样本训练——仓库里已有 LoRA 训练脚本兜底;长文本跨段的一致性也还有打磨空间,段落长建议先分句。
对普通用户,现在直接去 WebUI 选v2ProPlus试一把就行;想深挖源码的人,从GPT_SoVITS/module/models.py的解码器和判别器读起,这一版的音质差都在那几行参数里。
【免费下载链接】GPT-SoVITS1 min voice data can also be used to train a good TTS model! (few shot voice cloning)项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考