☰
GPT-SoVITS语音克隆实战:从5秒试音到1分钟定音
2026/10/26 8:34:56 网站建设 项目流程

GPT-SoVITS语音克隆实战:从5秒试音到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

手里只有一段 40 秒的目标人物录音,能不能让 AI 用这个声音念稿?GPT-SoVITS 就是为这类场景做的:5 秒参考音频即可零样本试音,1 分钟素材做少样本语音合成微调后锁定目标音色,还支持跨语言推理。下面不讲原理,只走四个决策节点:跑起来、喂数据、训音色、部署。

能力地图:10 秒判断是否适合你

维度情况
核心能力零样本 TTS(5 秒音频)、少样本微调(1 分钟)、跨语言推理
语言覆盖zh 中文 / en 英语 / ja 日语 / ko 韩语 / yue 粤语
适合谁会 Python、能看 README 的开发者,无需语音管线背景
硬件门槛NVIDIA GPU + CUDA 12.6/12.8;也支持 CPU、ROCm、Apple 芯片
数据门槛1 分钟清晰音频可得可用音色
推理速度RTF 0.014(4090)、0.526(M4 CPU),v2ProPlus 实测

先跑起来:最短路径启动 WebUI

这节只回答一个问题:最少敲几条命令让模型出声。

最短路径。Linux / macOS 上克隆仓库后执行 install.sh,它会一次完成环境、PyTorch 与预训练模型的安装:

git clone https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS cd GPT-SoVITS bash install.sh --device CU126 --source HF-Mirror --download-uvr5

--device取 CU126 / CU128 / ROCM / CPU,--source取 HF / HF-Mirror / ModelScope,--download-uvr5附带人声分离模型。装完直接启动主 WebUI:

python webui.py zh_CN

浏览器会自动打开 0.0.0.0:9874 的主界面,集成数据处理、训练、推理全部标签页。Windows 用户可直接下载集成包双击go-webui.bat;手动安装则用install.ps1 --Device CU126 --Source HF-Mirror。

📷 建议此处插入:GPT-SoVITS WebUI 主界面截图(端口 9874)

进阶选项。① Docker:docker-compose.yaml里Lite服务不含 ASR 与 UVR5 模型、体积更小,完整版功能齐全:

docker compose run --service-ports GPT-SoVITS-CU126

环境变量is_half=true开启 fp16 省显存;Windows 的 Docker Desktop 记得把shm_size调到 16g,否则可能行为异常。② 手动安装:pip install -r extra-req.txt --no-deps接pip install -r requirements.txt,另需 ffmpeg(Ubuntu/Debian:apt install ffmpeg libsox-dev)。③ macOS 的 Apple 芯片目前建议--device CPU,官方说明 GPU 训练质量明显低于其他设备。已测环境参考:Python 3.10 + PyTorch 2.5.1(CUDA 12.4)、Python 3.11 + PyTorch 2.7.0(CUDA 12.8)、Python 3.9 + PyTorch 2.2.2(CPU)。

喂数据:切片、自动标注与清洗

这节解决:把一段长录音变成能训练的语料。

最短路径(WebUI 一条龙)。主 WebUI 的数据处理页里填入原始音频路径,按流程走:切片 → 降噪(可选)→ ASR 自动转写 → 人工校对 → 切到训练页。ASR 默认 Fun-ASR-Nano(支持中、英、日、韩及自动检测),粤语走经典 FunASR;也可选 faster-whisper,模型首次使用自动下载。

📷 建议此处插入:WebUI 数据处理页截图(切片、ASR、校对流程)

进阶选项(命令行切分)。切片脚本是tools/slicer2.py,默认静默阈值 -40 dB、最短片段 5000 ms。短句语料多时把min_length压到 2000 ms,避免切分后大量丢弃:

python tools/slicer2.py "raw.wav" --out sliced --db_thresh -40 --min_length 2000 --min_interval 300 --hop_size 10
参数默认值说明
--db_thresh-40静默判定阈值(dB),切太碎调高、切不够调低
--min_length5000每段最小时长(ms),短句语料设 2000
--min_interval300触发切分所需的最短静默(ms)
--max_sil_kept500每段首尾保留的静默(ms)

标注用.list文件,每行四段:

音频路径|说话人名|语言|文本

语言代码取 zh / en / ja / ko / yue。带 BGM 的录音先过人声分离:python tools/uvr5/webui.py(端口 9873),分离质量直接决定音色相似度。训练数据统一转成 16 kHz WAV,每段建议 1-10 秒。

训出音色:两段式微调与关键超参

这节解决:数据量多少、轮数多少、先动哪个参数。

数据量。5 秒只用于零样本试音(不训练);1 分钟可做可用少样本音色;10 分钟以上结果才稳定。参考音频与训练音频不是同一人,音色会漂移,先保证一致性再谈其他。

最短路径。WebUI 训练页内一次完成:S1 训练 GPT(文本 → 语义 token),S2 训练 SoVITS(语义 token → 波形)。默认配置 S1 跑 300 轮、S2 跑 100 轮,通常无需改参数就能出结果;训练中每隔几轮试听一次,音色已锁定就提前停,不必跑满。

进阶选项(命令行与调参)。入口是GPT_SoVITS/s1_train.py与GPT_SoVITS/s2_train.py,参数在GPT_SoVITS/configs/的 s1.yaml 与 s2.json 里改:

python GPT_SoVITS/s1_train.py python GPT_SoVITS/s2_train.py
项默认值何时动
S1 epochs300s1.yaml,batch_size 8 + gradient_accumulation 4
S1 lr0.01(从 1e-5 warmup)不建议动
S2 learning_rate1e-4数据 < 10 min 且过拟合时降到 5e-5
S2 batch_size32显存不足减半
精度fp16s2.json 的 fp16_run 默认开启

显存紧张可用GPT_SoVITS/s2_train_v3_lora.py走 LoRA 微调,占用更小。loss 曲线看 TensorBoard;loss 平了但音色不似,先查数据质量,再谈调参。

调出来与部署:WebUI、CLI 与 API

这节解决:训好的模型怎么消费。

最短路径。独立推理 WebUI 一条命令:

python GPT_SoVITS/inference_webui.py

上传 5 秒参考音频 + 参考文本,粘贴目标文本即可;推理语言与训练语言不同时跨语言推理也有效。命令行批处理用python GPT_SoVITS/inference_cli.py。需要对外服务时,根目录api.py、api_v2.py是现成 HTTP 入口,多说话人、语速控制都能带上。

进阶选项(提速)。RTF 实测(v2ProPlus):4060Ti 为 0.028,4090 为 0.014(约 4 分钟音频合成耗时 3.36 秒),M4 CPU 为 0.526。优化顺序:确认is_half=true(GPU 支持时开 fp16);用GPT_SoVITS/onnx_export.py导出 ONNX 再推理;纯 CPU 场景考虑 CPU 优化推理版本。

📷 建议此处插入:推理 WebUI 合成结果界面截图

版本脉络:V1 到 V2Pro 选型表

这节解决:装环境时该选哪套预训练模型。

版本主要变化特点
V1基线,中/英/日成本最低
V2新增韩语/粤语,文本前端优化,预训练 2k→5k 小时低质量参考音频更稳
V3音色相似度更高,GPT 更稳(少重复/遗漏),情感更足原生输出 24k
V4修复 V3 金属音,原生输出 48k可直接替代 V3
V2Pro性能超 V4,保持 V2 的硬件成本与速度显存略高于 V2

v1/v2/v2Pro 是一组特性,v3/v4 是另一组:训练集音质一般时,v1/v2/v2Pro 能出像样结果而 v3/v4 不能;v3/v4 的音色更贴参考音频而非训练集整体。选型就一句:数据质量一般选 v2Pro,数据干净且显存足选 v4,老显卡选 v2。

踩坑实录:四个高频问题怎么修

这节把最常被问的四个问题各拆成现象、定位、修法三步。

显存溢出。现象:S2 训练或合成时 CUDA OOM。定位:s2.json 的 batch_size 默认 32,对小显存过大。修法:降到 16,S1 保持 gradient_accumulation 4,并确认 fp16_run 为 true。

torch 用不上 CUDA。现象:torch.cuda.is_available()返回 False 或直接报错。定位:nvidia-smi显示驱动支持的 CUDA 上限,对照 torch 安装版本。修法:重装 cu126 或 cu128 对应 wheel;install.sh 在找不到驱动时会自动回退 CPU。

合成有金属音。现象:输出带金属质感的 ringing。定位:在用 v3 权重,其非整数倍上采样 + 24k 原生输出是根因。修法:换 v4 预训练模型(s2v4.pth + vocoder.pth),输出直接是 48k,声音也更亮。

推理速度不达标。现象:RTF 明显高于 GPU 基线(4090 应到 0.014)。定位:is_half 未开,或实际跑在 CPU 上。修法:设 is_half 为 true;或导出 ONNX 后加载;纯 CPU 部署先评估是否可接受 0.526 的 RTF。

落地场景

给客服录音换声音

收集 1 分钟原说话人干净录音做微调,整段文案即可用该音色重新配音;跨语言推理意味着中文语料也能念英文,适合多语种物料。先拿 5 秒零样本试音验一版,效果合适再投入 1 分钟微调。

做多说话人 TTS 服务

.list标注里给不同说话人填不同 speaker_name,同一个模型即可承载多音色。根目录 api_v2.py 提供现成 HTTP 接口,配合 Docker 部署可直接接外部合成请求。

1 分钟的数据门槛把语音克隆的门槛从棚录拉低到了手机录一嗓子。跑通之后,剩下的事就是选对版本,再调 batch_size 和 learning_rate 两个数。

  • 5 秒音频零样本试音
  • 1 分钟微调锁定音色
  • 五语种加跨语言推理
  • WebUI/CLI/API 现成
  • Docker 完整部署

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询