Whisper.cpp 完整使用指南
OpenAI 的 Whisper 模型在 C/C++ 中的移植版本。项目提供了高性能的离线语音识别解决方案。这个项目最大的亮点在于完全用纯 C/C++ 实现,无需任何外部依赖,就能在各种平台上实现高效的语音转文字功能。
为什么选择 Whisper.cpp
在众多语音识别工具中,Whisper.cpp 凭借其独特的优势脱颖而出:
- 跨平台兼容性 - 从 macOS、iOS 到 Android、Linux,甚至 WebAssembly 和 Windows 系统都能完美运行,连 Raspberry Pi 和 Docker 容器都支持。
- 极致性能优化 - 针对苹果 Silicon 芯片深度优化,支持 ARM NEON、Accelerate 框架、Metal 和 Core ML 等多种加速技术。
- 轻量级设计 - 运行时零内存分配,资源消耗极低,特别适合嵌入式设备和移动端应用。
快速上手:5 分钟搭建语音识别环境
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
sh ./models/download-ggml-model.sh base.en
cmake -B build
cmake --build build --config Release
./build/bin/whisper-cli -f samples/jfk.wav
这几行命令就能让你在本地搭建起完整的语音识别系统!
核心功能深度解析
多模型支持
Whisper.cpp 支持从 tiny 到 large 的多种模型规格,满足不同场景需求:
- tiny.en - 75MB 磁盘,273MB 内存
- base.en - 142MB 磁盘,388MB 内存
- small.en - 466MB 磁盘,852MB 内存
- medium - 1.5GB 磁盘,2.1GB 内存
- large - 2.9GB 磁盘,3.9GB 内存
量化技术
通过整数量化技术,可以进一步减小模型体积:
./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
实时语音识别
想要实现实时语音输入?stream 工具可以帮你:
./build/bin/stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 5000
这个功能特别适合开发语音助手、实时字幕等应用场景。
实用技巧与最佳实践
音频格式处理
Whisper.cpp 目前主要支持 16 位 WAV 文件。如果你的音频是其他格式,可以使用 ffmpeg 进行转换:
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
硬件加速配置
根据你的硬件环境,可以开启不同的加速选项:
- 苹果设备:
cmake -B build -DWHISPER_COREML=1 - NVIDIA 显卡:
cmake -B build -DGGML_CUDA=1

