首页
/ GPT-SoVITS 日语文档实战指南:Few-Shot TTS 环境搭建、Docker 部署与 WebUI 全流程解析

GPT-SoVITS 日语文档实战指南:Few-Shot TTS 环境搭建、Docker 部署与 WebUI 全流程解析

2026-09-04 13:28:28作者:管翌锬

本篇基于 GPT-SoVITS 仓库的日语版 README(docs/ja/README.md)整理而成,面向希望在 Linux、Windows、macOS 及 Docker 环境下完成 Few-Shot 语音克隆 TTS 全流程的开发者。读完本文,你将掌握:GPT-SoVITS 的核心能力边界、install.sh 各参数的真实行为、Docker Compose 四个服务的取舍、预训练模型与 G2PW/UVR5/ASR 模型的落盘目录、数据集 .list 标注格式,以及 WebUI 微调六步流程与命令行离线工具的使用方法。

一、核心功能概览

GPT-SoVITS 是一个面向 Few-Shot 场景的语音合成(TTS)项目,官方定位是"1 分钟语音数据也能训练出不错的 TTS 模型"。日语文档中列出的四项核心能力为:

  1. Zero-Shot TTS:仅用 5 秒左右的参考音频,即可直接合成该音色文本,无需训练;
  2. Few-Shot TTS:约 1 分钟的训练数据即可微调出质量更高的个性化模型;
  3. 多语言支持:官方文档声明支持英语、日语、韩语、粤语、中文;
  4. 一体化 WebUI:内置人声/伴奏分离(UVR5)、训练集自动切片、ASR 转写标注等工具,降低训练集制作门槛。

从源码结构看,多语言能力落在文本前端:GPT_SoVITS/text/cleaner.py 中按版本维护语言模块映射,v2 起为 {"zh": "chinese2", "ja": "japanese", "en": "english", "ko": "korean", "yue": "cantonese"},分别对应 chinese2.pyjapanese.pyenglish.pykorean.pycantonese.py 等前端模块。

二、安装

2.1 测试过的环境矩阵

官方文档给出的环境组合如下,跨平台迁移时建议对齐此矩阵:

Python Version PyTorch Version Device
Python 3.10 PyTorch 2.5.1 CUDA 12.4
Python 3.11 PyTorch 2.5.1 CUDA 12.4
Python 3.11 PyTorch 2.7.0 CUDA 12.8
Python 3.9 PyTorch 2.8.0dev CUDA 12.8
Python 3.9 PyTorch 2.5.1 Apple silicon
Python 3.11 PyTorch 2.7.0 Apple silicon
Python 3.9 PyTorch 2.2.2 CPU

2.2 Linux

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
bash install.sh --device <CU126|CU128|ROCM|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5]

阅读 install.sh 源码可知该脚本的实际职责远不止装依赖:

  • 参数校验--device 必须取 CU126 / CU128 / ROCM / MPS / CPU 之一,--source 必须取 HF / HF-Mirror / ModelScope 之一,二者均缺省时打印帮助并退出(install.sh#L96-L174);
  • 构建工具:非 macOS 下检测系统 GCC,版本低于 11 时从 conda-forge 安装 GCC 11 与对应 sysroot;macOS 下自动触发 Xcode Command Line Tools 安装(install.sh#L186-L224);
  • 模型下载:按 --source 选择镜像,下载 pretrained_models.zip 解压到 GPT_SoVITS/G2PWModel.zip 解压到 GPT_SoVITS/text/;若已存在对应目录则跳过;--download-uvr5 时追加下载 UVR5 权重到 tools/uvr5/install.sh#L234-L296);
  • PyTorch 安装:CU126 走 --index-url .../cu126,CU128 走 .../cu128,ROCM 走 rocm6.2,CPU/MPS 走 .../cpu,并同时安装 torchcodecinstall.sh#L298-L344);
  • 文本前端资源:下载 NLTK 数据与 Open JTalk 日语词典并分别解压到 Python 前缀目录与 pyopenjtalk 包目录——日语 TTS 依赖 pyopenjtalk,这一步不可省略(install.sh#L356-L371)。

另外注意:--device CU126/CU128 若检测不到 nvidia-smi,脚本会告警并自动回退到 CPU 安装路径;ROCM 在 WSL2 下还会额外修补 torch 的 libhsa-runtime64.soinstall.sh#L298-L324)。

2.3 Windows

Windows 10 以上推荐下载官方一体化整合包,解压后双击 go-webui.bat 即可启动(仓库根目录保留了启动脚本 go-webui.batgo-webui.ps1)。

2.4 macOS

重要提示:官方文档明确建议 Mac 上尽量用 CPU 训练——在 Mac GPU 上训练出的模型质量会显著低于其他设备训练的模型。安装命令:

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
bash install.sh --device <MPS|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5]

install.sh 源码看,MPS 分支实际按 CPU wheel 安装 PyTorch(USE_CPU=true),即 MPS 模式主要依赖运行时回退,与"建议 CPU 训练"的提示一致。

2.5 手动安装

若希望完全掌控每一步:

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits

pip install -r extra-req.txt --no-deps
pip install -r requirements.txt

随后安装 FFmpeg,各平台方式:

  • Condaconda activate GPTSoVits && conda install ffmpeg
  • Ubuntu/Debiansudo apt install ffmpeg && sudo apt install libsox-dev
  • Windows:将 ffmpeg.exeffprobe.exe 放到 GPT-SoVITS 根目录,并安装 Visual C++ 运行时(Visual Studio 2017 redistributable)
  • macOSbrew install ffmpeg

三、使用 Docker 运行

3.1 镜像选择

代码更新频率高于镜像发布频率,使用前需注意:

  • 到 Docker Hub 确认最新镜像标签并选择匹配环境的标签;
  • Lite 镜像不包含 ASR 模型与 UVR5 模型:UVR5 需自行下载到宿主机,ASR 模型则按需由程序自动下载;
  • Docker Compose 会挂载当前目录下的全部文件,因此务必先 cd 到项目根目录并确保代码是最新版本再启动;
  • 可选择用仓库提供的 Dockerfile 在本地构建,以获得最新变更。

3.2 环境变量与共享内存

  • is_half:控制是否启用 fp16 半精度。GPU 支持时可设为 true 以降低显存占用。从源码看,config.py#L127-L128 通过 os.environ.get("is_half", "True") 读取该变量,并在 config.py#L149-L195get_device_dtype_sm 中结合 GPU 计算能力(SM 版本、显存大小)自动决定推理设备与精度——显存不足 4GB 或 SM < 5.3 的卡会回退到 CPU + fp32;
  • Windows (Docker Desktop) 默认共享内存偏小,可能导致异常行为,建议在 Compose 文件中将 shm_size 调大(例如 16g)。

3.3 服务选择与运行命令

docker-compose.yaml 定义了四个服务:

服务名 说明 镜像
GPT-SoVITS-CU126 含全部功能完整版 xxxxrt666/gpt-sovits:latest-cu126
GPT-SoVITS-CU126-Lite 精简依赖轻量版 xxxxrt666/gpt-sovits:latest-cu126-lite
GPT-SoVITS-CU128 完整版 xxxxrt666/gpt-sovits:latest-cu128
GPT-SoVITS-CU128-Lite 轻量版 xxxxrt666/gpt-sovits:latest-cu128-lite

各服务映射了五个端口(与 config.py#L140-L145 中的端口常量一一对应):

  • 9871 SubFix 音频标注 WebUI(webui_port_subfix
  • 9872 TTS 推理 WebUI(webui_port_infer_tts
  • 9873 UVR5 人声分离 WebUI(webui_port_uvr5
  • 9874 主 WebUI(webui_port_main
  • 9880 API 服务(api_port

Lite 服务额外挂载了 tools/asr/modelstools/uvr5/uvr5_weights 两个卷,用于把宿主机上的模型目录注入镜像(docker-compose.yaml#L22-L41)。运行指定服务:

docker compose run --service-ports <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128>

3.4 本地构建镜像

bash docker_build.sh --cuda <12.6|12.8> [--lite]

docker_build.sh 会检测本机架构自动选择 linux/amd64linux/arm64 作为 TARGETPLATFORM--lite 时以 lite 基础镜像构建。

3.5 进入运行中的容器

docker exec -it <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128> bash

四、预训练模型布局

install.sh 已成功执行,可跳过前 3 项。

  1. 主预训练模型:放置到 GPT_SoVITS/pretrained_models/。从 config.py#L12-L28 可以看到各版本实际引用的文件:
    • v1:s2G488k.pth + s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt
    • v2:gsv-v2final-pretrained/s2G2333k.pth + gsv-v2final-pretrained/s1bert25hz-5kh-longer-...ckpt
    • v3:s2Gv3.pth + s1v3.ckpt(另需 models--nvidia--bigvgan_v2_24khz_100band_256x vocoder 目录)
    • v4:gsv-v4-pretrained/s2Gv4.pth + s1v3.ckpt
    • v2Pro / v2ProPlus:v2Pro/s2Gv2Pro.pthv2Pro/s2Gv2ProPlus.pth + s1v3.ckpt
  2. G2PW 模型(仅中文 TTS 需要):下载 G2PWModel.zip,解压后重命名为 G2PWModel 放入 GPT_SoVITS/text/install.sh#L270-L281 会检查 GPT_SoVITS/text/G2PWModel 目录是否存在来决定是否下载;
  3. UVR5 权重(可选,人声/伴奏分离与混响去除):放到 tools/uvr5/uvr5_weights/。使用 bs_roformermel_band_roformer 时需注意:
    • 模型文件与配套 yaml 配置须同名(不含扩展名),且名称中必须包含 "roformer" 才会被识别为 roformer 类模型;
    • 推荐在模型名中直接体现类型,例如 mel_mand_roformerbs_roformer;否则程序会从配置内容反推模型类型。例如 bs_roformer_ep_368_sdr_12.9628.ckpt 与其同名 .yaml 配对,kim_mel_band_roformer.ckpt 与其同名 .yaml 配对;
  4. 中文 ASR(可选):Damo ASR、Damo VAD、Damo Punc 三个模型放入 tools/asr/models/
  5. 英/日等多语种 ASR(可选):Faster Whisper Large V3(或其他小尺寸模型)放入 tools/asr/models/。从 tools/asr/config.py 看,当前仓库的 ASR 选择已扩展为 Fun-ASR-Nano、SenseVoice、达摩 ASR 与 Faster Whisper 四个入口,Whisper 尺寸支持 medium / medium.en / large-v2 / large-v3 / large-v3-turbo

五、数据集格式

TTS 标注 .list 文件每行一个样本:

vocal_path|speaker_name|language|text

官方文档声明的语言字典为:zh(中文)、ja(日语)、en(英语)。示例:

D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin.

结合文本前端源码可以补充:v2 及以上版本的 language_module_map 中实际还识别 ko(韩语)与 yue(粤语)两个标签(GPT_SoVITS/text/cleaner.py#L26-L29),因此在多语言数据集中标注这两个值同样有效。

六、WebUI 启动与微调流程

6.1 打开主 WebUI

  • 整合包用户:双击 go-webui.bat 或运行 go-webui.ps1;切回 V1 则使用 go-webui-v1.bat / go-webui-v1.ps1
  • 源码用户
python webui.py <语言(可选)>
# 切换到 V1:
python webui.py v1 <语言(可选)>

语言参数会写入环境变量 language 并驱动 i18n(webui.py#L66-L68),不传时默认 Auto 自动检测。注意 webui.py#L4os.environ["version"] = "v2Pro" 表明当前主干默认走 v2Pro 版本分支;WebUI 内也可手动切换版本。

6.2 微调六步流程

文档给出的"路径自动补全"工作流为:

  1. 输入音频路径;
  2. 将长音频切分为小片段;
  3. 降噪(可选);
  4. ASR 转写;
  5. 校正 ASR 结果;
  6. 进入训练标签页微调 GPT/SoVITS 模型。

webui.py 源码可确认每一步对应的实际子进程命令,便于命令行复现:

  • 切分:tools/slice_audio.py(由 open_slice 调用,支持按 GPU 数 n_parts 并行);
  • 降噪:tools/cmd-denoise.py -i <输入> -o <输出> -p float16/float32
  • ASR:tools/asr/<模型入口> -i <输入目录> -o <输出目录> -s <尺寸> -l <语言> -p <精度>open_asrwebui.py#L371-L395);
  • 特征提取三段流水线:GPT_SoVITS/prepare_datasets/1-get-text.py(文本分词)→ 2-get-hubert-wav32k.py(HuBERT 特征)→ 3-get-semantic.py(语义 token)。

训练阶段(open1Ba / open1Bb)会先加载版本对应配置——v1/v2 用 GPT_SoVITS/configs/s2.json、v2Pro/v2ProPlus 用 s2v2Pro.json/s2v2ProPlus.json,GPT 侧用 s1longer.yaml / s1longer-v2.yaml——再按 WebUI 表单覆写 batch_sizeepochs、预训练权重路径等字段写入 TEMP/tmp_s2.json(或 tmp_s1.yaml),最后拉起 GPT_SoVITS/s2_train.py(v1/v2/v2Pro 系)或 GPT_SoVITS/s2_train_v3_lora.py(v3/v4)。默认 epoch 与保存频率由 set_default() 按 GPU 显存自动计算(webui.py#L104-L136)。

6.3 推理 WebUI

python GPT_SoVITS/inference_webui.py <语言(可选)>

或先启动 python webui.py,在 1-GPT-SoVITS-TTS/1C-inference 页签打开推理界面。主 WebUI 中开启推理时,若勾选批量加速模式会改用 GPT_SoVITS/inference_webui_fast.pywebui.py#L331-L336)。

七、各版本 Release 要点与迁移方法

V2

新增:韩语与粤语支持;优化文本前端;预训练语料从 2 千小时扩展到 5 千小时;提升低质量参考音频下的合成品质。从 V1 迁移:pip install -r requirements.txt 更新包 → 拉取最新代码 → 下载 V2 预训练模型至 GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/;中文 V2 另需 G2PW 模型。

V3

新增:音色相似度提升(无微调直推底模时改善明显);GPT 更稳定,重复/漏字减少,更易生成富情感语音。从 V2 迁移:更新依赖 → 拉最新代码 → 下载 s1v3.ckpts2Gv3.pthmodels--nvidia--bigvgan_v2_24khz_100band_256x 目录至 GPT_SoVITS/pretrained_models/。可选追加语音超分模型(见 tools/AP_BWE_main/24kto48k/ 目录的说明)。

V4

V4 修复了 V3 非整数倍上采样引入的"金属音"问题,并原生输出 48kHz 音频(V3 仅原生 24kHz),官方推荐将 V4 作为 V3 的直接替代(仍需自行验证)。迁移方式:更新依赖 → 拉最新代码 → 下载 gsv-v4-pretrained/s2v4.ckptgsv-v4-pretrained/vocoder.pthGPT_SoVITS/pretrained_models/

V2Pro

内存占用略高于 V2,但硬件成本与推理速度持平的情况下,性能与音质优于 V4。 文档同时给出选型参考:训练集平均音质偏低时,V1/V2/V2Pro 往往比 V3/V4 更稳;且 V3/V4 的合成音色更贴近参考音频而非整个训练集的平均音色。迁移方式:更新依赖 → 拉最新代码 → 下载 v2Pro/s2Dv2Pro.pthv2Pro/s2Gv2Pro.pthv2Pro/s2Dv2ProPlus.pthv2Pro/s2Gv2ProPlus.pthsv/pretrained_eres2netv2w24s4ep4.ckptGPT_SoVITS/pretrained_models/(与 webui.py#L865sv_path 的默认引用一致)。

八、命令行工具速查

除 WebUI 外,各工具均可命令行直跑:

UVR5 人声分离 WebUI:

python tools/uvr5/webui.py "<infer_device>" <is_half> <webui_port_uvr5>

音频切片(训练集预处理): 原文档给出的命令为 python audio_slicer.py --input_path ... --output_root ... --threshold ... --min_length ... --min_interval ... --hop_size ...(阈值控制音量曲线判定、min_length 为最短片段时长、min_interval 为相邻片段最短间隔、hop_size 为音量曲线步长)。当前仓库中切分工具位于 tools/ 目录(slice_audio.pyslicer2.py),WebUI 内部实际调用的是 tools/slice_audio.py,以仓库内文件为准。

ASR 标注:

# 达摩系中文 ASR
python tools/asr/funasr_asr.py -i <input> -o <output>

# Faster Whisper(非中文场景),-l 语言,-p 精度
python ./tools/asr/fasterwhisper_asr.py -i <input> -o <output> -l <language> -p <precision>

Faster Whisper 路径无进度条显示,且可能因 GPU 性能出现延迟。两个脚本的参数定义分别见 tools/asr/funasr_asr.py#L153-L163tools/asr/fasterwhisper_asr.py#L153-L170

九、致谢与延伸阅读

日语 README 末尾列出了项目的上游技术来源:理论上参考 ar-vits、SoundStorm、VITS、hifi-gan、fish-speech、f5-TTS、shortcut flow matching 等;预训练模型涉及中文语音预训练、Chinese-Roberta-WWM-Ext-Large、BigVGAN、ERes2NetV2;文本前端基于 PaddleSpeech zh_normalization、g2pW、pypinyin-g2pW、split-lang;工具链则复用 UVR5、audio-slicer、SubFix、FFmpeg、Gradio、faster-whisper、FunASR、AP-BWE。

更多文档可参考仓库内的其他语言版本与更新日志:简体中文韩语土耳其语English,以及日语/英文更新历史 docs/ja/Changelog_JA.mddocs/en/Changelog_EN.md

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
528
590
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
904
1.82 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
docsdocs
暂无描述
Markdown
889
5.78 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.52 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.33 K
1.45 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
982
503
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384