whisper.cpp
OpenAI Whisper 语音识别模型的纯 C/C++ 高性能推理实现,无第三方依赖,支持 CPU 与多种 GPU/NPU 加速,可在 Mac、iOS、Android、Linux、Windows、树莓派与 WebAssembly 上离线运行。
过去 7 天收获 2 颗 Star
爱鲜报评分
0 人评分
55k
星数
否
中文
C++
主语言
是
活跃
1098
贡献者
人工分析
EDITORIAL推荐理由
把 Whisper 从 Python 生态搬到 C/C++,让语音转文字可以零依赖地嵌入桌面、移动端和嵌入式设备,是本地 ASR 落地的首选方案之一。项目由 ggml 团队维护,5.4 万 Star、生态成熟,配套 CLI、示例与多语言绑定齐全。对需要离线、隐私敏感或低延迟语音识别的团队,值得优先评估。
适用场景
- 本地离线语音转文字
- 移动端/嵌入式端侧 ASR
- 会议录音与字幕生成
- 语音助手与命令词识别
- 长音频批量转写流水线
优点
- 纯 C/C++ 实现,无第三方依赖,集成成本低
- 跨平台覆盖广:macOS/iOS/Android/Linux/Windows/WASM/树莓派
- 支持 Metal、Core ML、CUDA、Vulkan、ROCm、OpenVINO 等多种加速后端
- 支持整数量化,模型体积与内存占用可大幅压缩
- 提供 C 风格 API 与多语言绑定,示例丰富
- MIT 协议,商用友好
缺点
- CLI 示例仅接受 16kHz 单声道 16bit WAV,需先用 ffmpeg 转码
- 模型文件需单独下载,首次使用有额外准备步骤
- 不同硬件后端编译参数不同,调优需要一定经验
- 大模型(large)内存占用较高,低配设备需量化或选小模型
项目简介
whisper.cpp 是 OpenAI Whisper 自动语音识别(ASR)模型的 C/C++ 高性能推理实现。它把原本依赖 PyTorch 的模型移植到轻量级 C/C++ 运行时,使语音转文字可以离线运行在从手机到服务器的各类设备上。
模型的高层实现集中在 whisper.h 与 whisper.cpp,底层张量计算由同团队的 ggml 机器学习库提供。
核心特性
- 零依赖:纯 C/C++ 实现,不引入 Python 运行时
- 多平台:macOS、iOS、Android、Linux、FreeBSD、Windows、WebAssembly、树莓派、Docker
- 多硬件加速:Apple Silicon(NEON / Accelerate / Metal / Core ML)、x86 AVX、POWER VSX、NVIDIA CUDA、Vulkan、AMD ROCm、OpenVINO、昇腾 NPU 等
- 量化支持:可将模型量化为 Q5_0 等整型格式,显著降低内存与磁盘占用
- 运行时零内存分配,适合对实时性有要求的场景
- 内置 VAD(语音活动检测),便于处理长音频
- C 风格 API,并提供 Java、.NET、Node.js 等绑定
快速上手
克隆仓库并下载 ggml 格式模型:
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
sh ./models/download-ggml-model.sh base.en
使用 CMake 构建并转写音频:
cmake -B build
cmake --build build -j --config Release
./build/bin/whisper-cli -f samples/jfk.wav
注意 CLI 示例只接受 16kHz 单声道 16bit WAV,其他格式可先用 ffmpeg 转换:
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
模型与资源占用
| 模型 | 磁盘 | 内存 |
|---|---|---|
| tiny | 75 MiB | ~273 MB |
| base | 142 MiB | ~388 MB |
| small | 466 MiB | ~852 MB |
| medium | 1.5 GiB | ~2.1 GB |
| large | 2.9 GiB | ~3.9 GB |
资源受限的设备可优先选择 tiny/base 或使用量化模型。
量化示例
./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0
./build/bin/whisper-cli -m models/ggml-base.en-q5_0.bin ./samples/gb0.wav
适用建议
如果目标是构建离线、隐私友好的语音转写能力,或需要把 ASR 嵌入移动端与嵌入式设备,whisper.cpp 是目前最成熟的方案之一。初次接入建议先用 base.en 跑通流程,再根据硬件选择加速后端与量化等级。
评论
- 暂无评论,来写第一条吧。