whisper.cpp - 高性能Whisper语音识别推理
文章目录
一、关于 whisper.cpp
1、项目概览
whisper.cpp 是 OpenAI Whisper 自动语音识别(ASR)模型的高性能推理实现,具有以下技术特性:
- 纯C/C++实现,无外部依赖
- 针对Apple Silicon优化(ARM NEON/Accelerate/Metal/Core ML)
- 支持x86架构的AVX指令集
- 支持POWER架构的VSX指令集
- 混合F16/F32精度
- 支持整数量化
- 运行时零内存分配
- 支持Vulkan/NVIDIA GPU加速
- 支持CPU-only推理
- 提供C风格API
- 支持语音活动检测(VAD)
2、相关链接资源
- GitHub仓库:https://github.com/ggml-org/whisper.cpp
- 官方文档:https://github.com/ggml-org/whisper.cpp/blob/master/README.md
- 模型下载:https://huggingface.co/ggerganov/whisper.cpp
- 演示视频:
- 许可证:MIT
3、功能特性
- 多平台支持
- Mac OS (Intel/Apple Silicon)
- iOS/Android
- Linux/Windows/FreeBSD
- WebAssembly/Raspberry Pi
- 硬件加速支持
- Apple Neural Engine (Core ML)
- NVIDIA CUDA
- Vulkan跨平台GPU加速
- OpenBLAS CPU加速
- Ascend NPU支持
- 高级功能
- 实时音频输入处理
- 置信度颜色标注
- 词级时间戳
- 说话人分离
- 卡拉OK式视频生成
二、安装配置
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 --config Release 三、使用示例
1、基础转录
./build/bin/whisper-cli -f samples/jfk.wav 2、实时音频处理
./build/bin/whisper-stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 50003、量化模型使用
./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 四、高级功能
1、Core ML加速(Mac)
./models/generate-coreml-model.sh base.en cmake -B build -DWHISPER_COREML=1 cmake --build build -j --config Release 2、OpenVINO加速
python convert-whisper-to-openvino.py --model base.en cmake -B build -DWHISPER_OPENVINO=1 cmake --build build -j --config Release 3、NVIDIA CUDA加速
cmake -B build -DGGML_CUDA=1 cmake --build build -j --config Release 五、性能参考
| 模型 | 磁盘占用 | 内存占用 |
|---|---|---|
| tiny | 75 MiB | ~273 MB |
| base | 142 MiB | ~388 MB |
| large | 2.9 GiB | ~3.9 GB |
六、扩展支持
1、Docker使用
docker run -it --rm \ -v path/to/models:/models \ whisper.cpp:main "whisper-cli -m /models/ggml-base.bin -f ./samples/jfk.wav"2、语言绑定
- Python/Rust/Go/Java/Ruby/.NET等
- iOS(Swift)/Android(Java)移动端支持
七、注意事项
- 当前仅支持16-bit WAV音频输入
- 首次运行Core ML/OpenVINO需要编译时间
- 实时处理需要SDL2库支持
伊织 xAI 2025-05-18(日)