关键要点
- 由Guillaume Klein于2023年3月开发;目前由GitHub上的SYSTRAN维护。
- MIT许可证——可免费使用、修改和分发,包括商业用途。
- 在相同硬件上,转录速度约为原始openai-whisper包的4倍。
- 支持NVIDIA CUDA GPU(float16/int8)和CPU(int8)作为计算类型。
- 内置Silero VAD(语音活动检测)过滤器,自动跳过静音片段。
- 最新稳定版本:v1.2.1,于2025年10月31日发布。
📍 简单一句话
faster-whisper是一款免费、采用MIT许可证的Python重新实现,基于OpenAI的语音识别模型Whisper,由Guillaume Klein开发并由SYSTRAN维护,使用CTranslate2推理引擎将转录速度提升至原始实现的约4倍,并降低内存占用。
💬 简单来说
这是一个通过pip install安装的Python库,用于在你自己的机器上把音频转换成文字,使用的是OpenAI训练过的相同Whisper模型,但通过更快、更省内存的引擎运行——无需调用云端API,并且已内置自动静音检测。
📌注: 本评测聚焦faster-whisper作为独立工具的方方面面:历史、安装、真实Python代码、许可证以及真实局限。若需在Apple Silicon和NVIDIA GPU上与whisper.cpp进行直接性能对比,请参阅whisper.cpp对比faster-whisper。
历史:faster-whisper的开发者与初衷
OpenAI于2022年9月发布了其语音识别模型Whisper,这是一个基于PyTorch构建、以Python包(openai-whisper)形式分发的开放权重模型,运行起来简单,但默认并未针对推理速度或内存效率进行优化。
Guillaume Klein于2023年3月开发了faster-whisper,并将其发布在SYSTRAN/faster-whisper仓库中。Klein将faster-whisper构建于CTranslate2之上——这是一个面向Transformer模型的C++和Python推理引擎,最初在机器翻译项目OpenNMT中开发,而SYSTRAN(一家在机器翻译领域历史悠久的公司)长期以来一直在投资该项目。CTranslate2提供自定义CUDA内核、INT8/FP16量化以及通用PyTorch推理默认不会应用的融合运算。
其动机是推理效率,而非一个全新模型。 faster-whisper不训练或修改Whisper模型架构——它加载OpenAI训练的相同权重,转换为CTranslate2的模型格式,并通过一个经过大幅优化的执行路径运行。该项目报告的结果是,在相同硬件上,转录速度比原始openai-whisper实现最高快约4倍,并通过int8量化降低内存占用,在同等设置下没有可测量的精度损失。
该项目已发展成为使用最广泛的基于CTranslate2的Whisper封装库。 它增加了内置的Silero VAD过滤器,可自动检测并跳过静音音频片段,还增加了词级时间戳和批量推理支持,同时始终专注于成为一个快速、易于集成的库,而非一个完整的应用程序。它继续在GitHub的SYSTRAN组织下维护,发布节奏与CTranslate2的新版本和Whisper模型更新保持同步。
faster-whisper是谁开发的?
Guillaume Klein于2023年3月开发了faster-whisper,构建于推理引擎CTranslate2之上。该项目目前由GitHub上的SYSTRAN维护。
faster-whisper实际能做什么
faster-whisper接收一个音频文件作为输入,通过Python类WhisperModel生成文本转录,使用经CTranslate2转换的Whisper模型版本,以远快于原始基于PyTorch实现的速度运行推理。
- 快速批量转录。 加载一次
WhisperModel,对音频文件调用.transcribe(),即可获得带时间戳的分段结果生成器以及语言检测信息。 - 内置语音活动检测(VAD)。 设置
vad_filter=True会在转录前运行Silero VAD模型,自动去除静音片段,减少无谓的计算和在静音上产生的幻觉文本。 - 多种计算类型。 在GPU上选择
float16或int8_float16,或在CPU上选择int8,以少量精度损失换取更低的内存占用和更高的速度。 - 词级时间戳。 传入
word_timestamps=True可在分段时间戳之外,额外返回每个词的时间信息。 - 批量推理。
BatchedInferencePipeline类可并行批量处理多个音频片段,提升长文件的吞吐量。 - 多语言转录与翻译。 与底层Whisper模型一样,faster-whisper可以用原始语言转录,也可以通过
task="translate"参数直接翻译成英语。
安装并运行faster-whisper:分步指南
本指南使用项目自身README中记载的语法,通过pip安装faster-whisper并运行首次转录。
- 1安装faster-whisper。
Why it matters: 在Python环境中(建议使用Python 3.9及以上版本)运行`pip install faster-whisper`。这会安装该库及其CTranslate2依赖;若仅在CPU上使用,无需单独安装CUDA工具包。 - 2(仅GPU)确认CUDA和cuDNN可用。
Why it matters: 要实现GPU加速,需要有正常工作的NVIDIA驱动和CUDA配置。faster-whisper依赖CTranslate2的GPU支持——如果`device="cuda"`失败,请先确认`nvidia-smi`能正确识别你的GPU,再排查Python端的问题。 - 3加载模型。
Why it matters: 在Python中运行`from faster_whisper import WhisperModel`,然后运行`model = WhisperModel("large-v3", device="cuda", compute_type="float16")`。如需更小更快的模型,将`"large-v3"`替换为`"tiny"`、`"base"`、`"small"`或`"medium"`;若没有GPU,使用`device="cpu"`配合`compute_type="int8"`。 - 4转录一个音频文件。
Why it matters: 运行`segments, info = model.transcribe("audio.mp3", beam_size=5)`。这会返回一个分段的生成器(不是列表)——必须对其进行迭代,转录才会真正执行。 - 5打印转录结果。
Why it matters: 遍历分段:`for segment in segments: print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))`。每个分段都带有起始时间、结束时间以及该时间段的转录文本。 - 6(可选)启用VAD过滤。
Why it matters: 向`.transcribe()`传入`vad_filter=True`,即可使用内置的Silero VAD模型自动跳过静音的音频片段,减少在带有停顿的长录音上浪费的计算量。 - 7(可选)获取词级时间戳。
Why it matters: 向`.transcribe()`传入`word_timestamps=True`,可在分段时间之外获得每个词的时间信息,便于制作字幕或在朗读时高亮显示词语。
真实使用示例
除了上面的基础安装指南外,以下是取自项目自身文档的常见使用模式。
- BatchedInferencePipeline 封装了
WhisperModel,可并行处理多个音频块,提升长文件的吞吐量:from faster_whisper import BatchedInferencePipeline; batched_model = BatchedInferencePipeline(model=model)。 - 与distil-large-v3的兼容性。 faster-whisper原生支持像distil-large-v3这样的蒸馏版Whisper变体——像加载标准模型名称一样加载它,即可以少量精度换取约6倍的推理速度。
from faster_whisper import WhisperModel
# GPU 使用 float16(最快,需要 CUDA + cuDNN)
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
# CPU 使用 int8(无需GPU,速度较慢)
# model = WhisperModel("base", device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5, vad_filter=True)
print(f"Detected language '{info.language}' with probability {info.language_probability:.2f}")
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
# 将非英语语音直接翻译为英文文本
segments, info = model.transcribe("french-audio.mp3", task="translate")
# 用于字幕的词级时间戳
segments, info = model.transcribe("audio.mp3", word_timestamps=True)
for segment in segments:
for word in segment.words:
print("[%.2fs -> %.2fs] %s" % (word.start, word.end, word.word))许可证与成本
faster-whisper采用MIT许可证。 官方仓库中的许可证文件允许免费使用、修改和分发,包括用于闭源和商业产品,无需支付版税,除保留许可证声明外无需其他署名要求。
faster-whisper本身没有付费套餐、订阅或许可费用。 唯一的实际成本是你运行它所用的硬件(或租用的云端GPU实例),以及如果在其上构建产品所投入的开发时间。没有用量计费,没有API密钥,也不存在供应商锁定。
faster-whisper所依赖的推理引擎CTranslate2同样采用MIT许可证,底层Whisper模型权重也由OpenAI单独以MIT许可证发布,因此整个技术栈(运行环境、推理引擎和模型权重)均采用对商业使用宽松的许可证。
faster-whisper能否免费用于商业用途?
可以。faster-whisper采用MIT许可证,其CTranslate2依赖也采用MIT许可证,它所使用的Whisper模型权重同样由OpenAI以MIT许可证发布。三者都允许免费进行商业使用、修改和分发。
faster-whisper不适合的场景
faster-whisper是一个快速的Python转录库,不是完整的对话式AI产品,也不是不依赖Python的部署工具。在以下情况下它不是合适的工具:
- 不依赖Python或跨平台二进制部署。 faster-whisper是一个带有原生CTranslate2依赖的Python库——它并非设计成像whisper.cpp那样单一、无依赖的二进制文件。如果你需要面向Raspberry Pi、iOS应用或没有Python环境的WebAssembly页面,whisper.cpp更适合。
- Apple Silicon GPU加速。 faster-whisper的CTranslate2后端支持CPU和NVIDIA CUDA,但没有Apple Metal GPU加速路径——在Mac上,faster-whisper会回退到仅CPU推理。PromptQuorum的测评发现,在Apple Silicon上,带有Metal加速的whisper.cpp明显快于仅使用CPU的faster-whisper。
- 说话人分离("谁说了什么")。 faster-whisper会转录说了什么,但不会原生分离或标注多人录音中的不同说话人。要实现说话人分离,请将其转录结果与专用工具结合,或使用WhisperX,它在Whisper转录基础上叠加了说话人分离功能。
- 面向非技术用户的零配置体验。 faster-whisper是面向构建流水线的开发者的Python库,而不是带图形界面的终端用户应用程序。想要一键式转录应用的用户,应该寻找基于faster-whisper或whisper.cpp构建的应用程序,或托管式转录服务。
faster-whisper的替代方案
whisper.cpp
- 最适合:
- 不依赖Python的跨平台部署——Apple Silicon、嵌入式设备、移动端
- 许可证:
- MIT
WhisperX
- 最适合:
- 需要在Whisper/faster-whisper基础上获得词级时间戳和说话人分离
- 许可证:
- BSD-2-Clause
insanely-fast-whisper
- 最适合:
- 在非常新的GPU上,通过Hugging Face Transformers和Flash Attention实现最大GPU吞吐量
- 许可证:
- Apache-2.0
OpenAI Whisper API
- 最适合:
- 相较于自托管,更偏好按使用付费的托管云端API的团队
- 许可证:
- 专有(付费API)
常见问题
faster-whisper是什么?
faster-whisper是一款免费的、采用MIT许可证的Python重新实现,基于OpenAI的语音识别模型Whisper,由Guillaume Klein开发并由SYSTRAN维护,使用CTranslate2推理引擎实现明显快于原始实现的转录速度。
faster-whisper免费吗?
是的。faster-whisper采用MIT许可证,没有付费套餐、订阅或使用费用。其CTranslate2依赖和底层Whisper模型权重同样采用MIT许可证。
运行faster-whisper需要GPU吗?
不需要。faster-whisper通过int8量化支持CPU推理,不过在使用float16或int8_float16计算类型的NVIDIA GPU上运行CUDA时速度最快。它没有Apple Metal GPU加速路径,因此在Mac上仅在CPU上运行。
faster-whisper比原始OpenAI Whisper快多少?
该项目报告称,在相同硬件上,转录速度比原始openai-whisper包最高快约4倍,并通过int8量化降低内存占用,在同等设置下没有明显的精度损失。
faster-whisper和whisper.cpp有什么区别?
faster-whisper是基于CTranslate2的Python库,主要针对Python流水线中的NVIDIA GPU吞吐量进行优化。whisper.cpp是不依赖Python的纯C/C++实现,专为在CPU、Apple Metal、CUDA和嵌入式设备之间的可移植性而构建。有关各平台的具体数据,请参阅PromptQuorum的详细对比评测。
faster-whisper支持语音活动检测吗?
支持。向.transcribe()传入vad_filter=True会运行一个内置的Silero VAD模型,在转录前自动检测并跳过静音的音频片段。
faster-whisper能生成词级时间戳吗?
可以。向.transcribe()传入word_timestamps=True,除了默认的分段时间戳外,还会返回每个词的起止时间,便于生成字幕。
faster-whisper会把音频翻译成英语吗?
会。向.transcribe()传入task="translate",可以转录非英语语音并直接翻译成英文文本,利用的是多语言Whisper模型内置的翻译能力。
目前是谁在维护faster-whisper?
该项目由Guillaume Klein于2023年3月创建,目前由GitHub上的SYSTRAN组织维护。其最新稳定版本为v1.2.1,于2025年10月31日发布。
结论
faster-whisper实现了它的核心目标:在不改变模型输出内容的前提下,让Python开发者使用的OpenAI Whisper模型明显更快、更省内存。它的CTranslate2后端提供约4倍于原始实现的吞吐量,内置的Silero VAD过滤器对于含有静音的真实音频来说是真正实用的便利,而MIT许可证也让在其基础上构建商业产品变得安全可靠。它免费、维护良好,并在给定模型规模下提供与原始Whisper一致的转录质量。它并非最强选择的场景是不依赖Python的部署,或需要在Apple Silicon上进行GPU加速的部署——正如PromptQuorum的直接对比评测所记录的那样,whisper.cpp的Metal支持和无依赖二进制文件在这种场景下更胜一筹。对于所有在NVIDIA GPU或CPU上构建Python语音识别流水线、希望在不离开Python生态系统的前提下获得速度的人来说,faster-whisper都是一个经过充分验证、零成本的起点。
资料来源
- GitHub上的faster-whisper ——官方仓库:README、安装说明、许可证和版本历史。
- faster-whisper发布记录 ——版本历史,包括v1.2.1(2025年10月31日)。
- faster-whisper许可证 ——MIT许可证文本。
- GitHub上的CTranslate2 ——faster-whisper所基于的推理引擎。
- OpenAI Whisper发布公告 ——Whisper模型2022年的原始发布。
