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 以外的特殊硬件。加速也降低了大型转录管线的云计算成本。
如何开始
- 安装 – 此库位于 PyPI 上:
(可选:使用 README 中显示的 URL 安装特定提交或 master 分支。)pip install faster-whisper - 选择模型大小 – 例如
"large-v3"、"distil-large-v3",或 Hugging Face Hub 上支持的任何 Whisper 大小。 - 创建模型,指定设备和精度:
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") - 转录音频文件:
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是一个生成器,因此当你迭代它时转录才会执行。 - 可选的额外功能 – 启用词级时间戳、基于 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,并且可能需要转换自定义模型。
相关
- 项目
- 项目
- 项目
- 项目