news 2026/8/30 10:03:21

GPT-SoVITS 实战:1 分钟语料完成语音合成模型训练

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GPT-SoVITS 实战:1 分钟语料完成语音合成模型训练

GPT-SoVITS 实战:1 分钟语料完成语音合成模型训练

【免费下载链接】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 是一个少样本语音克隆的语音合成工具,用 1 分钟左右的干净语料,就能训练出效果可用的 TTS 模型。典型场景:

  • 为角色、主播克隆专属音色
  • 免费 GPU 上低成本微调语音模型
  • 批量合成多语言配音音频

下面从环境搭建开始,带你完整跑通全流程。

环境准备与一键启动

克隆项目仓库

把源码拉到本地。

git clone https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS cd GPT-SoVITS

目录里出现webui.py、install.sh 即表示克隆完成。

创建独立的 Python 环境

项目依赖 Python 3.10,用 conda 隔离,避免污染系统环境。

conda create -n GPTSoVITS python=3.10 -y conda activate GPTSoVITS

终端提示符前出现(GPTSoVITS)即表示环境已激活。

安装依赖并下载预训练模型

运行 install.sh 一次性装好 PyTorch 并拉取预训练权重。--device按你的 CUDA 版本选,--source按网络情况选。

bash install.sh --device CU126 --source HF --download-uvr5

脚本结束且没有红色[ERROR]输出,即表示安装成功。

模型与数据准备

对比三个模型权重下载源

来源适用场景命令前缀
HF海外服务器、直连 Hugging Face 正常bash install.sh --source HF
HF-Mirror国内访问 HF 慢,走镜像加速bash install.sh --source HF-Mirror
ModelScope国内服务器首选,无需代理bash install.sh --source ModelScope

三个源只是下载通道,落到本地的文件完全一致。

校验下载的模型文件

预训练权重统一放在GPT_SoVITS/pretrained_models/,确认关键文件存在且非零体积。

ls -lh GPT_SoVITS/pretrained_models/chinese-hubert-base GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large

两条目录都有几百 MB 到数 GB 的条目,说明权重完整。

放置待训练的音色数据

原始音频和对应文本清单放到同一目录,例如logs/slicer_opt存切片音频,同级放一份文本文件。切片、降噪、人声分离都可在 webui.py 的主界面里点按钮完成,对应 tools/slice_audio.py、tools/cmd-denoise.py、tools/uvr5/webui.py。

核心训练与推理流程

数据预处理:三步特征提取

在 WebUI 的"0-数据集获取"页依次执行,背后对应三个脚本:

python GPT_SoVITS/prepare_datasets/1-get-text.py python GPT_SoVITS/prepare_datasets/2-get-hubert-wav32k.py python GPT_SoVITS/prepare_datasets/3-get-semantic.py

第一步做文本分词,输出2-name2text.txt;第二步提取自监督语音特征;第三步提取语义 Token,输出6-name2semantic.tsv。三个文件都在实验目录下,是后面训练的输入。

配置训练超参数

S1(GPT)阶段读 GPT_SoVITS/configs/s1longer-v2.yaml,S2(SoVITS)阶段读 GPT_SoVITS/configs/s2.json。在 WebUI 的"1A/1B"页填好实验名后,参数会写入临时配置,无需手改仓库文件。

参数默认值调大/调小的影响
batch_sizeS1 为 8,S2 为 32调大显存占用更高、单步更稳;调小可救显存,但收敛变慢
epochsS1 为 20,S2 为 100调大音色更像但易过拟合;调小则学习不充分
learning_rateS1 为 0.01,S2 为 0.0001调大收敛快但易震荡;调小更稳但耗时
save_every_n_epoch1调大减少磁盘占用;调小留更多历史权重可回退
text_low_lr_rate0.4S2 专用,控制文本嵌入的学习速率,一般不动

执行训练:先 S1 后 S2

S1 训练语义模型,S2 训练声学模型,顺序不能反。

python GPT_SoVITS/s1_train.py --config_file /tmp/tmp_s1.yaml python GPT_SoVITS/s2_train.py --config /tmp/tmp_s2.json

直接命令行跑的话,先用 WebUI 生成一次临时配置,把里面的路径抄出来即可;更省事的办法是全程用 WebUI 按钮,它会替你拼好命令。

效果验证:跑一次最小合成

训练完成后,用 GPT_SoVITS/inference_cli.py 合成一句试听:

python GPT_SoVITS/inference_cli.py --gpt_model GPT_weights/我的实验-e10.ckpt --sovits_model SoVITS_weights/我的实验_e10_s500.pth --ref_audio logs/slicer_opt/0001.wav --ref_text logs/ref_text.txt --output_path out_wav

out_wav目录生成若干.wav文件,人声与参考音色接近、无明显电流音,即验证通过。

部署与模型导出

启动 WebUI:

export is_share=True && python webui.py

本地访问http://localhost:9874,TTS 推理页在 9872 端口;is_share=True时会额外给出一条公共链接,适合 Colab 免费 GPU 部署。

批量合成用一行命令:

python GPT_SoVITS/inference_cli.py --gpt_model 权重.ckpt --sovits_model 权重.pth --ref_audio 参考.wav --ref_text 参考文本.txt --output_path 输出目录

模型导出为 ONNX 用 GPT_SoVITS/export_torch_script.py,参数与上面推理命令相同,产物输出到指定目录。

踩坑速查

显存 OOM

现象:训练中途报 CUDA out of memory。

原因:batch_size 超过当前显存上限。

解法

# 在 WebUI 的 1B 页把 batch size 减半,S2 页可勾选开启梯度检查点

训练中断后丢失进度

现象:Colab 掉线,任务重跑后从零开始。

原因:换了实验名或输出目录,找不到旧断点。

解法:保持实验名不变。S1 会自动加载logs_s1/*/ckpt下最新断点,S2 自动加载G_*.pth,重跑同一目录即断点续训。

预训练模型文件缺失

现象:启动时报"以下模型不存在"警告。

原因:安装时跳过了模型下载或选错源。

解法

bash install.sh --device CU126 --source ModelScope

文本文件与音频对不上

现象:第一步特征提取后得到空文本文件,训练失败。

原因:文本文件里的文件名和音频文件名不一致。

解法

# 用 WebUI 的语音切分功能重新生成,它会同步产出音频和对应文本文件

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 10:01:37

分布式训练的延迟与成本取舍

分布式训练的延迟与成本取舍 本文围绕“延迟和成本怎么一起看”整理可复现的检查思路。所有阈值、配置和结果均应在隔离环境中记录输入、版本与资源条件后再解释;下文示例不对应真实组织、用户、流量或成本数据。 1. 用受控样例界定问题 # 执行 NVTOP 和 nvidia-s…

作者头像 李华
网站建设 2026/8/30 10:01:23

OOP为何存在:从过程式失控到封装多态的工程解药

先给一个直球结论:OOP 不是面试题里的背诵素材,也不是为了把代码写得“看起来高级”,而是软件规模变大之后,用来对抗复杂度失控的一套工程方案。你可以回想一下自己维护过的项目:当业务逻辑只有几百行时,函…

作者头像 李华
网站建设 2026/8/30 10:00:36

nanoGPT:如何用最简代码跑通 GPT 预训练模型完整指南

nanoGPT:如何用最简代码跑通 GPT 预训练模型完整指南 【免费下载链接】nanoGPT The simplest, fastest repository for training/finetuning medium-sized GPTs. 项目地址: https://gitcode.com/GitHub_Trending/na/nanoGPT nanoGPT 是 Andrej Karpathy 维护…

作者头像 李华
网站建设 2026/8/30 10:00:29

AI应用安全护栏:从提示注入到大模型工程化边界实践

当我们在设计展、论文摘要或科技媒体上看到“Sketching the new dysto-utopian world with presence of AI”这样的标题时,大多数讨论都会滑向哲学追问:AI 会带来乌托邦,还是恶托邦?但这个问题如果只停留在概念层面,就…

作者头像 李华
网站建设 2026/8/30 9:57:47

Neoswarm:在Neovim中编排与监控AI Agent任务

如果你和很多 Neovim 用户一样,已经习惯了“键盘流”的编辑器操作方式,那么面对如今越来越复杂的 AI 编程助手时,大概率会有一个类似的困惑:这些 AI Agent 工具虽然强大,但它们的交互界面、任务状态、多个并发任务的调…

作者头像 李华