TangYuGe GPT-SoVITS v2ProPlus(唐语歌语音合成模型)

English summary. A Chinese text-to-speech model of the character Tang Yuge (唐语歌) from the visual novel Sparkling Memories (夏日花火), fine-tuned from the official GPT-SoVITS v2ProPlus base models. This repository is self-contained: it ships the fine-tuned GPT and SoVITS weights, the auxiliary pretrained models required for inference (BERT, HuBERT, speaker verification, G2PW, language identification), the official GPT-SoVITS base models for anyone who wants to continue training, 19 scene reference clips with their prompt texts, ready-to-use profiles and scripts. Clone GPT-SoVITS at the verified commit, install its Python dependencies, run scripts/install_pretrained.py, and you can synthesize speech. Chinese only.

本仓库是基于 GPT-SoVITS v2ProPlus 底模微调的唐语歌(《夏日花火》角色)中文语音合成模型,并附带推理所需的辅助模型,以及供继续训练使用的官方底模。下载本仓库、准备好 GPT-SoVITS 运行环境后即可直接使用。

旧版本(GPT-SoVITS v2Pro 微调)见 shiqianyan/TangYuGe-GPT-SoVITS-v2Pro。本版本在相同训练数据上改用 v2ProPlus 底模,背景底噪和电音明显更少,推荐优先使用本版本。

模型信息

项目 内容
模型类型 GPT-SoVITS 少样本语音克隆 / 文本转语音(TTS)
底模 GPT-SoVITS v2ProPlus(s2Gv2ProPlus.pth、s2Dv2ProPlus.pth)与 GPT 底模 s1v3.ckpt(随包附带,仅继续训练时使用)
微调方式 全参数微调(非 LoRA),SoVITS 与 GPT 两个模型分别训练
语言 中文(普通话)
输出 32 kHz 单声道 WAV
训练数据 角色唐语歌的游戏语音 561 条,约 43 分钟
推荐采样参数 top_k=5、top_p=0.8、temperature=0.7,切句方式 cut5
验证环境 GPT-SoVITS 提交 ea2d2a8、Python 3.10、PyTorch 2.4.0 + CUDA 12.4、NVIDIA RTX 4060 Laptop 8GB

适用范围

  • 适合:为唐语歌这一角色生成中文台词语音,例如同人创作、游戏 Mod、角色对话机器人、个人学习研究。
  • 不适合:非中文文本;需要与原声完全一致的商业配音;任何冒充真实人物、误导他人或违法的用途。生成内容请标注为 AI 合成。

快速开始

1. 准备 GPT-SoVITS

git clone https://github.com/RVC-Boss/GPT-SoVITS.git
cd GPT-SoVITS
git checkout ea2d2a8

按 GPT-SoVITS 官方说明安装 Python 依赖(Python 3.10,推荐 NVIDIA GPU)。本仓库已附带所需预训练模型,不需要再单独下载 GPT-SoVITS 的预训练模型包。

2. 下载本仓库

建议与 GPT-SoVITS 放在同一个父目录下:

cd ..
hf download shiqianyan/TangYuGe-GPT-SoVITS-v2ProPlus --local-dir TangYuGe-GPT-SoVITS-v2ProPlus
<workspace>/
├── GPT-SoVITS/
└── TangYuGe-GPT-SoVITS-v2ProPlus/

3. 安装预训练模型

python TangYuGe-GPT-SoVITS-v2ProPlus/scripts/install_pretrained.py --gptsovits-root GPT-SoVITS

脚本会校验文件哈希,再把 GPT-SoVITS-overlay/ 中的模型复制到 GPT-SoVITS 对应位置(已存在且相同的文件会跳过)。

随包的预训练模型分为两类:

类别 文件 什么时候需要
辅助模型 chinese-roberta-wwm-ext-large(BERT)、chinese-hubert-base(HuBERT)、sv/(声纹)、text/G2PWModel(多音字)、fast_langdetect(语种识别) 推理必需
官方 v2ProPlus 底模 v2Pro/s2Gv2ProPlus.pth、v2Pro/s2Dv2ProPlus.pth、s1v3.ckpt 只在继续训练时需要,推理不会加载

weights/ 中的微调权重是全参数微调得到的完整推理模型,只做语音合成时不需要底模。GPT-SoVITS 保存微调权重时会去掉只在训练中使用的后验编码器(enc_q)和判别器,因此如果要在本模型基础上继续训练,需要用底模补回这两部分;这也是本仓库附带底模的原因。

4. 生成语音

以下命令均使用 GPT-SoVITS 的 Python 环境执行:

# 默认使用主 profile(严肃、长句)
python TangYuGe-GPT-SoVITS-v2ProPlus/scripts/run_tangyuge_infer.py --text "这里填写要合成的中文文本。" --output output.wav

# 切换场景:换一个 profile
python TangYuGe-GPT-SoVITS-v2ProPlus/scripts/run_tangyuge_infer.py --voice-profile TangYuGe-GPT-SoVITS-v2ProPlus/profiles/morning.yaml --text "早上好呀,今天也要加油哦。" --output morning.wav

若两个目录不在同一父目录下,追加 --gptsovits-root <GPT-SoVITS 路径>。

5. 启动 HTTP 服务(可选)

python TangYuGe-GPT-SoVITS-v2ProPlus/scripts/start_tangyuge_bridge.py

启动后在 127.0.0.1:9881 提供 /tts 接口(后端 GPT-SoVITS api_v2 运行在 9880)。服务会根据文本自动选择场景,也可显式指定:

curl -X POST http://127.0.0.1:9881/tts -H "Content-Type: application/json; charset=utf-8" \
  -d '{"text": "早上好呀,今天也要加油哦。", "profile": "morning"}' --output output.wav

请求字段:text(必填)、profile / scene / reference(选择场景)、top_k、top_p、temperature 等。辅助接口:GET /health、GET /profiles、GET /references。

在 GPT-SoVITS WebUI 中使用

安装预训练模型后,在 WebUI 推理页选择:

  • GPT 模型:weights/tangyuge_v2pp-e14.ckpt
  • SoVITS 模型:weights/tangyuge_v2pp_e4_s564.pth
  • 参考音频:references/ 中任一文件,参考文本必须使用 manifests/references.yaml 中与之绑定的 prompt_text
  • 采样参数:top_k=5、top_p=0.8、temperature=0.7

场景参考音频(reference)

GPT-SoVITS 的语气和节奏很大程度上由参考音频决定。本仓库提供 19 个场景,每个场景是一条原游戏语音及其台词文本,打包为 profiles/*.yaml:

Profile 适用文本
main_hybrid_mid(默认) 严肃说明、长台词、情绪稳定的表达
morning 早安、问候、短句寒暄
neutral_polite 普通说明、礼貌回答
soft_daily 温柔、日常、低压交流
question_clear / question_firm 关切式疑问 / 质询式疑问
lively_daily / casual_invite 轻快短句 / 熟人邀请
narration_calm 旁白、叙述
apology 道歉、礼貌退让
bright_fireworks / high_brightness_exclaim / exclaim 明亮期待 / 开心短句 / 惊讶感叹
intimate_reassure / romantic_soft 亲密安抚 / 含蓄恋爱向
command_gentle 提醒、劝阻
food_daily / cafeteria_ordering 饮食日常 / 点单
low_energy_discussion 克制解释、舒缓讨论

更换参考音频时必须同时更换对应的参考文本,否则发音与节奏会明显变差。

仓库结构

├── README.md
├── LICENSE                        # Apache-2.0
├── THIRD_PARTY.md                 # 第三方预训练模型来源
├── weights/                       # 微调权重(fp16)
│   ├── tangyuge_v2pp-e14.ckpt     # GPT(文本→语义)
│   └── tangyuge_v2pp_e4_s564.pth  # SoVITS(语义→声学)
├── GPT-SoVITS-overlay/            # 推理用辅助模型 + 继续训练用底模,与 GPT-SoVITS 目录同构
│   └── GPT_SoVITS/
│       ├── pretrained_models/     # 底模、BERT、HuBERT、声纹模型、语种识别模型
│       └── text/G2PWModel/        # 中文多音字模型
├── configs/tts_infer_pack.yaml    # GPT-SoVITS 推理配置
├── profiles/                      # 19 个场景 profile
├── references/                    # 19 条场景参考音频
├── samples/                       # 合成示例
├── scripts/                       # 安装、推理、HTTP 服务脚本
└── manifests/
    ├── references.yaml            # 参考音频与参考文本的绑定清单
    ├── training_report.md         # 训练与评测报告
    └── checksums.sha256           # 文件校验清单

训练细节

  • 数据:从游戏中提取的唐语歌语音 702 条(约 48.8 分钟),筛选 1–12 秒、有效汉字不少于 6 个的 561 条(约 43.1 分钟)。用语音识别逐条核对过台词文本,未发现标注错误。
  • SoVITS:batch size 4,学习率 1e-4,fp16 混合精度,共训练 8 个 epoch,选用第 4 个 epoch(564 步)。
  • GPT:batch size 4,学习率 0.002,16-bit 混合精度,共训练 15 个 epoch,选用第 14 个 epoch。
  • 选型:在 25 句压力测试集、4 条参考音频、固定随机种子下,对多个 epoch 组合与采样参数做客观评测,再经两轮人工盲听确定最终组合。完整过程见 manifests/training_report.md。

评测

与旧版 v2Pro 微调模型在相同文本、相同参考音频、相同采样参数下对比(配对 bootstrap,95% 置信区间不含 0 视为显著):

指标 结果
停顿处底噪电平 降低约 5–6 dB(显著),接近原声水平
DNSMOS 背景噪声分(BAK) +0.21(显著)
DNSMOS 整体质量分(OVRL) +0.12(显著)
音高细碎抖动 降低约 9%(显著)
发音准确率(ASR 拼音错误率) 与旧版无显著差异,约 1–2%
声纹相似度 与旧版无显著差异

局限性

  • 仅支持中文;中英混合文本效果未验证。
  • 极短的句子(如“好呀,就这样吧”)偶尔会只读出前半句,这是 GPT-SoVITS 自回归生成的共性问题;保守的采样参数可以减少但不能消除。
  • 效果依赖参考音频与参考文本的配对;参考文本写错会导致发音、节奏异常。
  • 音色与语气受限于约 43 分钟的训练数据,强烈情绪(大喊、哭泣等)表现有限。
  • 在 CPU 上推理时,部分 Intel 混合架构处理器(已在 i7-13650HX 上复现)的 PyTorch oneDNN 多线程卷积会算出错误结果;GPU 推理不受影响。CPU 推理请设置 torch.backends.mkldnn.enabled = False 或使用单线程。

许可证

本仓库以 Apache-2.0 许可发布。随包附带的第三方预训练模型的来源说明见 THIRD_PARTY.md。

致谢

引用

@misc{tangyuge_gptsovits_v2proplus,
  title  = {TangYuGe GPT-SoVITS v2ProPlus},
  author = {shiqianyan},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/shiqianyan/TangYuGe-GPT-SoVITS-v2ProPlus}}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for shiqianyan/TangYuGe-GPT-SoVITS-v2ProPlus

Quantized
(5)
this model