#8292 语音识别阶段出错[openai-whisper(内置)] NoneTraceback (most recent call last):

2a09**6 Posted at: 1 hour ago

语音识别阶段出错[openai-whisper(内置)] None
Traceback (most recent call last):

File "videotrans\task\job.py", line 35, in run

File "videotrans\task\job.py", line 101, in process_task

File "videotrans\task\speech2text.py", line 97, in recogn

File "videotrans\recognition\__init__.py", line 141, in run

File "videotrans\recognition\_base.py", line 101, in run

File "videotrans\recognition\_whisper.py", line 37, in _exec

File "videotrans\recognition\_whisper.py", line 85, in _openai

File "videotrans\configure\base.py", line 277, in _new_process

videotrans.configure.excepts.VideoTransError: None
trk=[SpeechToText]: uuid='de9840076d', proxy_str=None, cfg=[TaskCfgSTT]
原始输入文件名: E:/DownLoad/4/rrr/Aleixs Rae - Sexual Deviants.mp4,
输出结果保存到文件夹: D:/win-pyvideotrans-v4.16-1/output/recogn,
临时文件夹: D:/win-pyvideotrans-v4.16-1/tmp/8188/de9840076d
已启用CUDA加速
已选 降噪
语音识别:openai-whisper(内置), large-v3-turbo
发音语言:en
已选 降噪, precent=1, hasend=False, should_recogn=True, should_trans=False, should_dubbing=False, should_hebing=False, out_format='srt', copysrt_rawvideo=False, spk_insert=True


=
system:Windows-10-10.0.26100-SP0
version:v4.16
frozen:True
language:zh_CN
root_dir:D:/win-pyvideotrans-v4.16-1

7 Replies

#1 DeepSeek reply at 1 hour ago

这是 openai-whisper 渠道的模型文件缺失或下载损坏导致的。openai-whisper(内置) 首次使用需从 openaipublic.azureedge.net 下载 large-v3-turbo.pt(约 1.6GB),国内网络下极易失败或不完整;失败时底层抛出空异常,因此报错信息只显示 VideoTransError: None(报错位置 _whisper.py 的 _openai 正是模型加载环节)。

解决方案(二选一)

方案 A:手动下载模型文件(保留 openai-whisper)

  1. 用浏览器下载 large-v3-turbo.pt:
    https://openaipublic.azureedge.net/main/whisper/models/aff26ae408abcba5fbf8813c21e62b0941638c5f6eebfb145be0c9839262a19a/large-v3-turbo.pt
  2. 将该 .pt 文件直接放到软件目录 D:/win-pyvideotrans-v4.16-1/models/ 内(不要建子文件夹,文件名保持 large-v3-turbo.pt)
  3. 重新执行任务,务必勾选清理已生成

方案 B:改用 faster-whisper(推荐,软件默认渠道)

  1. 语音识别渠道下拉改为 faster-whisper(内置),模型选 large-v3-turbo
  2. 若也提示下载失败,手动下载整个模型目录覆盖到:
    D:/win-pyvideotrans-v4.16-1/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo
    下载地址:https://huggingface.co/mobiuslabsgmbh/faster-whisper-large-v3-turbo/tree/main
  3. 重新执行任务并勾选清理已生成

其他排查点

  • 你同时勾选了降噪,若降噪模型(onnx)也缺失同样会中断,可先取消降噪测试一次,以隔离问题。
  • 原始文件含空格与符号,虽不必然致错,建议临时改名为 test.mp4 试跑一次。
  • 若按上述操作后仍报 VideoTransError: None,请提供 D:/win-pyvideotrans-v4.16-1/logs/ 下最新日志文件底部约 30 行。

请查阅相关文档:

#2 2a09**6 reply at 1 hour ago

取消勾选 启用CUDA加速后成功了,3.75版本就可以正常使用勾选 启用CUDA加速

#3 DeepSeek reply at 1 hour ago

v3.75 与 v4.16 打包使用的 PyTorch/CUDA 运行时不同:v4.16 的 CUDA 加速绑定 CUDA 12.8 + cuDNN 9.11,而 v3.75 是旧 CUDA 版本。勾选加速后子进程在初始化 CUDA 时直接崩溃(因此异常被吞成 VideoTransError: None,发生在 _new_process 子进程入口),取消勾选后走 CPU 就正常。

按以下顺序排查:

1. 确认驱动/环境是否满足 v4.16 要求

  • CMD 执行 nvidia-smi,右上角显示的 CUDA Version 必须 ≥ 12.8(只是驱动支持上限,不代表已装工具包)
  • 执行 nvcc -V 查看是否安装 CUDA Toolkit 12.8+
  • 必须安装 cuDNN 9.11+,并把其 bin 与 lib 目录加入系统环境变量 Path
  • 驱动过旧是 v3.75 能跑、v4.16 不能跑的最常见原因,先去 NVIDIA 官网更新显卡驱动

2. 排除显存不足
openai-whisper 默认 float32 计算,large-v3-turbo 在 openai-whisper 下显存占用明显高于 faster-whisper,显存不足会直接导致子进程硬崩溃并表现为 None。

  • 临时把模型降为 medium 或 small,勾选加速再试一次
  • 若 medium 能加速成功,则确认是显存问题

3. 改用 faster-whisper(推荐,比 openai-whisper 更省显存)

  • 语音识别渠道改为 faster-whisper(内置),模型 large-v3-turbo,勾选 启用CUDA加速
  • 进入 菜单 → 工具 → 高级选项 → 语音识别参数,将 计算数据类型(Compute data type) 设为 float16(GPU 用)或 int8(最省显存),并把 识别准确度beam_size、best_of 调为 1

4. 若仍报错
目前的 None 是最外层包装异常,看不到真实底层原因。请提供:

  • logs/ 目录下最新日志文件底部约 30 行(文件日志级别为 DEBUG,会记录 CUDA 初始化真实错误)
  • nvidia-smi 与 nvcc -V 的输出

补充说明:不勾选 CUDA 用 CPU 跑 openai-whisper large-v3-turbo 耗时通常是 GPU 的数倍,若你的显卡驱动确实只能停留在旧版本,建议直接用 faster-whisper + CUDA,或维持 CPU 方案。

请查阅相关文档:

#4 2a09**6 reply at 1 hour ago

NVIDIA-SMI 617.42 KMD Version: 617.42 CUDA UMD Version: 13.4 |

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2026 NVIDIA Corporation
Built on Fri_Apr_24_19:26:09_Pacific_Daylight_Time_2026
Cuda compilation tools, release 13.3, V13.3.33
Build cuda_13.3.r13.3/compiler.37862127_0

#5 DeepSeek reply at 1 hour ago

从你提供的版本看,CUDA 编译器 13.3 和驱动 617.42 已满足 v4.16 的要求(软件绑定 12.8,理论兼容 12.8+ 及 13.x),所以并非「CUDA 版本太低」。v3.75 能加速、v4.16 不能,最可能是以下三种之一(按概率排序):

1. cuDNN 缺失或版本不符(最常见)
PyTorch 的 CUDA 卷积/注意力算子依赖 cuDNN 9.11+,nvcc -V 只能证明 CUDA Toolkit 存在,不能证明 cuDNN 已安装。

  • 检查是否真的存在:在 CMD 执行
    where /r "C:\Program Files\NVIDIA" cudnn64_9.dll
    以及
    where /r "C:\Program Files\NVIDIA GPU Computing Toolkit" cudnn64_9.dll
  • 若搜不到,说明 cuDNN 未装或版本低于 9。请到 NVIDIA 官网下载 cuDNN 9.11+ for CUDA 12.x,解压后把 bin、lib、include 分别合并进 CUDA 的对应目录,并把 bin 与 lib 追加到系统 Path,重启电脑后再试。

2. 系统 CUDA 13.3 的 DLL 与软件内置 CUDA 12.8 运行时冲突
v4.16 打包版 _internal 内自带 CUDA 12.8 的运行库。若系统 Path 中 ...\CUDA\v13.3\bin 排在前面,子进程会优先加载 13.x 的 cudart/cublas,与内置 torch 不匹配,直接硬崩溃——外层的 _openai 只抛出 VideoTransError: None,与你看到的报错完全吻合。

  • 快速验证:把 Path 中所有 CUDA\v13.3\bin、CUDA\v13.3\libnvvp 条目临时删除(先记录原值以便恢复),重启软件,勾选 CUDA 加速跑一个 1 分钟内的短视频。
  • 如果这样可以跑通,说明就是 DLL 冲突,长期方案是保留 cuDNN、移除 13.3 的 bin 条目,或改用源码部署并自行锁定 torch 版本。

3. 显存不足
openai-whisper 在 GPU 上默认 fp16,large-v3-turbo 加载后约需 5~6GB 可用显存。若显存被其他程序(浏览器、播放器)占用,也会在初始化时被吞成 None。

  • 用 nvidia-smi 查看当前显存占用,关闭占用程序。
  • 临时把模型降到 medium 勾选加速测试:若 medium 成功、turbo 失败,即可确认是显存问题。

建议同时做的一步(绕开 openai-whisper 的坑)
改用 faster-whisper(内置) + large-v3-turbo,并进入 菜单 → 工具 → 高级选项 → 语音识别参数,把 计算数据类型(Compute data type) 改为 float16(GPU)或 int8(最省显存),beam_size、best_of 设为 1。faster-whisper 显存占用明显低于 openai-whisper,对 CUDA 环境的容错也更好。

若上述均无效
VideoTransError: None 是最外层包装异常,看不到底层真实错误。请提供:

  1. D:/win-pyvideotrans-v4.16-1/logs/ 下最新日志文件底部约 30 行(文件日志为 DEBUG 级别,会记录 CUDA/cuDNN 初始化失败的真实原因)
  2. where /r "C:\Program Files\NVIDIA GPU Computing Toolkit" cudnn64_9.dll 的执行结果
  3. nvidia-smi 输出中显存总量与当前占用

请查阅相关文档:

#6 2a09**6 reply at 1 hour ago

C:\Users\Administrator.YJYZYPC>where /r "C:\Program Files\NVIDIA" cudnn64_9.dll
C:\Program Files\NVIDIA\CUDNN\v9.25\bin\13.4\arm64\cudnn64_9.dll

C:\Users\Administrator.YJYZYPC>where /r "C:\Program Files\NVIDIA GPU Computing Toolkit" cudnn64_9.dll
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.3\bin\13.4\arm64\cudnn64_9.dll

#7 DeepSeek reply at 1 hour ago

核心原因已经确定:你系统里只有 arm64 架构的 cuDNN,没有 x64 版本。cudnn64_9.dll 的路径都带有 \13.4\arm64\ 子目录,而 pyVideoTrans 是 x64 程序,无法加载 ARM64 的 DLL,因此 CUDA 加速在初始化时直接失败,错误被外层包装成了 VideoTransError: None。这也是 v3.75 能加速而现在不能的原因:你后来安装的 cuDNN 9.25 是给 Windows ARM64 的包,覆盖或清掉了原有的 x64 版本。

验证(先确认没有 x64 版本)

CMD 执行:

where /r "C:\Program Files\NVIDIA" cudnn64_9.dll | findstr /v arm64

如果没有任何输出,即可确认系统中缺少 x64 版 cuDNN。

解决步骤

  1. 去 https://developer.nvidia.com/cudnn-downloads 下载 Windows (x86_64) 版本(不要选 Windows arm64),版本要求 9.11 及以上、对应 CUDA 12.x 的 Tarball(zip) 或 Local Installer。
  2. 安装后确认 x64 DLL 存在,路径应类似:
C:\Program Files\NVIDIA\CUDNN\v9.xx\bin\12.x\x64\cudnn64_9.dll

(关键看最后一层是 x64 而不是 arm64)

  1. 把该 x64 目录(或 zip 解压后的 bin 目录)追加到系统环境变量 Path,并确保它排在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.3\bin 之前——因为你系统装的是 CUDA 13.3,而 v4.16 打包版内置的是 12.8 运行时,让 13.3 的 bin 优先会导致 cudart/cublas 版本错配,同样表现为 None。若加完后仍失败,直接把 CUDA\v13.3\bin 从 Path 中临时移除再试。
  2. 重启电脑(Path 变更对已运行进程无效),重新打开软件,勾选 启用CUDA加速,用一个 1 分钟内的短视频测试。

备选方案

如果暂时不想折腾 cuDNN,可改用 faster-whisper(内置) + large-v3-turbo,并在 菜单 → 工具 → 高级选项 → 语音识别参数 中把 计算数据类型 设为 float16、beam_size 与 best_of 设为 1,显存占用比 openai-whisper 低很多。但请注意:faster-whisper 依赖 ctranslate2,其 CUDA 版同样需要 x64 cuDNN 9,所以 cuDNN 的 x64 问题仍需解决,只是容错更好。

若修复后仍报错

请提供 D:/win-pyvideotrans-v4.16-1/logs/ 下最新日志文件底部约 30 行(文件日志为 DEBUG 级别,会记录 cudnn/cuda 初始化失败的真实错误),以及上面 findstr /v arm64 的执行结果。

请查阅相关文档:

Thinking...
Post Your Reply
If you have more than 50 messages, you will no longer receive an automatic reply. Please ask a new question!
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Dondate via ko-fi.com

Related resource