7.2 Whisper.cpp

Whisper.cpp 是 OpenAI Whisper 模型的纯 C++ 实现,极其轻量、高效,但需要命令行操作。

快速概览

项目信息
GitHubhttps://github.com/ggml-org/whisper.cpp
支持平台Linux / Windows / macOS / iOS / Android
价格完全开源免费
难度⭐⭐⭐⭐⭐(纯命令行)

为什么有 Whisper.cpp

优势

  • 极快: C++ 实现,无 Python 开销
  • 极小: 单个二进制文件
  • 跨平台: 几乎所有平台都能跑
  • 量化模型: 可大幅减小模型体积
  • 可移植: 嵌入式设备都能跑

局限

  • 纯命令行: 没有 GUI
  • 配置复杂: 需要技术能力
  • 精度略低: 量化版本牺牲少量精度
  • 没有翻译: 仅 ASR

适用人群

推荐

  • ✅ 嵌入式开发者
  • ✅ 移动端开发者
  • ✅ 极致优化用户
  • ✅ 服务器部署

不推荐

  • ❌ 普通用户(用 Buzz)
  • ❌ 不会命令行(放弃)

编译与安装

Linux/macOS

# 克隆项目
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp

# 编译
make

# 下载模型
bash ./models/download-ggml-model.sh large-v3

Windows

# 需要 Visual Studio 编译
# 或下载 release 版本

Apple Silicon Mac

特别优化,使用 Metal GPU 加速:

# 启用 Metal 加速
make WHISPER_METAL=1

基础使用

单文件转写

# 转写音频
./main -m models/ggml-large-v3.bin -f input.wav

# 输出到 SRT
./main -m models/ggml-large-v3.bin -f input.wav -osrt

流式处理

# 实时麦克风
./stream -m models/ggml-large-v3.bin

使用量化模型

# 8-bit 量化(模型大小减半)
./main -m models/ggml-large-v3-q8_0.bin -f input.wav

# 4-bit 量化(模型大小变 1/4)
./main -m models/ggml-large-v3-q4_0.bin -f input.wav

性能对比

模型大小

模型原始大小q8_0q4_0
large-v33 GB1.5 GB750 MB
medium1.5 GB750 MB380 MB

速度对比

在 M2 Mac 上跑 60 秒英文音频:

模型Python WhisperWhisper.cpp
large-v330 秒8 秒
medium15 秒4 秒

Whisper.cpp 通常快 3-4 倍

高级功能

1. 实时流处理

./stream -m models/ggml-large-v3.bin --step 1000 --length 10000

参数:

  • --step: 处理步长(毫秒)
  • --length: 处理窗口长度

2. 多语言支持

# 自动检测语言
./main -m models/ggml-large-v3.bin -f input.wav --language auto

# 锁定语言
./main -m models/ggml-large-v3.bin -f input.wav --language en

3. 翻译为英文

# Whisper 原生支持翻译为英文
./main -m models/ggml-large-v3.bin -f chinese.wav --task translate

4. 输出多种格式

# SRT 字幕
./main -m models/ggml-large-v3.bin -f input.wav --output-srt

# VTT 字幕  
./main -m models/ggml-large-v3.bin -f input.wav --output-vtt

# JSON
./main -m models/ggml-large-v3.bin -f input.wav --output-json

# 文本
./main -m models/ggml-large-v3.bin -f input.wav --output-txt

移动端使用

iOS

GitHub 提供 iOS 示例项目:

whisper.cpp/examples/whisper.objc/

可以集成到自己的 iOS App。

Android

类似 iOS,有 Android 示例:

whisper.cpp/examples/whisper.android/

嵌入式使用

Whisper.cpp 可以跑在:

  • Raspberry Pi
  • Jetson Nano
  • 各种嵌入式 Linux 设备

适合:

  • 离线智能音箱
  • 智能助手
  • IoT 设备

与 Faster Whisper 对比

维度Whisper.cppFaster Whisper
语言C++Python
速度极快
精度略低(量化)
易用命令行Python API
部署二进制文件Python 环境
GPUMetal/CUDACUDA

适用场景

1. 服务器部署

需要轻量、快速:

# 服务器端持续监听
./stream-server -m models/ggml-large-v3-q8_0.bin --port 8080

2. 嵌入式设备

资源受限的设备:

# 量化模型 + CPU
./main -m models/ggml-tiny.bin --threads 4

3. 集成到 App

iOS/Android App:

  • 离线 ASR
  • 无需联网
  • 用户隐私好

4. 命令行批处理

# 批量处理目录下所有音频
for f in *.mp3; do
    ./main -m models/ggml-large-v3.bin -f "$f" --output-srt
done

寻求技术支持

1. GitHub Issues

https://github.com/ggml-org/whisper.cpp/issues

2. 让 Buzz 帮你

普通用户直接用 Buzz:

  • Buzz 内置了 Whisper.cpp
  • 图形界面操作
  • 功能完整
设置 → Models → 选择 "Whisper.cpp" 后端

本节小结

  • Whisper.cpp 是 Whisper 的极致优化版
  • 适合开发者集成到自己的项目
  • 普通用户用 Buzz 即可享受 Whisper.cpp 的功能
  • C++ 实现,跨平台

第七章结束

恭喜!完成第七章后,你已经了解了:

  1. ✅ WhisperLive(实时服务)
  2. ✅ Whisper.cpp(C++ 优化版)

这些工具适合技术用户,普通用户用 Buzz/MacWhisper 即可。

下一步: 第八章 - 实战案例 学习真实场景的应用。


💬 技术咨询: 加微信 15600871059(【专业译员工具社群】) 获取 Whisper.cpp 集成的实战经验。