关键要点
- 由Georgi Gerganov于2022年开发;目前由GitHub上的ggml-org组织维护。
- MIT许可证——可免费使用、修改和分发,包括商业用途。
- 支持CPU、Apple Metal/Core ML、NVIDIA CUDA、Vulkan、OpenVINO、AMD ROCm及Ascend NPU等后端。
- 无需Python运行时——以编译好的C/C++二进制文件形式发布,并提供可选的Python绑定。
- 通过其流式传输示例支持实时麦克风转录,同时也支持文件批量转录。
- 最新稳定版本:v1.9.3,于2026年8月20日发布。
📍 简单一句话
whisper.cpp是一款免费、采用MIT许可证的C/C++移植版,基于OpenAI的语音识别模型Whisper,由Georgi Gerganov开发,通过CPU、Apple Metal、NVIDIA CUDA等多种后端在设备本地完全转录音频,无需Python。
💬 简单来说
它在你自己的电脑或设备上把说话内容转换成文字,而不是发送到云端API——你下载一个编译好的二进制文件或自行编译,输入音频文件或实时麦克风流,它就会免费返回转录结果,使用的正是OpenAI训练过的模型。
📌注: 本评测聚焦whisper.cpp作为独立工具的方方面面:历史、安装、真实命令、许可证以及真实局限。若需在Apple Silicon和NVIDIA GPU上与faster-whisper进行直接性能对比,请参阅whisper.cpp对比faster-whisper。
历史:whisper.cpp的开发者与初衷
OpenAI于2022年9月发布了其语音识别模型Whisper,这是一个基于大量多语言音频数据训练的开放权重模型,以Python包(openai-whisper)形式分发,依赖PyTorch,若追求良好性能则还需要支持CUDA的GPU。
Georgi Gerganov在此后不久,同样在2022年,将该模型移植为纯C/C++,项目位于ggml-org/whisper.cpp仓库。Gerganov同时也是支撑whisper.cpp数学运算与量化的ggml张量库的创建者,后来他因llama.cpp而广为人知——这是用于本地运行大语言模型的同类C/C++移植版。两个项目共享相同的ggml基础和相同的设计目标:让通常需要Python和GPU的模型在普通硬件上运行。
其动机是可移植性和资源效率,而不仅仅是速度。 Whisper原始的Python/PyTorch实现在配备优秀GPU的工作站上运行起来很简单,但要部署到Raspberry Pi、iOS应用、WebAssembly页面或没有Python解释器的嵌入式Linux板上则相当笨重。whisper.cpp完全去除了对PyTorch和Python的依赖,编译为一个小型二进制文件,并加入量化支持,让更小的模型变体能够装进几百兆字节的内存中。
该项目早已远远超越了一个人的业余项目。 如今它拥有数百名贡献者,已被打包进Debian,并为Core ML(Apple神经网络引擎)、CUDA、Vulkan、OpenVINO等在2022年原始版本中并不存在的后端提供官方支持。但它始终是Whisper的*运行环境*——它不训练或微调自己的模型,每次转录仍然使用OpenAI针对给定模型规模(从tiny到large-v3)发布的相同权重,只是转换成了该项目自己的GGML格式。
whisper.cpp是谁开发的?
Georgi Gerganov开发了whisper.cpp,并于2022年首次将其作为OpenAI Whisper模型的C/C++移植版发布。Gerganov同时也创建了它所依赖的ggml张量库,后来又开发了用于本地运行大语言模型的同类移植项目llama.cpp。
whisper.cpp实际能做什么
whisper.cpp接收音频输入——一个文件(WAV,以及通过可选的FFmpeg解码支持的其他格式)或实时麦克风流——并生成文本转录,可选择附带每段时间戳以及英语翻译。为此,它会加载一个Whisper模型(已转换为该项目的GGML权重格式),并通过ggml张量库完全在本地机器上执行推理。
- 批量转录。 将
whisper-cli二进制文件指向一个音频文件即可获得转录结果,支持纯文本、SRT/VTT字幕、JSON或CSV格式输出。 - 实时流式传输。
whisper-stream示例可捕获实时麦克风音频并持续转录,适用于语音助手或实时字幕场景。 - 多语言转录与翻译。 底层Whisper模型经过多种语言训练;whisper.cpp可以根据传入的参数,以原始语言转录或直接翻译成英语。
- 硬件加速推理。 在Apple Silicon上,whisper.cpp可以将模型导出为Core ML格式以利用Apple神经网络引擎;在NVIDIA硬件上使用CUDA;在其他GPU上可以使用Vulkan或OpenVINO。在仅有CPU的机器上,使用AVX2(x86)或NEON(ARM)向量指令。
- 量化。 模型可以被量化(例如量化为4位或5位的GGML格式),以少量精度损失换取显著更低的内存占用和更快的推理速度——这与llama.cpp用于大语言模型的技术相同。
安装并运行whisper.cpp:分步指南
本指南使用项目自身README中记载的命令,从源码构建whisper.cpp并运行首次转录。
- 1克隆仓库。
Why it matters: 运行`git clone https://github.com/ggml-org/whisper.cpp.git`,然后运行`cd whisper.cpp`。这会拉取完整的C/C++源码树,包括CMake构建文件和模型下载脚本。 - 2下载模型。
Why it matters: 运行`sh ./models/download-ggml-model.sh base.en`以获取GGML格式的英语专用base模型。根据你想要的精度与速度取舍,将`base.en`替换为`tiny`、`small`、`medium`或`large-v3`,或去掉`.en`后缀以获取多语言模型。 - 3构建项目。
Why it matters: 运行`cmake -B build`,然后运行`cmake --build build -j --config Release`。这会将CLI二进制文件(`whisper-cli`、`whisper-stream`等)编译到`build/bin/`目录中。此步骤无需安装Python。 - 4转录示例文件。
Why it matters: 使用仓库自带的示例音频文件运行`./build/bin/whisper-cli -f samples/jfk.wav`。这可以确认构建是否端到端正常工作,并在终端中输出转录结果。 - 5转录你自己的音频。
Why it matters: 将示例路径替换为你自己的WAV文件:`./build/bin/whisper-cli -m models/ggml-base.en.bin -f your-audio.wav`。添加`-osrt`可同时写出`.srt`字幕文件,或添加`-oj`以输出JSON格式。 - 6(可选)启用GPU加速。
Why it matters: 在Apple Silicon上,只要使用macOS默认CMake参数构建,Metal加速就会自动启用。在NVIDIA机器上,在`cmake -B build`步骤中添加`-DGGML_CUDA=ON`(需要已安装CUDA工具包)以启用CUDA支持进行构建。 - 7(可选)尝试实时转录。
Why it matters: 构建流式传输示例并运行`./build/bin/whisper-stream -m models/ggml-base.en.bin`,以持续转录实时麦克风音频,而非固定文件。
真实使用示例
除了上面的基础安装指南外,以下是whisper-cli二进制文件在真实场景中的常见调用方式。
- pywhispercpp 为whisper.cpp提供Python绑定,适合希望利用Metal/CUDA加速、但更倾向于从Python代码调用而非逐个文件调用CLI二进制文件的团队。
- whisper.cpp还附带一个小型本地HTTP服务器示例(
whisper-server),适合希望通过HTTP发送音频而非逐个文件调用CLI的团队——便于在不依赖Python的情况下将whisper.cpp集成到现有服务中。
# 将音频文件转录为纯文本(默认输出)
./build/bin/whisper-cli -m models/ggml-base.en.bin -f interview.wav
# 使用更大、更精确的模型进行转录并输出SRT字幕
./build/bin/whisper-cli -m models/ggml-large-v3.bin -f lecture.wav -osrt
# 将非英语语音直接翻译为英文文本
./build/bin/whisper-cli -m models/ggml-medium.bin -f french-audio.wav -tr
# 指定特定GPU(多GPU机器)
./build/bin/whisper-cli -m models/ggml-large-v3.bin -f audio.wav -g 0
# 从默认麦克风进行实时转录
./build/bin/whisper-stream -m models/ggml-base.en.bin -t 8许可证与成本
whisper.cpp采用MIT许可证。 官方仓库中的许可证文件允许免费使用、修改和分发,包括用于闭源和商业产品,无需支付版税,除保留许可证声明外无需其他署名要求。
whisper.cpp本身没有付费套餐、订阅或许可费用。 唯一的实际成本是你运行它所用的硬件(如果选择托管,则是云端虚拟机成本),以及如果在其上构建产品所投入的开发时间。没有用量计费,没有API密钥,也不存在供应商锁定。
底层Whisper模型权重也由OpenAI单独以MIT许可证发布,因此运行环境(whisper.cpp)和它所加载的模型权重,均采用对商业使用宽松的许可证。
whisper.cpp能否免费用于商业用途?
可以。whisper.cpp采用MIT许可证,它所使用的Whisper模型权重同样由OpenAI以MIT许可证发布。两者都允许免费进行商业使用、修改和分发。
whisper.cpp不适合的场景
whisper.cpp是一个转录运行环境,而不是完整的对话式AI或说话人分离产品。在以下情况下它不是合适的工具:
- 说话人分离("谁说了什么")。 whisper.cpp会转录说了什么,但不会原生分离或标注多人录音中的不同说话人。说话人分离需要单独的模型或流水线(例如将whisper.cpp的转录结果与说话人分离工具结合)叠加在其之上。
- 大规模场景下低于100毫秒的流式延迟。 内置的
whisper-stream示例适用于单台机器上的单个实时麦克风,但whisper.cpp并非专门为大量并发用户构建、可水平扩展的实时语音识别服务,而专用的实时语音API正是为此设计的。 - 面向非技术用户的零配置体验。 whisper.cpp是一个命令行工具,大多数用户需要从源码构建或获取编译好的二进制文件——它没有面向非开发者的成熟图形化安装程序或应用商店上架。想要一键式转录应用的用户,应该寻找基于whisper.cpp构建的图形化应用程序,或托管式转录服务。
- 在以Python为主的流水线中榨取NVIDIA GPU的最后一点吞吐量。 在最大规模的模型和NVIDIA硬件上,PromptQuorum的测评发现faster-whisper的CTranslate2后端比whisper.cpp的CUDA路径更快、更省显存——如果你的部署已经是运行在NVIDIA GPU上的Python服务,faster-whisper通常是更合适的选择。
whisper.cpp的替代方案
faster-whisper
- 最适合:
- NVIDIA GPU上的Python流水线——CTranslate2后端,吞吐量约为原始Whisper的4倍
- 许可证:
- MIT
WhisperX
- 最适合:
- 需要在Whisper转录基础上获得词级时间戳和说话人分离
- 许可证:
- BSD-2-Clause
OpenAI Whisper API
- 最适合:
- 相较于自托管,更偏好按使用付费的托管云端API的团队
- 许可证:
- 专有(付费API)
Vosk
- 最适合:
- 资源非常有限的离线设备,需要小体积胜过Whisper级别精度
- 许可证:
- Apache-2.0
常见问题
whisper.cpp是什么?
whisper.cpp是一款免费的、采用MIT许可证的C/C++重新实现,基于OpenAI的语音识别模型Whisper,由Georgi Gerganov开发,可在无需Python运行时的情况下本地执行转录。
whisper.cpp免费吗?
是的。whisper.cpp采用MIT许可证,没有付费套餐、订阅或使用费用。它所使用的Whisper模型权重同样由OpenAI以MIT许可证授权。
运行whisper.cpp需要GPU吗?
不需要。whisper.cpp使用AVX2(x86)或NEON(ARM)优化在CPU上运行,较小的模型(tiny、base)在仅有CPU的硬件上(包括Raspberry Pi)也能轻松实现实时运行。GPU(Apple Metal、NVIDIA CUDA或Vulkan)可以加速像large-v3这样更大的模型,但并非必需。
whisper.cpp支持实时转录吗?
支持,通过whisper-stream示例,可以捕获实时麦克风音频并持续转录。延迟取决于模型规模和硬件——在快速CPU或GPU上运行的较小模型最接近实时。
whisper.cpp和faster-whisper有什么区别?
whisper.cpp是不依赖Python的纯C/C++实现,专为在CPU、Apple Metal、CUDA和嵌入式设备之间的可移植性而构建。faster-whisper是基于CTranslate2的Python库,主要针对Python流水线中的NVIDIA GPU吞吐量进行优化。有关各平台的具体数据,请参阅PromptQuorum的详细对比评测。
whisper.cpp能在Raspberry Pi上运行吗?
可以。得益于whisper.cpp的ARM NEON优化,tiny和base模型可以在Raspberry Pi 5的CPU上实时运行,因为该项目没有任何需要安装的Python或CUDA依赖。
whisper.cpp会把音频翻译成英语吗?
会。向whisper-cli传递-tr(翻译)参数,可以转录非英语语音并直接翻译成英文文本,利用的是多语言Whisper模型内置的翻译能力。
目前是谁在维护whisper.cpp?
该项目由GitHub上的ggml-org组织维护,该组织由最初的创建者Georgi Gerganov创立,并有数百名社区开发者贡献代码。它仍在积极发布新版本,v1.9.3已于2026年8月20日发布。
whisper.cpp能否分离一段录音中的不同说话人?
并非原生支持。whisper.cpp会将语音转录为文本,但本身不执行说话人分离。若要实现"谁说了什么",请将其与专用的说话人分离工具结合使用,或使用WhisperX,它在Whisper转录基础上增加了说话人分离功能。
结论
whisper.cpp恰好实现了它的初衷:让能够编译C/C++的任何设备都能运行OpenAI的Whisper语音识别模型,而无需Python、CUDA或沉重的运行环境。这种可移植性——从Raspberry Pi到Apple Silicon Mac,再到支持Vulkan的GPU都能无需修改地运行——在本地离线转录领域几乎没有可与之媲美的免费替代品,而MIT许可证也让在其基础上构建商业产品变得安全可靠。它免费、维护良好,并使用与原始Whisper相同的模型权重,因此在给定模型规模下的精度与OpenAI发布的版本一致。它并非最强选择的场景,是以Python为主、仅依赖NVIDIA GPU、追求最大吞吐量的流水线——正如PromptQuorum的直接对比评测所记录的那样,faster-whisper的CTranslate2后端在这种场景下更胜一筹。对于其他所有情况——面向嵌入式硬件、Apple Silicon、跨平台应用的开发者,或任何想要单一自包含二进制文件而非Python环境的人——whisper.cpp都是一个经过充分验证、零成本的起点。
资料来源
- GitHub上的whisper.cpp ——官方仓库:README、安装说明、许可证和版本历史。
- whisper.cpp发布记录 ——版本历史,包括v1.9.3(2026年8月20日)。
- whisper.cpp许可证 ——MIT许可证文本。
- OpenAI Whisper发布公告 ——Whisper模型2022年的原始发布。
