十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

GPT-SoVITS 报错排查完全指南:从启动失败到训练崩溃,9 类故障一次搞定

GPT-SoVITS 报错排查完全指南:从启动失败到训练崩溃,9 类故障一次搞定 GPT-SoVITS 报错排查完全指南从启动失败到训练崩溃9 类故障一次搞定【免费下载链接】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 做语音合成时翻车了别慌。本文围绕 GPT-SoVITS 报错排查与错误处理带你像运维同事一样顺着日志把问题一步步查明白。不管你是 WebUI 起不来、API 调不通还是训练中途崩掉都能在这里找到对应的解法。先分诊一条日志判断问题属于哪一类报错信息再长通常只需要看最后一行。打开你启动项目的终端把滚动最快的报错段落拉到底按下面三档对号入座启动类还没进页面就退出日志里出现ModuleNotFoundError、ImportError、No module named或者提示找不到模型路径。这类问题出在环境往下看第二节。合成类页面能开、API 能连但点合成没声音、返回 400、或者日志里写着tts failed。这类问题出在参数与推理往下看第四、五节。训练类s1_train.py/s2_train.py跑到一半断掉日志出现CUDA out of memory、NaN、ZeroDivisionError或切换模型时提示加载失败。这类问题出在数据与显存往下看第六节。不确定就先用python -c import torch; print(torch.cuda.is_available())验证显卡环境输出True说明 PyTorch 能看见 CUDAFalse则多半是驱动或安装脚本没配对直接进第二节。装不上依赖冲突和模型缺失现象执行python webui.py时立刻抛出ModuleNotFoundError: No module named gradio之类的错误或者终端打印warning: 以下模型不存在后继续往下跑但功能残缺。判断依据区分这两类错误只要看路径。报错里是site-packages下的包名属于依赖问题报错里出现GPT_SoVITS/pretrained_models/...这样的仓库内路径属于模型文件缺失。处理步骤依赖问题先别手动pip install单个包——GPT-SoVITS 对 PyTorch 的 CUDA 版本很敏感乱装容易越修越乱。正确做法是重跑官方安装脚本它会自动装好 GCC、FFmpeg、对应 CUDA 的 torch 和全部 Python 依赖bash install.sh --device CU128 --source ModelScope--device按你的硬件选NVIDIA 显卡用CU126或CU128AMD 用ROCMMac 用MPS纯 CPU 用CPU。--source在国内网络下建议ModelScope下载更稳。模型缺失的情况检查GPT_SoVITS/pretrained_models/目录至少要有chinese-roberta-wwm-ext-large、chinese-hubert-base两个目录以及你目标版本对应的s2G/s1权重文件。缺了就运行python GPT_SoVITS/download.py下载完重新打开 WebUIcheck_pretrained_is_exist那条 warning 就应该消失了。打不开WebUI 起不来、端口被占、显存告急现象终端长时间转圈后提示Address already in use或者浏览器访问http://localhost:9874打不开也可能页面出来了但加载模型时崩溃日志里是 CUDA 相关的异常。判断依据提示端口被占说明 9874 端口已经被别的进程拿走常见是上次没关干净的 WebUI或 UVR5、API 等其他服务。提示显存不足日志关键字是CUDA out of memory。注意 GPT-SoVITS 会按显存自动推算默认 batch_size见webui.py的set_default()显存小于 4GB 或 SM 版本过老的卡会直接回退到 CPU 全精度速度会明显变慢。处理步骤查端口。先找到占用者lsof -i:9874确认 PID 后可以kill -9 [PID]结束它。项目里其他几个默认端口也可以顺便记一下9873UVR5、9872推理 TTS、9871SubFix、9880API改端口统一去config.py里调整webui_port_main等变量。显存紧张时做三件事一是把训练/合成用的 batch_size 往下调最低 1二是老卡16 系及更早建议保持 FP32 精度可通过环境变量is_halfFalse强制关闭半精度——config.py里其实已经按显卡 SM 版本自动做了这个判断手动改之前先看日志里is_half的实际值三是清理TEMP/目录的缓存文件释放磁盘和内存压力。合成不出声API 参数没给对、推理中途失败现象调用api_v2.py返回 HTTP 400body 是{message: text_lang: xx is not supported in version ...}或{message: tts failed}或者 WebUI 里点合成转半天最后没音频。判断依据400 且 message 里带参数名基本就是请求体没通过校验——text、text_lang、ref_audio_path、prompt_lang、prompt_text是必填项text_lang必须在当前模型支持的语言列表内如zh/en/jatext_split_method只接受cut0到cut5里的值。400 但 message 是tts failed说明校验过了、推理本身炸了异常细节会同时出现在 API 进程的终端里去看最后一行 traceback。处理步骤先用最小请求把服务打通只保留必填字段逐项加回去定位是哪个参数惹的祸。语言不支持时核对你的模型版本支持哪些语言配置文件在GPT_SoVITS/configs/tts_infer.yaml把text_lang/prompt_lang改成列表内的值中英混排就按实际主语言填写。推理阶段失败优先怀疑参考音频换成 16kHz 或 24kHz 的单声道 WAV 再试。仍失败则把batch_size降到 1并检查text_split_method是否写成了非法值比如cut10切分策略细节可参考GPT_SoVITS/TTS_infer_pack/text_segmentation_method.py。流式场景注意streaming_mode与parallel_infer的组合限制两个开关互相有约束建议先都关闭验证基础链路再逐个打开。训练跑不完崩溃、NaN 与模型加载失败现象S1/S2 训练日志刷着刷着就停出现NaN loss、除零错误或CUDA out of memory也有人在 WebUI 切换 GPT 权重下拉框时看到加载失败的提示模型列表里是空的。判断依据显存崩日志有CUDA out of memory且通常发生在 batch 较大或音频特别长的那一步。数据崩loss 变NaN、零除多由脏数据引起——太短的音频、空文本标注、路径含特殊字符。加载失败GPT_weights目录扫描不到.ckpt文件见config.py的get_weights_names()常见是文件没训完、被中断写了一半或放错了目录。处理步骤先修数据过一遍训练集音频时长建议 0.5 秒以上文本标注不为空路径尽量保持纯 ASCII日语训练尤其敏感中文路径是已知雷区。再压显存batch_size 调到显存容量对应的一半以内v3/v4 版本自动推算时本来就除以 8手动调小更稳显存仍紧张就打开梯度检查点if_grad_ckptTrue用时间换空间。加载失败时检查对应权重目录GPT_weights_v2/SoVITS_weights_v2等版本和目录名必须匹配确认.ckpt/.pth文件大小正常、不是 0KB训练中途崩溃产生的半成品可以删除后重训或用GPT_SoVITS/process_ckpt.py工具检查、修复 checkpoint 内容。版本搭配别搞混v3/v4 模型要配合GPT_SoVITS/configs/s2v2Pro.json这类对应配置使用拿 v2 的配置去加载 v4 权重必然出错。太慢、爆显存性能与资源调优现象能出声但一句合成要等十几秒或者并发两个请求就 OOM。判断依据先看终端启动日志里自动选出的infer_device是cuda:0还是cpu——落在 CPU 上再快的优化也没用先回到第二节的 CUDA 问题。设备选对了还慢多半是半精度没开或并行没开。处理步骤确认is_half为 True新卡会自动开半精度通常能带来接近一倍的提速。API 场景打开并行推理请求参数里保持parallel_inferTrue默认值见api_v2.py的TTS_Request定义让 GPT 与 SoVITS 两阶段流水线并行执行。只需要快速出音的场景换用轻量推理入口python GPT_SoVITS/inference_webui_fast.py它比完整 WebUI 启动更轻。对固定模型做极致优化可以用python GPT_SoVITS/export_torch_script.py导出 TorchScript 权重加载更快、推理更省。显存还是爆batch_size 按显存 GB 数 ÷ 2起步往下调LoRA 训练把lora_rank控制在 8~32 之间秩越大占得越多小数据集没必要堆到 64 以上。版本与环境速查表挑环境之前先对表能避开一大半的装不上问题你的配置建议做法NVIDIA 16 系及更早SM 7.5 及以下脚本会自动用 FP32手动设is_halfFalsebatch_size 保守NVIDIA 新卡SM 6.1显存 ≥ 4GB走默认 FP16 CUDA显存 ≥ 8GB 可放心训 v3/v4AMD 显卡--device ROCMWSL2 下脚本会自动替换 ROCm 运行时库MacApple 芯片--device MPS个别不支持的步骤可设PYTORCH_ENABLE_MPS_FALLBACK1回退 CPU纯 CPU--device CPU只建议推理训练耗时很长国内网络下载模型--source ModelScope日语模型需要额外的 Open JTalk 词典脚本一并处理各模型版本对应的预训练权重放在哪直接查config.py里的pretrained_sovits_name/pretrained_gpt_name两个映射表即可v1 到 v2ProPlus 一一对应。疑难杂症 FAQQ合成的音频里夹带参考音频的片段A老版本的已知问题。升级到 v2Pro 及以上版本用GPT_SoVITS/configs/s2v2Pro.json配置推理即可新版已修复该现象。Q训练日语模型时报路径错误A训练目录路径必须纯 ASCII。把整个数据集挪到类似/data/tts/ja_set/的位置再重跑不要带中文或空格。QUVR5 报错UVR5 inf everywhereA老卡不支持半精度导致的。打开tools/uvr5/webui.py把其中is_half改成False再启动仓库示例文件仅供查看修改请在你自己的本地副本中进行。QAPI 返回 400 但 message 看不明白Atts failed后面还带Exception字段直接打印整个响应体看第二行同时盯住运行api_v2.py那个终端的 traceback两边的信息拼起来基本能定位。Q换了模型下拉框是空的A程序只扫描config.py里GPT_weight_root/SoVITS_weight_root列出的目录名GPT_weights、GPT_weights_v2等。把训好的权重放进与版本对应的目录刷新页面或重启 WebUI就能看到了。Q怎么快速自检环境A两条命令打底——python -c import torch; print(torch.cuda.is_available())验证显卡python -c from GPT_SoVITS.TTS_infer_pack.TTS import TTS验证推理包可导入。都通过后再去查业务层的问题。排查到最后如果还是没解决去项目 Issues 提交前记得附上完整启动命令、终端完整日志、你的显卡与显存、模型版本号。信息给全别人包括未来的自己能帮你快很多。更多背景可以看仓库里的 docs/cn/Changelog_CN.md历次修复记录里经常直接就是答案。【免费下载链接】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),仅供参考
返回列表