VoiceStudio — Faster-Whisper(崩溃隔离)引擎¶
与 faster-whisper 相同的 CTranslate2 Whisper 引擎,但运行在独立的子进程(“sidecar”)中。CTranslate2 的 GPU 销毁流程可能触发段错误——这是 faster-whisper 长期存在的崩溃问题——而进程内挂起或崩溃的转写会把整个后端一起拖垮。隔离之后,子进程可以崩溃或被强制终止,从而回收挂起的转写及其显存,同时后端保持正常运行(#730)。
无需额外安装:sidecar 复用应用自身的 venv——只是多了一道进程边界。
选择它¶
- Model Catalogue 的 ASR 标签页 → 在 crash-isolated 那一行点击 Use(使用);或
- 使用
OMNIVOICE_ASR_BACKEND=faster-whisper-isolated固定启用它。
它永远不会被自动检测选中——这是一个明确选择加入(opt-in)的逃生通道。
最适合的场景¶
- 长批量运行:单个坏文件不会拖垮后端。
- 之前进程内 faster-whisper 曾崩溃或挂起的机器:sidecar 崩溃只让当前任务失败,下一次转写会自动重新拉起一个全新的 sidecar。
平台支持¶
与 faster-whisper 相同:在 macOS、Windows 和 Linux 上支持 CUDA float16 或 CPU int8。sidecar 自行选择 cuda/cpu,并在没有高效 fp16 的 GPU 上走同样的 float16 → int8_float16 → int8 降级链路(#551)。
模型选择¶
ASR_MODEL_FASTER— 共享模型选择,与进程内引擎相同:设置一次后,两种变体都会加载相同的权重。ASR_MODEL_FW— 可选的 sidecar 专用覆盖项;设置后,它会在此引擎中优先于ASR_MODEL_FASTER。默认值为large-v3。ASR_COMPUTE_TYPE— 可选:将 sidecar 固定为某个 CTranslate2 计算类型,而不是使用自动降级链路。
权重在首次加载时下载——参见 downloading-models。
权衡与怪癖¶
- 每次调用比进程内 faster-whisper 略慢(IPC 开销);模型在两次调用之间保持热状态,因此开销按请求计,而不是按音频分块计。
- 词级时间戳是 Whisper 原生(±100–300 毫秒)——没有强制对齐。配音唇形同步请使用 whisperx 或 mlx-whisper。
- 如果 sidecar 在转写中途死亡,任务会以明确的 “sidecar crashed” 错误失败,后端保持正常运行——重试即可重新生成。
- 在 CUDA 上仍需要 cuDNN 8 ——与进程内引擎相同的 CTranslate2 要求。这会被预先检查,所以缺少 cuDNN 8 会在 Model Catalogue 中显示为 “unavailable”,而不是让 sidecar 在每次转写时静默失败(#1371)。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 om/VoiceStudio