根据您提供的截图和描述,问题在于使用 CUDA 加速时语音识别失败,导致没有字幕生成。这通常是由于显存不足或 CUDA 环境配置问题导致的。
请按以下步骤排查和解决:
第一步:降低显存占用(最可能的原因)
- 在软件主界面,点击 工具 -> 选项 -> 高级选项。
- 找到 “Faster/OpenAI/Whisper 语音识别微调” 区域。
进行以下关键设置调整:
- CUDA 数据类型:从
float32 改为 float16 或 int8。这是解决显存不足最有效的方法。 - 识别准确度 (beam_size):将
beam_size 和 best_of 的值从默认的 5 改为 1。这会大幅减少显存消耗。 - 启用上下文感知:如果勾选了,请取消勾选 (
False),这也能节省显存。
- 点击“保存”并重启软件。
第二步:检查 CUDA 和显卡驱动
- 确保您的 NVIDIA 显卡驱动是最新的。
- 确认您的 CUDA 版本与
pyVideoTrans 内置的 ctranslate2 库兼容。软件 v3.91 默认需要 CUDA 12.x。如果您的 CUDA 版本是 11.x,需要降级 ctranslate2 库(这通常需要源码部署用户操作,预打包版用户可尝试下一步)。
第三步:更换更小的识别模型
- 在主界面 “语音识别” 区域,将模型从
large-v3 或 large-v2 更换为更小的模型,例如 medium、small 或 base。模型越小,对显存的需求越低。
第四步:使用“批量推理”模式
- 在主界面 “语音识别” 区域,将识别模式从
整体识别 切换为 批量推理。批量推理 模式对显存的要求更低,处理速度更快,但断句效果可能略差。
总结建议操作顺序:
- 立即尝试第一步(修改高级选项中的数据类型和 beam_size),这很可能直接解决问题。
- 如果第一步无效,尝试第三步(更换更小的模型)。
- 如果仍然无效,尝试第四步(切换为批量推理模式)。
如果以上所有方法尝试后,勾选 CUDA 加速依然无法识别,请提供 videotrans/logs/ 目录下最新的日志文件,以便进行更深入的分析。