现场是这样的。安装依赖时 fairseq 编译失败,报与 Python 版本不兼容的语法错误,其余包都装好了。

中间走过弯路,把「pip 版本过新,解析旧包元数据失败」当成主因,改完现象没变。

把日志和配置对完,能解释这个现象的基本就这几处。fairseq 对新版 Python 支持不完整;缺少编译所需的构建工具链;系统里没有匹配的编译器。

先确认当前 Python 版本

python -c "import sys;print(sys.version)"

再往下用三点十的环境重新安装

conda create -n sovits python=3.10 -y

升级构建工具后再装

pip install --upgrade pip setuptools wheel

装完验证能正常导入

python -c "import fairseq;print(fairseq.__version__)"

当时还开着另一个排查窗口,两边日志对照着看才定位到。

别只看报错消失,验证要多做一步。依赖安装成功,训练与推理脚本能正常启动,不再出现编译错误,推理出的音质也正常,整条流程可以复现。

这里还有个坑。这类老项目对版本非常敏感,按作者给出的环境版本配比硬啃新版本省时间得多。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189