news 2026/10/7 2:14:16

GPT-SoVITS 报 NameError: name ‘hps‘ is not defined?核对三处就能恢复语音合成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GPT-SoVITS 报 NameError: name ‘hps‘ is not defined?核对三处就能恢复语音合成

GPT-SoVITS 报 NameError: name 'hps' is not defined?核对三处就能恢复语音合成

【免费下载链接】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 的 WebUI 里加载模型、点击生成时,如果你看到NameError: name 'hps' is not defined(解释器找不到 hps 这个变量),先别慌。这类报错绝大多数是代码版本和模型版本没对齐造成的。这篇给你讲清报错含义、修复顺序和环境自查项,照着做通常就能合成语音。

这个报错到底在说什么

先翻译一下报错本身:

  • NameError: name 'hps' is not defined(hps 这个变量在被使用的那一行之前,还没有被赋值)

hps 是 hparams 的缩写,意思是「超参数」。在 GPT-SoVITS 里它不是随便起的名字,而是从模型文件里读出来的一份配置:采样率、滤波器长度、音高范围这些数值都放在里面。WebUI 加载 SoVITS 模型时,会先把模型文件里的 config 部分赋给 hps,之后计算音频时长、构建合成模型、提取参考音色特征,每一步都要用到它。

所以在int(hps.data.sampling_rate * 0.3)这类计算行上抛错,本质是「赋值 hps 的那一步没走到」。最常见的原因是:你手里的 GPT_SoVITS/inference_webui.py(WebUI 推理主脚本)是旧版本,旧版里赋值时机缺失或位置不对,后面一调用就报错。

判断依据可以记一句:只要报错发生在「点生成、模型刚开始加载」的瞬间,先怀疑代码与模型版本脱节,而不是自己填的参数填错了。

修复 GPT-SoVITS NameError 报错:按顺序做这三步

第一步:同步推理脚本到最新版本

需要把 GPT_SoVITS/inference_webui.py 更新到最新版。新版在模型加载流程里会先读取模型文件,再把其中的 config 赋值给 hps,这一步补齐后,hps 在合成开始前就已定义好。

备注:如果你只想局部更新,可以单独替换这一个文件,但建议同批用到的文件保持同一版本,否则容易引出新的连带报错。

第二步:核对 PyTorch 版本

PyTorch 是本项目运行模型的核心深度学习框架。建议版本为 2.6.0 左右。可以先运行pip show torch查看当前版本,低于推荐值时建议升级。也可以直接用仓库自带的 install.sh 安装依赖,它会根据你的硬件(CUDA 版本、是否 Apple 芯片)自动挑选对应的 wheel 包,装完预期结果是torch.load能正常读取模型文件。

第三步:给加载调用补上 weights_only 参数

weights_only是torch.load()的一个参数,控制加载时是否做严格类型校验。新版 PyTorch 默认weights_only=True,会把模型文件里的配置字典拒掉。补上weights_only=False后,模型文件就能完整读出来。

这一步在新版代码里已经做过了:GPT_SoVITS/inference_webui.py 和 GPT_SoVITS/TTS_infer_pack/TTS.py 中的torch.load调用都带了该参数,所以完成第一步后通常顺带解决。只有你还在维护旧代码分支时,才需要手动给加载调用补上。

修复没生效?对一遍这份 GPT-SoVITS 环境自查清单

三步做完仍报错时,逐项核对:

  • Python 解释器版本:建议 3.9.x。某些环境下过新的解释器会让依赖库装不上或行为不一致,可以先确认再排查。
  • PyTorch 版本:pip show torch查看,与官方安装脚本给出的版本对应,不建议手工混搭来源。
  • 依赖完整性:以仓库的 requirements.txt 为准完整安装。注意 ARM 平台装的是onnxruntime,x86 平台装的是onnxruntime-gpu,两者不同。
  • 模型与代码匹配:v1 / v2 / v3 模型文件结构不同,代码会从权重形状自动推断版本。如果你刚换了模型,先确认 WebUI 里的 model_version 选项和模型实际版本一致。
  • 代码文件同版本:手动替换过个别文件时,检查整个仓库没有新旧两个版本的文件混用。

GPT-SoVITS 加载模型时的几个连带报错

ModuleNotFoundError: No module named 'text.LangSegmenter'

现象:WebUI 一启动就崩,提示找不到text.LangSegmenter模块。原因:这个模块在 GPT_SoVITS/text/LangSegmenter/ 下,负责按语言切分混合文本,个别旧版目录结构里没有它。处理:把整个 GPT_SoVITS/ 目录同步到最新版,不要逐个文件补。

加载模型时提示 weights_only 相关错误

现象:报错信息里带weights_only=True字样,发生在读取模型文件那一刻。原因:较新的 PyTorch 默认严格加载,模型文件里的 config 字典被拦截。处理:确认加载调用的代码已是带weights_only=False的新版,或升级 PyTorch 后重新跑一遍安装脚本。

切换 v1 / v2 / v3 模型时报形状不匹配

现象:加载时报enc_p.text_embedding.weight之类的张量形状错误。原因:模型文件和 WebUI 里手动选择的版本不一致,代码按错误版本去解析权重。处理:把 model_version 交还给自动推断,让代码根据模型文件里的权重形状自己判定版本,手动指定仅用于特殊场景。

写在最后

这类 NameError 的根子基本都在「版本脱节」上:推理脚本要最新,PyTorch 要匹配,加载参数要跟上。修复之后建议留意一下官方更新日志(docs/cn/Changelog_CN.md),新版本发布时同步整份文件,往往比单独追某一个 bug 更省事。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 2:12:49

Mac微信插件zip安装指南:注入机制、签名与避坑实践

简介:这是一款面向 macOS 平台微信用户的第三方功能拓展插件,适合需要同时管理多个账号、频繁处理消息或希望提升桌面端沟通效率的办公人群。插件围绕多开登录、快捷回复、消息免打扰、自动回复、群聊管理、文件下载整理、朋友圈查看与隐私保护等场景&am…

作者头像 李华
网站建设 2026/10/7 2:11:38

VS2015 C# WinForms数据库项目实战:连接、CRUD与部署全攻略

简介:面向C#初学者的Visual Studio 2015 Windows数据库项目开发配套资源包,聚焦C#与SQL Server、SQLite、MySQL等数据库交互的桌面应用开发,适用于高校课程实训或个人自学,从环境搭建到项目实战均有覆盖。包内共3423个文件&#x…

作者头像 李华