5 秒参考音频出中文 TTS:GPT-SoVITS 少样本语音克隆实操指南

5 秒参考音频出中文 TTS:GPT-SoVITS 少样本语音克隆实操指南

【免费下载链接】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 是一个面向少样本语音克隆的开源 TTS 项目:给 5 秒人声做零样本合成,或者用 1 分钟录音微调出专属音色,全程在 Gradio WebUI 里完成。合成质量怎么保证?看它把"说内容"和"定音色"拆成两个独立模型,两段都可以单独微调,数据门槛才压得这么低。

两段式推理管线:5 秒人声为什么就能开口说话

合成在代码上对应两段:

  • GPT 段(GPT_SoVITS/AR/):文本先过各语言前端——中文的多音字交给 GPT_SoVITS/text/g2pw/ 的 G2PW 处理——转成音素序列,再由预训练 GPT 逐帧产出 25Hz 语义 token(config 里semantic_frame_rate写死为 25hz)。语义 token 只承载"说什么",和具体音色解耦,所以一段 5 秒参考也能引导它输出像样的内容。
  • SoVITS 段(GPT_SoVITS/module/):消费语义 token,用参考音频提供音色条件,生成声学特征,最后由 NVIDIA 的 BigVGAN(GPT_SoVITS/BigVGAN/)重建波形。

零样本模式就是拿预训练底模直接跑这两段(config.py里保留了 v1/v2/v2Pro/v2ProPlus 的"不训练直接推底模"选项);微调则是用你的数据分别更新两段权重。推理速度有实测背书:v2ProPlus 的 RTF 在 RTX 4090 上 0.014、RTX 4060Ti 上 0.028、Apple M4 纯 CPU 上 0.526——4090 上合成 1400 词(约 4 分钟)的音频只花 3.36 秒。

从克隆仓库到合成第一句话:最短安装路径

按 5 步走完(NVIDIA 显卡机器):

  1. 建好环境并装依赖:
git clone https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS cd GPT-SoVITS conda create -n GPTSoVits python=3.10 conda activate GPTSoVits
  1. 一条命令装依赖、拉全部预训练权重:
bash install.sh --device CU128 --source HF

--device可选 CU126 / CU128 / ROCM / MPS / CPU,--source可选 HF / HF-Mirror / ModelScope,按网络环境挑。Windows 下把bash换成pwsh并改用install.ps1。跑完后GPT_SoVITS/pretrained_models/里应出现各版本.pth/.ckpt权重——缺了就是没装全。💡 人声混着背景音乐的素材,可以加--download-uvr5一并把 UVR5 分离模型备好。

  1. 确认 FFmpeg 可用,终端执行ffmpeg -version有版本输出即通过:conda 用户conda install ffmpeg,Ubuntu/Debian 装ffmpeg libsox-dev,macOS 用brew install ffmpeg。Windows 手动安装时要另做一步:把ffmpeg.exe、ffprobe.exe放进项目根目录,再装上 Visual Studio 2017 C++ 运行库。

  2. 启动 WebUI:

python webui.py

浏览器打开的 Gradio 页面顶部有三个主标签:0-前置数据集获取工具、1-GPT-SoVITS-TTS、2-GPT-SoVITS-变声,端口分别是 9874/9872。

  1. 打开1-GPT-SoVITS-TTS/1C-inference,上传 5 秒参考人声,填上文本并勾选语言,点击合成。几秒后听到用该音色朗读的音频,就说明环境完全就绪。

Windows 用户更省事:下载官方整合包解压,双击go-webui.bat直接进入第 4 步。📌 官方验证过的环境组合:Python 3.10/3.11 + PyTorch 2.5.1(CUDA 12.4),Python 3.11 + PyTorch 2.7.0(CUDA 12.8),Apple silicon 用 Python 3.9/3.11,纯 CPU 用 Python 3.9 + PyTorch 2.2.2。

版本怎么选,能力边界在哪

版本特点适合场景
v1 / v2v2 新增韩语、粤语,预训练数据从 2k 扩到 5k 小时,低质量参考音频效果有改进训练集音质一般
v2Pro / v2ProPlus硬件成本和速度与 v2 相当,效果超过 v4,显存占用略高于 v2效果优先、想要更快响应
v3 / v4音色相似度更高,底模直接推效果就更好,GPT 更稳、重复遗漏更少追求贴近参考音色;v4 原生 48kHz 输出

两条实用结论:

  • 训练集平均音质一般时,v1/v2/v2Pro 能出像样的结果,v3/v4 反而不行;v3/v4 的合成音色、节奏更贴近参考音频本身,而不是整个训练集的平均。
  • v4 修掉了 v3 因非整数倍上采样带来的金属质感,且原生 48kHz(v3 只有 24kHz,高音容易发闷),作者把 v4 视为 v3 的直接替代品。
  • v3/v4 的训练支持 LoRA(s2_train_v3_lora.py),只更新小权重,显存占用更低。

语言标注别写错:标注格式是音频路径|说话人|语言|文本,语言字段取zh/en/ja/ko/yue。

进阶:完整微调流程与 API 接入

想"焊住"一个音色,完整链路是:

  1. 0-前置数据集获取工具:填原始音频路径,先 UVR5 做人声分离(可选),再自动切分成短片段。
  2. 自动转写:后端可选 Fun-ASR-Nano(31 语种+方言,默认推荐)、SenseVoice(极速)、经典 FunASR(中文/粤语)或 Faster Whisper(tools/asr/)。
  3. 在1B-ASR批量打标校对文本。错字会原样进训练集,这一步值得过一遍。
  4. 在1B-微调训练分别微调 GPT(s1_train.py)和 SoVITS(s2_train.py),产出.ckpt/.pth权重。
  5. 回1C-inference,下拉框选中新权重合成对比。

接入自己的应用:api_v2.py 默认绑定127.0.0.1:9880,/tts接口接受text、text_lang、ref_audio_path、prompt_lang等参数,还带speed_factor(语速)、seed(可复现)、streaming_mode(分块返回),成功直接回 wav 音频流,失败回 400 + JSON 错误信息。/set_gpt_weights、/set_sovits_weights支持运行时热切换权重,适合把 TTS 嵌进 Web 服务或内容流水线。

常见问题速查

安装阶段

  • Windows 一启动就报 ffmpeg 相关错误:缺 ffmpeg;把ffmpeg.exe/ffprobe.exe放进项目根目录并装 VS 2017 运行库。
  • 界面提示找不到预训练模型:GPT_SoVITS/pretrained_models权重不全;重跑一次install.sh/install.ps1,对照 config.py 核对版本对应的文件名(v4 需要gsv-v4-pretrained/s2Gv4.pth等)。
  • 中文合成报文本前端错误:缺 G2PW 中文前端(只有中文 TTS 需要);下载 G2PWModel,解压改名后放进GPT_SoVITS/text。

训练阶段

  • 显存不足或训练中断:开半精度is_half(Docker 里设环境变量is_half=true),v3/v4 换更小的 batch 或 LoRA 训练。
  • Mac 上训出来的模型明显更差:Apple 芯片 GPU 训练质量低于其他设备;官方建议 Mac 用 CPU 训练,安装时--device CPU。

推理阶段

  • Docker 容器行为异常:Windows Docker Desktop 默认共享内存偏小;把 docker-compose.yaml 里的shm_size调大到16g。
  • ASR 首次使用卡住:模型首次运行要联网下载;离线环境需手动把 FunASR 模型放进tools/asr/models。
  • 合成音频有金属声、高音发闷:在用 v3 或其声码器;直接升级 v4 权重。

收尾

建议的使用节奏:先跑通零样本,确认音色方向对,再用 1 分钟素材完整走一遍"切分 → ASR → 校对 → 微调";细节操作对照 docs/cn/ 的中文文档。日常生产里最容易被忽略的两件事——标注语言字段写对、ASR 转写认真校对——往往比换版本更能救活合成效果。

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