Silero TTS模型加载失败报ValueError:解包值不足问题排查
torch.hub加载Silero TTS模型报错修复
错误根源
报错ValueError: not enough values to unpack (expected 2, got 1)的核心原因:torch.hub.load对repo_or_dir参数的解析逻辑是——如果传入的是字符串且不含/,会默认当作GitHub仓库名处理(要求格式为owner/repo),而你传入的snakers4_silero-models_master是本地文件夹的相对名称,不符合GitHub仓库的格式要求,因此触发拆分错误。
正确加载方式及修复方案
方案1:使用官方GitHub仓库路径(推荐)
直接传入Silero官方的GitHub仓库标识,torch会自动处理模型下载和缓存,无需手动管理本地文件夹:
model, _ = torch.hub.load(repo_or_dir='snakers4/silero-models', model='silero_tts', language=language, speaker=model_id)
方案2:复用本地缓存的模型文件夹
如果要使用已存在于PyTorch缓存中的本地文件夹,必须传入绝对路径,并指定source='local'告诉torch加载本地仓库:
# 替换为你本地snakers4_silero-models_master文件夹的实际绝对路径 local_repo_path = 'C:/Users/USER/.cache/torch/hub/snakers4_silero-models_master' model, _ = torch.hub.load(repo_or_dir=local_repo_path, model='silero_tts', language=language, speaker=model_id, source='local')
额外说明
原代码在其他文件夹能运行,是因为当时的工作目录与本地模型文件夹的相对关系刚好被torch识别,但新建文件夹后工作目录改变,相对路径失效,才触发报错。优先选择方案1,官方路径更稳定,无需手动维护本地路径。
内容的提问来源于stack exchange,提问作者22aroma
相关产品推荐
相关产品推荐

