
如何用 GPT-SoVITS 的 inference_cli.py 在无 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如果你的机器只能跑命令行例如没有图形界面的 Linux 服务器、远程容器GPT-SoVITS 仓库里提供了一个纯命令行合成入口 inference_cli.py。它复用了推理 WebUI 的核心合成函数get_tts_wav但完全不启动 Gradio 页面你传入 GPT/SoVITS 模型、参考音频、参考文本和目标文本它就执行一次合成并把结果写成output.wav。适用前提是环境已按 README.md 安装好依赖、FFmpeg 和预训练模型且你手上有已训练的 GPT 模型.ckpt与 SoVITS 模型.pth。准备工作环境、模型与参考文件inference_cli.py没有任何独立的依赖清单它from GPT_SoVITS.inference_webui import ...直接复用 WebUI 模块的加载与合成逻辑所以环境要求和 WebUI 推理完全一致。按 README 的 Linux 安装路径准备conda create -n GPTSoVits python3.10 conda activate GPTSoVits bash install.sh --device CU126|CU128|ROCM|CPU --source HF|HF-Mirror|ModelScope [--download-uvr5]README 明确说明install.sh成功执行后可以跳过手动下载预训练模型的步骤否则需要把 Hugging Face 上的 GPT-SoVITS Models 下载到GPT_SoVITS/pretrained_models。中文合成还需要把 G2PWModel 解压重命名为G2PWModel放到GPT_SoVITS/text。推理时还会用到两个预训练资源inference_webui.py的默认路径是GPT_SoVITS/pretrained_models/chinese-hubert-base可用环境变量cnhubert_base_path覆盖和GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large可用bert_path覆盖一般随预训练模型一起就位即可。合成前还需准备四类文件GPT 模型文件与 SoVITS 模型文件微调产物的.ckpt/.pth一段参考音频get_tts_wav内部会按 16kHz 重采样检查长度超出 3~10 秒范围会直接抛出OSError参考音频在3~10秒范围外请更换所以参考音频必须落在这个区间参考文本文件UTF-8 文本与参考音频对应的逐字转写inference_cli.py会整文件读取目标文本文件UTF-8 文本要合成的内容同样整文件读取。注意两点参考文本和目标文本都是按“整个文件内容”读入的不要在一个文件里混放多段无关内容inference_cli.py内部合成参数固定为top_p1、temperature1不提供 CLI 参数覆盖。执行合成参数与命令脚本定义了 8 个必填参数见 inference_cli.py 的 argparse 定义语言取值是硬编码的枚举参数说明取值--gpt_modelGPT 模型文件路径必填--sovits_modelSoVITS 模型文件路径必填--ref_audio参考音频文件路径3~10 秒必填--ref_text参考文本文件路径UTF-8必填--ref_language参考音频语言中文/英文/日文--target_text目标文本文件路径UTF-8必填--target_language目标文本语言中文/英文/日文/中英混合/日英混合/多语种混合--output_path输出目录必填在项目根目录下执行下面的路径按你实际的文件位置替换语言参数必须用上面枚举中的中文值原样传入python GPT_SoVITS/inference_cli.py \ --gpt_model gpt模型文件.ckpt \ --sovits_model sovits模型文件.pth \ --ref_audio 参考音频.wav \ --ref_text 参考文本.txt \ --ref_language 中文 \ --target_text 目标文本.txt \ --target_language 中文 \ --output_path ./out为什么强调在项目根目录执行inference_webui.py在导入时会读写当前工作目录下的./weight.json来缓存/选择权重change_gpt_weights、change_sovits_weights成功后会把本次加载的模型路径写入该文件的GPT/SoVITS键而仓库根目录没有__init__.py从根目录运行才能正常解析GPT_SoVITS、tools等顶层模块。因此该脚本除了产生音频外还会更新当前工作目录的weight.json——这是可预期的副作用不是报错。结果验证output.wav 在哪里synthesize()会取合成结果生成器产出的最后一段音频用 soundfile 写到os.path.join(output_path, output.wav)并在终端打印一行Audio saved to ./out/output.wav上面是文档外的实际输出格式脚本原文为print(fAudio saved to {output_wav_path})output_wav_path随你传的--output_path变化。判定成功的依据就是这行打印加上--output_path目录下出现output.wav用任意播放器核对内容即可。如果运行中断对照两处代码里明确定义的行为参考音频不是 3~10 秒终端出现参考音频在3~10秒范围外请更换OSError换一段参考音频即可目标版本是 v3 LoRA 权重但对应的 v3 底模缺失change_sovits_weights会抛出FileExistsError提示底模缺失、无法加载相应 LoRA 权重——需要先把GPT_SoVITS/pretrained_models中 v3 底模补齐见 README 的 V3 Release Notes。限制与可选路径语言枚举有限--ref_language只接受中文/英文/日文三选一参考音频是韩语、粤语时无法用此脚本表达目标文本才支持混合语言选项。输出文件名固定为output.wav多次运行同一--output_path会互相覆盖需要留存时每次换目录或事后改名。top_p、temperature在脚本里写死为 1想要 WebUI 里的top_k/top_p/temperature微调CLI 不提供入口。如果你的环境其实可以开浏览器README 给出的替代路径是python GPT_SoVITS/inference_webui.py或python webui.py后打开1-GPT-SoVITS-TTS/1C-inference标签页功能面更全但在无 WebUI 环境inference_cli.py就是这条最短路径。【免费下载链接】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),仅供参考