SYSTRAN/faster-whisper

Faster Whisper transcription with CTranslate2

这是什么

faster-whisper 是一个 Python 库,用于运行 OpenAI 的 Whisper 语音转文字模型,但使用高性能的推理引擎 CTranslate2。通过在 CTranslate2 之上重新实现模型,它的转录速度比原始 openai/whisper 代码快最多四倍,同时使用大致相同的内存量。此包可在 CPU、GPU 上运行,甚至支持 8 位量化以挤出额外速度。

为什么重要

Whisper 是一个受欢迎且高质量的语音转文字模型,但参考实现相对较慢且耗内存,尤其是较大的模型尺寸。Faster-whisper 让相同的准确性在实时或近乎实时的场景(例如实时字幕、长录音批量处理)中也能实现,且不需要现代 GPU 或高性能多核 CPU 以外的特殊硬件。加速也降低了大型转录管线的云计算成本。

如何开始

  1. 安装 – 此库位于 PyPI 上:
    pip install faster-whisper
    
    (可选:使用 README 中显示的 URL 安装特定提交或 master 分支。)
  2. 选择模型大小 – 例如 "large-v3"、"distil-large-v3",或 Hugging Face Hub 上支持的任何 Whisper 大小。
  3. 创建模型,指定设备和精度:
    from faster_whisper import WhisperModel
    model = WhisperModel("large-v3", device="cuda", compute_type="float16")
    
  4. 转录音频文件:
    segments, info = model.transcribe("audio.mp3", beam_size=5)
    print(info.language, info.language_probability)
    for s in segments:
        print(f"[{s.start:.2f}s -> {s.end:.2f}s] {s.text}")
    
    segments 是一个生成器,因此当你迭代它时转录才会执行。
  5. 可选的额外功能 – 启用词级时间戳、基于 VAD 的静音移除,或批量转录以获得更高吞吐量(请参阅 README 中的确切参数)。

何时使用

  • 实时或近乎实时的字幕 – GPU 批量模式可以在约 16 秒内完成 13 分钟的视频。
  • 大型音频集合的批量处理 – CPU int8 模式提供了良好的速度与内存取舍。
  • 需要 Whisper 兼容输出但无法承受原始运行时的项目 – 例如网络服务、桌面应用或研究管线。
  • 当你想实验蒸馏 Whisper 模型时 – 此库直接支持 distil-large-v3 检查点。

限制与注意事项

  • GPU 需求 – 你需要 CUDA 12、cuBLAS 和 cuDNN 9(或为旧版 CUDA 降级 ctranslate2)。在 Windows 上安装这些库可能很复杂。
  • 内存使用 – 最快的批量模式会增加 VRAM(在 3070 Ti 上批量大小 8 时最多约 6 GB)。请相应规划 GPU 资源。
  • 默认光束大小 – 此库默认光束大小为 5,比 openai/whisper 的默认值大。较大的光束可提高准确性,但会增加延迟。
  • 模型转换 – 如果你想运行自定义或微调的 Whisper 检查点,你必须先使用提供的 ct2-transformers-converter 脚本将其转换为 CTranslate2 格式。
  • Silero VAD – 批量转录默认启用 VAD 过滤;它可能会丢弃某些应用程序视为语音的非常短的停顿。

TL;DR:Faster-whisper 是一个围绕 Whisper 的即插即用、更快、更低内存的 Python 包装器,利用 CTranslate2。通过 pip 安装,选择模型,然后调用 model.transcribe。它非常适合实时或大规模转录,但你需要兼容的 CUDA 库才能使用 GPU,并且可能需要转换自定义模型。

相关

  • 项目
  • 项目
  • 项目
  • 项目