关于 Cannot find an appropriate cached snapshot folder for the specified revision...
错误的说明与解决方案
在运行pyVideoTrans软件并使用faster-whisper模式时,可能经常会遇到下面这个看起来很复杂的错误,请不要担心。
这通常不是软件的 Bug,而是一个常见的网络问题。
Traceback (most recent call last):
File "videotrans\task\_only_one.py", line 43, in run
File "videotrans\task\trans_create.py", line 371, in recogn
File "videotrans\recognition\__init__.py", line 236, in run
File "videotrans\recognition\_base.py", line 75, in run
File "videotrans\recognition\_overall.py", line 155, in _exec
RuntimeError: err[msg]=Cannot find an appropriate cached snapshot folder for the specified revision on the local disk and outgoing traffic has been disabled. To enable repo look-ups and downloads online, pass 'local_files_only=False' as input.
一、这个错误到底是什么意思?
简单来说,这个错误就像一个两步连锁反应:
第一步:模型下载失败。 程序需要从网上下载 "faster-whisper" 的模型才能工作。但是,由于你的网络无法顺利连接到模型服务器(Hugging Face),或者下载中途断开了,导致模型没有下载成功。
第二步:切换到离线模式后找不到模型。 当faster-whisper库发现网络下载失败后,它会自作聪明地尝试从你的电脑本地文件夹里寻找这个模型(这叫“离线模式”)。但因为第一步下载就没成功,你的电脑里自然是空空如也,所以它就报告“在本地找不到模型”,最终导致了你看到的这个错误。
一句话总结:网络不好导致模型下载失败,下载失败导致本地没有模型可用。
二、如何解决这个问题?
核心思路是:确保模型能够被完整地下载到你的电脑里。 这里为你提供了两种简单有效的解决方案。
方案一:优化网络环境,让程序自己下载(推荐)
程序内置了从国内镜像站下载的渠道,这通常是最快、最稳定的方式。
断开代理/VPN:如果你正在使用任何形式的系统代理或 VPN,请先关闭它们。因为vpn可能不稳定,在长时间下载大模型时中途断开导致失败。
删除失败的缓存文件:
- 找到程序的主文件夹(也就是
sp.exe
所在的那个文件夹)。 - 进入里面的
models
文件夹。 - 找到并删除与你尝试下载的模型相关的文件夹(比如
models--Systran--faster-whisper-largexxx
这样的)。这一步是为了清空不完整或已损坏的下载文件。
- 找到程序的主文件夹(也就是
- 重新运行程序:关闭代理并清理缓存后,重新启动主程序。它现在应该能顺利地从国内镜像服务器下载模型了。
方案二:使用专门下载工具,手动下载模型
如果方案一不奏效,或者你的网络环境比较特殊,我们为你准备了专门的模型下载工具。你可以像下载普通软件一样,先把所有模型一次性下载好(共8个用于faster-whisper的模型),再运行主程序。
下载工具:
国内用户(推荐):
- 点击下载 down_hf-mirror.exe
- (说明: 这个版本从国内镜像站下载,速度快,通常无需额外网络设置。)
海外或有稳定代理的用户:
- 点击下载 down_huggingface.exe
- (说明: 这个版本从 Hugging Face 官网下载,需要你能稳定访问国际互联网,或者已配置好系统代理。)
使用方法:
- 将下载好的
.exe
文件放到主程序所在的文件夹(和sp.exe
放在一起)。 - 双击运行你下载的那个
.exe
文件。它会打开一个命令行窗口,自动开始下载所有需要的模型。 - 下载过程可能需要一些时间,尤其是
large
系列模型文件很大,请耐心等待直到窗口提示全部完成。
- 将下载好的
重要提示:
large-v1
,large-v2
,large-v3
等模型体积非常大(几个 GB)。如果你的网络不稳定,下载可能会中途失败。- 如果下载失败,不用担心,再次双击运行同一个
.exe
文件即可。它支持断点续传,会从上次失败的地方继续下载。
当所有模型都通过上述任一方法成功下载到 models
文件夹后,再次运行主程序,问题就应该解决了!