ggml-org/whisper.cpp
机器学习用 C/C++ 在本地运行 OpenAI Whisper 语音识别,可在 CPU、GPU 与 NPU 上离线转写音频。
项目介绍
whisper.cpp 是 OpenAI Whisper 自动语音识别模型的 C/C++ 实现,不依赖外部运行时 模型来源。模型主体放在 whisper.h 和 whisper.cpp 中,其余部分由 ggml 机器学习库提供 核心文件 ggml。这种轻量形态适合把离线转写嵌入桌面、移动端、WebAssembly 和嵌入式程序。
项目支持 F16/F32 混合精度、整数量化、语音活动检测和 C 风格 API。后端覆盖 CPU(AVX、NEON、VSX 指令集)、Apple Silicon 上的 Metal/Core ML/ANE、CUDA 与 Vulkan、ROCm、OpenVINO、CANN、MUSA 和 Ryzen AI NPU,并提供了 Docker 镜像。
快速使用
克隆仓库、下载转换后的模型,然后构建并转写示例音频:
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
sh ./models/download-ggml-model.sh base.en
cmake -B build
cmake --build build -j --config Release
./build/bin/whisper-cli -f samples/jfk.wav
可用模型和转换方式见 models README。命令行参数可用 ./build/bin/whisper-cli -h 查看。CLI 只接受 16-bit WAV 输入,其他格式需要先转换:
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
需要只处理语音片段时,可下载 VAD 模型并通过 --vad 启用:
./models/download-vad-model.sh silero-v6.2.0
./build/bin/whisper-cli -vm models/ggml-silero-v6.2.0.bin --vad -m models/ggml-base.en.bin -f samples/jfk.wav
GPU 和 NPU 构建使用 -DGGML_CUDA=1、-DGGML_VULKAN=1、-DGGML_HIP=1 或 -DWHISPER_OPENVINO=1 等 CMake 参数,使用前需安装对应工具链。
使用约束
项目只做推理,不支持训练或微调 限制说明。运行内存随模型规模变化:tiny 约需 273 MB,large 约需 3.9 GB;磁盘占用从 75 MiB 到 2.9 GiB 内存表。Whisper 适合 16 kHz 单声道音频。加速后端需要各自的 SDK 和配置,Core ML 或 OpenVINO 首次运行会编译设备专用模型,耗时较长。
项目采用 MIT 许可证。量化模型能降低内存和磁盘占用,但转录精度会较完整精度模型有所损失。
HotRepo 点评
2026-11-13 的 C++ 日榜记录中,该项目单日新增 40 Star,并取得该榜第 4 名。仓库已有 5.5 万以上 Star 和 6300 以上 Fork,说明它的使用范围远超小规模示例。单日涨幅本身不能说明趋势,但覆盖多类硬件后端和平台的支持范围,与其在离线语音识别领域的持续采用相符。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。
Hacker News 讨论
相关推荐
- openai/whisper面向多语言语音识别、翻译和语种识别的通用语音模型,适合开发者与研究者在本地搭建转写流程。
- OpenWhispr/openwhispr跨平台桌面听写与会议记录工具,可用本地或自带密钥的语音模型,适合不愿把音频交给云服务的人。
- ggml-org/llama.cpp在没有 Python 依赖的情况下,让 LLM 和 VLM 在本机 CPU、GPU、手机上跑推理。
- 0xShug0/audio.cpp一个基于 ggml 的纯 C++ 音频推理运行时,无需 Python 就能在本地跑 TTS、语音识别、音乐生成等多种音频模型。
- FlashML-org/FreeToken把消费级显卡、CPU 和内存合并成统一推理平台,让个人电脑本地运行数百亿参数级 MoE 模型。