关键要点
- whisper.cpp是Apple Silicon的最佳本地STT选择。 该C/C++移植版利用Core ML和Apple Metal进行硬件加速 — M5 Pro上large-v3约10倍实时速度,无需Python依赖。
- faster-whisper是NVIDIA GPU和Python管道的最佳本地STT选择。 CTranslate2 int8量化将VRAM减少约40%,吞吐量比原始OpenAI实现提升约4倍 — RTX 4070上large-v3约12倍实时速度,VRAM仅约2.5 GB。
- 两款工具均使用OpenAI相同的Whisper模型权重。 WER(词错误率)完全相同 — 区别仅在于运行时性能和集成方式,与转录精度无关。
- Whisper large-v3在英语上提供最佳精度,WER为2.5%。 对于大多数生产用例,Whisper small(3.4% WER,2 GB RAM)或medium(2.9% WER,5 GB RAM)提供更好的速度精度平衡。
- 两款工具均可实现实时转录 — whisper.cpp通过
--stream参数,faster-whisper通过内置VAD(语音活动检测)管道。根据模型大小,实际延迟比实时语音慢0.5至2秒。 - whisper.cpp支持CPU、Metal、CUDA和Vulkan — 是跨平台嵌入式部署(Raspberry Pi、Windows GPU、ARM服务器)的唯一选择。faster-whisper仅支持CPU和CUDA(Mac上无Metal支持)。
- 对于Raspberry Pi和嵌入式Linux,whisper.cpp tiny/base在CPU上运行是实际可行的上限 — Pi 5上tiny约15倍实时速度,base约6倍实时速度。两者均可在1 GB RAM内运行。
快速概览
- 两款工具: 均基于OpenAI的开源Whisper模型(MIT许可证)。精度相同 — 运行时不同。
- whisper.cpp: 由ggerganov用C/C++编写。支持CPU(AVX2/NEON)、CUDA、Metal(Apple)、Vulkan。无需Python。
- faster-whisper: 基于CTranslate2的Python库。支持CPU(int8)和CUDA。不支持Apple Metal。
- Whisper模型规格: tiny(39M)、base(74M)、small(244M)、medium(769M)、large-v3(1.55B)。均使用ggml / CTranslate2格式。
- 大多数用例的最佳模型: Whisper small — 3.4% WER,2 GB RAM内运行,现代CPU上6倍实时速度。
- RTX 4070基准(large-v3): faster-whisper约12倍实时速度;whisper.cpp CUDA约8倍实时速度。faster-whisper在NVIDIA上胜出。
- M5 Pro基准(large-v3): whisper.cpp Metal约10倍实时速度;faster-whisper纯CPU约3倍实时速度。whisper.cpp在Apple上胜出。
为什么选择本地语音识别?
云端STT服务(Google Speech-to-Text、AWS Transcribe、Azure Speech)按音频分钟收费 — 通常$0.006至$0.024/分钟 — 并将音频发送至远程服务器。对于隐私敏感应用(医疗听写、法律录音、记者采访、企业会议),本地转录可完全消除数据暴露风险。
- 隐私保护: 音频永不离开您的设备。本地处理无需第三方数据处理协议。
- 零成本: 无按分钟计费。每周转录8小时会议的开发者,相比云端STT定价可节省$120至480/月。
- 离线使用: 在飞机上、安全设施内、网络不稳定区域均可使用。无需管理API密钥。
- 低延迟: 无上传/下载往返延迟。对于实时语音界面,本地处理将STT延迟从云端的300至800ms降低至50至300ms。
- 可定制: 可针对特定领域词汇进行微调。运行适合您硬件的任意模型规格。
Whisper模型规格 — 两款工具的基础
whisper.cpp和faster-whisper均使用相同的Whisper模型权重,分别转换为各自的格式(whisper.cpp使用GGML,faster-whisper使用CTranslate2)。根据您的VRAM/RAM预算和精度要求选择模型规格。
| 模型 | 参数量 | VRAM / RAM | 英语WER | 速度系数(相对RTX 4070实时) |
|---|---|---|---|---|
| tiny | 39M | ~1 GB | 7.6% | ~32× |
| base | 74M | ~1 GB | 5.0% | ~16× |
| small | 244M | ~2 GB | 3.4% | ~6× |
| medium | 769M | ~5 GB | 2.9% | ~2× |
| large-v3 | 1.55B | ~10 GB | 2.5% | 1×(基准) |
| distil-large-v3 | ~756M | ~4 GB | ~2.6% | ~6× |
WER(词错误率)数据来自LibriSpeech干净测试集上的Whisper论文。数值越低越好。速度系数为RTX 4070上faster-whisper int8的数据。distil-large-v3数据来自Distil-Whisper论文。
Distil-Whisper:更快的替代方案
distil-whisper/distil-large-v3是large-v3的蒸馏变体,参数量减少约50%,WER与原版相差约1%以内,运行速度提升约6倍。** 当转录速度比精度更重要时,这是正确的选择。distil-large-v3可与faster-whisper(原生CTranslate2支持)和whisper.cpp(通过GGML格式转换)配合使用,可集成到您已使用的任何运行时。
- 参数量: ~756M — 约为large-v3 1.55B参数的一半,VRAM需求约4 GB而非约10 GB。
- 速度: RTX 4070上约6倍实时速度(相比large-v3的1倍基准)— 速度与medium模型相当,精度接近large-v3水平。
- WER: 英语约2.6% — 仅比large-v3的2.5%高约0.1%。在实际语音中,差异几乎听不出来。
- 兼容性: 与faster-whisper原生兼容(
WhisperModel("distil-large-v3", device="cuda", compute_type="int8"))。对于whisper.cpp,使用distil-whisper GGML转换脚本转换为GGML格式。 - 最适合: 批量转录任务、VRAM有限的服务器部署,以及希望以medium模型速度获得large-v3质量的任何用例。
- 不适合: 多语言转录 — distil-large-v3仅支持英语。其他语言请使用large-v3或medium。
whisper.cpp — C/C++移植版
whisper.cpp(由Georgi Gerganov开发)是OpenAI Whisper模型的纯C/C++重新实现,针对低资源和跨平台推理进行了优化。 无需Python,无需CUDA工具包,几乎可在任何硬件上运行 — 从Raspberry Pi到Apple M5 Pro再到Windows CUDA配置。
- 平台支持: CPU(AVX2、AVX512、ARM NEON)、Apple Metal(Core ML)、CUDA(NVIDIA)、Vulkan(AMD/Intel GPU)、OpenCL。
- Apple Silicon优势: whisper.cpp将模型导出为Core ML格式,支持在Apple Neural Engine上进行推理。large-v3通过Metal在M5 Pro上实现约10倍实时速度 — 比任何云端往返速度都快。
- 安装: 克隆代码库,运行
make(或cmake)。常见平台有预构建的二进制文件。无Python依赖。 - 下载模型:
bash ./models/download-ggml-model.sh base.en— 下载GGML格式模型文件(base约142 MB)。 - CLI示例:
./main -m models/ggml-base.bin -f audio.wav— 将WAV文件转录到标准输出。-l zh用于中文。 - 实时流模式:
./stream -m models/ggml-base.bin --step 3000 --length 10000— 以3秒块从麦克风转录。 - Python封装: pywhispercpp为whisper.cpp提供Python绑定,可在Python管道中使用,同时保留Metal加速。
- 限制: 无原生VAD(语音活动检测)。流模式需要针对具体用例调整
--step和--length参数。
# Build from source (macOS / Linux)
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
make -j4
# Download a model
bash ./models/download-ggml-model.sh large-v3
# Transcribe a file
./main -m models/ggml-large-v3.bin -f recording.wav
# Enable Metal on Apple Silicon (Core ML)
make -j4 WHISPER_COREML=1
./main -m models/ggml-large-v3-encoder.mlmodelc -f recording.wavfaster-whisper — CTranslate2版本
faster-whisper(由SYSTRAN开发)是使用CTranslate2 — 支持int8量化的高度优化C++推理引擎 — 重新实现Whisper推理的Python库。 在NVIDIA GPU上,faster-whisper是现有最快的本地Whisper实现。
- 平台支持: CPU(int8量化)和NVIDIA CUDA GPU。不支持Apple Metal — 在Mac上仅以CPU模式运行。
- int8优势: CTranslate2 int8量化将VRAM减少约40%,相比float16推理吞吐量提升约2倍,WER影响可忽略不计(绝对值<0.1%)。
- 安装:
pip install faster-whisper— 无需编译。CUDA支持需要CUDA 11.8+和cuDNN 8.x。 - 内置VAD: faster-whisper包含Silero VAD集成,可自动跳过无声音频段 — 对实时转录管道至关重要。
- Python原生: 直接的Python API使其可以轻松与LLM、音频处理库和Web框架链接。
- 速度: RTX 4070上的large-v3 int8约12倍实时速度,VRAM约2.5 GB。CPU int8对tiny模型可达约20倍实时速度。
- 批量处理: faster-whisper支持批量推理,可高效处理大型音频存档。
- 限制: Mac上无Metal支持 — 在Apple Silicon上以CPU模式运行,large-v3约3倍实时速度(相比whisper.cpp Metal的约10倍实时速度)。
from faster_whisper import WhisperModel
# Load model (downloads automatically on first run)
model = WhisperModel("large-v3", device="cuda", compute_type="int8")
# Transcribe
segments, info = model.transcribe("audio.wav", beam_size=5)
print(f"Detected language: {info.language} (probability: {info.language_probability:.2f})")
for segment in segments:
print(f"[{segment.start:.2f}s → {segment.end:.2f}s] {segment.text}")正面对比:基准测试表格
所有基准测试除非另有说明均使用large-v3模型。速度以实时倍数衡量(例如10×表示60分钟音频在6分钟内转录完成)。GPU运行使用VRAM数据;CPU运行使用RAM数据。
📍 简单一句话
在Apple Silicon上,配合Metal的whisper.cpp以约10倍实时速度运行large-v3;在NVIDIA GPU上,配合int8的faster-whisper以约12倍实时速度运行 — 每款工具在其目标平台上均具有决定性优势。
💬 简单来说
Mac用户选择whisper.cpp(它使用Apple Neural Engine),Windows/Linux用户有NVIDIA GPU选择faster-whisper(以12倍速处理音频,同时减少40%的GPU内存使用)。
| 指标 | whisper.cpp (large-v3) | faster-whisper (large-v3) |
|---|---|---|
| 平台 / 编程语言 | C/C++(跨平台) | Python(CTranslate2) |
| GPU支持 | CUDA、Metal、Vulkan | 仅CUDA |
| CPU优化 | AVX2、ARM NEON | int8量化 |
| 速度 — RTX 4070,large-v3 | ~8倍实时速度 | ~12倍实时速度 ✓ |
| 速度 — M5 Pro,large-v3 | ~10倍实时速度(Metal)✓ | ~3倍实时速度(仅CPU) |
| 速度 — 纯CPU(x86),base | ~15倍实时速度 | ~20倍实时速度 ✓ |
| VRAM — large-v3,GPU | ~3 GB | ~2.5 GB(int8)✓ |
| Python集成 | 需要封装器(pywhispercpp) | 原生支持 ✓ |
| VAD(静音检测) | 手动(--step调优) | 内置(Silero VAD)✓ |
| 实时流传输 | 支持(--stream参数)✓ | 支持(VAD管道) |
| WER精度(large-v3) | 2.5%(相同) | 2.5%(相同) |
| Python依赖 | 无 ✓ | Python 3.8+ |
| Raspberry Pi / 嵌入式 | 支持 — C二进制 ✓ | 有限 — Python开销 |
| 输出格式 | SRT、VTT、JSON、CSV、txt | Python对象(start、end、text) |
whisper.cpp直接输出到标准字幕和转录文件格式(SRT、VTT、JSON、CSV、txt)— 适合需要磁盘文件且无需额外代码的字幕工作流。faster-whisper产生带有start、end和text属性的段对象的Python生成器 — 适合LLM管道链接,可直接将段文本传递到下游模型而无需写入中间文件。字幕生成用whisper.cpp更简单,编程处理段落的管道用faster-whisper更简单。
实时转录配置
实时转录在音频从麦克风到达时分块处理,产生比语音稍有延迟的文本。 两款工具均支持此功能,但各有权衡。
- whisper.cpp流模式: 运行
./stream -m models/ggml-small.bin --step 3000 --length 10000 -t 4。处理3秒音频块;使用small模型约0.5至1.5秒延迟。无需Python。 - faster-whisper VAD管道: 在
model.transcribe()中使用vad_filter=True。Silero VAD自动在静音边界处分割音频 — 比固定长度窗口更自然的块。 - 实际延迟: 使用small或medium模型时比实时语音慢0.5至2秒。使用tiny可获得最低延迟(<0.5秒,但WER更高)。
- 实时模型选择: small或base是实际最优选择 — 足够快以跟上语音,对清晰音频足够准确。除非有专用GPU,否则避免实时使用large-v3。
- 麦克风输入: whisper.cpp通过SDL2或portaudio读取原始音频。faster-whisper读取任意Python音频库(sounddevice、pyaudio、soundfile)的音频数组。
- 稳定性: whisper.cpp流模式在静音时可能产生重复标记("幻听"短填充词)。使用
--suppress-blank和--no-speech-threshold来抑制。
Apple Silicon:whisper.cpp胜出
在M1、M2、M3、M4和M5 Mac上,配合Core ML / Metal加速的whisper.cpp是正确的工具选择 — 毫无疑问。 faster-whisper不支持Metal,在Mac上仅以CPU模式运行,large-v3约3倍实时速度。whisper.cpp配合Metal在M5 Pro上可达约10倍实时速度 — 速度提升3倍。
- Core ML导出: 运行
./models/generate-coreml-model.sh large-v3将编码器导出为Core ML格式。这将编码器推理卸载到Apple Neural Engine。 - M5 Pro基准(large-v3,Metal): 约10倍实时速度。60分钟音频约6分钟转录完成。注意:M5 Pro于2026年3月发布 — 这些是早期社区基准数据。随着whisper.cpp针对M5 Neural Engine的优化,性能可能会提升。
- M3 MacBook Air基准(large-v3,Metal): 约7倍实时速度。60分钟约8.5分钟完成。
- 内存: 统一内存意味着无需独立VRAM — 16 GB M5 Pro可在运行其他进程的同时轻松运行large-v3(约3 GB)。
- Mac上的faster-whisper: 仅CPU,int8。large-v3约3倍实时速度。可用于整晚批量转录,但不适合实时或时间敏感的工作流。
- 推荐: 所有Mac STT工作使用whisper.cpp。如果需要Python集成同时保留Metal加速,添加pywhispercpp。
NVIDIA GPU:faster-whisper胜出
在配备NVIDIA GPU的Windows和Linux系统上,faster-whisper是优越的选择。 其CTranslate2 CUDA后端比whisper.cpp的CUDA路径更优化 — RTX 4070上large-v3约12倍vs约8倍实时速度,VRAM占用更低。
- RTX 4070(12 GB)基准(large-v3 int8): 约12倍实时速度,VRAM约2.5 GB。
- RTX 3060(12 GB)基准(large-v3 int8): 约8倍实时速度,VRAM约2.5 GB。
- RTX 4060(8 GB)基准(large-v3 int8): 约7倍实时速度,VRAM约2.5 GB — 轻松适配。
- int8与float16: int8速度约快2倍,VRAM减少约40%,精度损失可忽略不计。在NVIDIA上始终使用
compute_type="int8"。 - 批量处理: faster-whisper的
batched=True参数支持并行处理多个音频文件,最大化大型转录任务的GPU利用率。 - Python管道集成: faster-whisper可直接插入LangChain、Haystack和自定义Python管道。无需封装whisper.cpp时的子进程开销。
适用场景指南
从您的使用场景直接映射到正确工具:
📍 简单一句话
Apple Silicon和嵌入式/跨平台目标使用whisper.cpp;NVIDIA GPU和Python管道使用faster-whisper。
💬 简单来说
有Mac就选whisper.cpp — 在Apple硬件上比faster-whisper快3倍。有NVIDIA GPU且写Python就选faster-whisper — 更快且GPU内存少40%。
| 使用场景 | 推荐工具 | 原因 |
|---|---|---|
| Apple Silicon Mac(任意型号) | whisper.cpp | Metal / Core ML加速 — 比Mac上仅CPU的faster-whisper快3倍 |
| NVIDIA GPU服务器(Linux/Windows) | faster-whisper | CTranslate2 int8 — 比whisper.cpp CUDA路径更快且VRAM更低 |
| Python数据管道 | faster-whisper | 原生Python API;无子进程封装器;内置VAD |
| Raspberry Pi / 嵌入式Linux | whisper.cpp | 纯C二进制;无Python运行时开销;ARM NEON优化 |
| 实时语音助手 | whisper.cpp | 低开销的流模式;在Pi / 嵌入式设备上无需Python即可工作 |
| 批量转录(大型音频存档) | faster-whisper | 批量推理、GPU利用率、Python异步集成 |
| AMD GPU(Vulkan) | whisper.cpp | Vulkan后端支持;faster-whisper仅支持CUDA |
| 纯CPU Linux服务器 | faster-whisper | int8量化在x86 CPU上提供约30%速度优势 |
超越whisper.cpp和faster-whisper
两款额外工具提供了whisper.cpp和faster-whisper均未内置的功能:说话人分离和极速批量GPU推理。
- WhisperX:** 基于faster-whisper构建,WhisperX添加了词级时间戳和说话人分离 — 识别哪个说话人说了哪些话。最适合:带说话人标签的会议转录、播客编辑和访谈记录。使用
pip install whisperx安装,并提供分离模型的Hugging Face令牌。 - insanely-fast-whisper:** 添加Flash Attention 2支持的Hugging Face Transformers管道封装器,在NVIDIA硬件上实现比标准faster-whisper更快的GPU推理。最适合:在NVIDIA GPU上批量处理大型音频存档。需要Flash Attention 2兼容GPU(Ampere或更新:RTX 3000+、A100、H100)。
常见问题与解决方案
最常见的配置和运行时问题及直接解决方案:
- CUDA版本不匹配: faster-whisper需要CUDA 11.8或更高版本。使用
nvcc --version检查。如果CUDA较旧,升级驱动程序或在conda环境中使用cudatoolkit=11.8安装faster-whisper。 - Metal模型导出失败: 确保已安装Xcode Command Line Tools — 运行
xcode-select --install。Core ML导出脚本需要coremltoolsPython包:pip install coremltools。 - 静音时出现幻听: 两款工具在静音音频段上都可能产生重复填充标记。在whisper.cpp流模式中使用
--no-speech-threshold 0.6,或在faster-whisper的model.transcribe()中使用vad_filter=True自动跳过静音段。 - large-v3内存不足: 切换到faster-whisper中的int8量化(
compute_type="int8")— 将VRAM从约5 GB(float16)降至约2.5 GB。在whisper.cpp中,使用量化GGML变体(例如ggml-large-v3-q5_0.bin),将内存降至约3至4 GB。 - 非英语音频出现乱码: 不要对非英语语音使用
.en模型变体(tiny.en、base.en)— 它们仅支持英语。使用多语言模型(base、small、medium、large-v3)并明确设置语言:whisper.cpp中使用-l zh,faster-whisper中使用language="zh"。 - CPU推理慢: 确认CPU支持AVX2指令集(优化CPU推理所必需)。Linux上使用
grep avx2 /proc/cpuinfo检查,Mac上使用sysctl machdep.cpu.features检查。不支持AVX2的CPU将回退到通用SIMD,速度慢2至3倍。
常见问题解答
whisper.cpp和faster-whisper的转录精度相同吗?
是的。两款工具均使用相同的OpenAI Whisper模型权重 — 模型本身完全相同。区别仅在于推理运行时(C/C++与CTranslate2 Python)。同一音频文件的WER绝对差值在0.1%以内 — 这在束搜索随机性的正常变动范围内。
可以在配备Apple Silicon的Mac上使用faster-whisper吗?
可以,但它仅以CPU模式运行 — faster-whisper没有Metal支持。在M5 Pro上,faster-whisper large-v3以CPU int8模式运行,约3倍实时速度,而whisper.cpp配合Metal约10倍实时速度。对大多数Mac用户来说,同等模型下whisper.cpp快3倍。在Mac上使用faster-whisper的唯一理由是Python管道已经依赖它且速度不是关键因素。
语音助手应该使用哪个Whisper模型规格?
对于实时语音界面,Whisper small是标准推荐 — 清晰英语上3.4% WER,现代CPU或GPU上约200 ms STT延迟,2 GB RAM内可运行。硬件非常受限(Raspberry Pi Zero 2W、旧手机)且可接受约7.6% WER时使用tiny。仅在延迟不是限制的批量转录场景下使用medium或large-v3。
whisper.cpp支持英语以外的语言吗?
支持。所有Whisper多语言模型(base、small、medium、large-v3)支持99种语言。在CLI中添加`-l [语言代码]:中文用-l zh,日语用-l ja,法语用-l fr`等。tiny.en和base.en模型仅支持英语,在英语上比多语言版本略微准确。
如何安装支持CUDA的faster-whisper?
使用pip install faster-whisper安装。CUDA支持需要系统安装CUDA 11.8或更高版本和cuDNN 8.x。使用nvcc --version验证CUDA版本。然后加载模型时指定device="cuda":WhisperModel("large-v3", device="cuda", compute_type="int8")。如果未检测到CUDA,faster-whisper会自动回退到CPU。
哪个更准确 — whisper.cpp还是faster-whisper?
完全相同。两款工具均使用相同的OpenAI Whisper模型权重,对任何给定音频文件产生相同的WER。whisper.cpp和faster-whisper的区别在于速度和平台支持,而非转录精度。运行之间测量到的任何WER差异都在束搜索的正常变动范围内,而非来自运行时本身。
可以在8 GB RAM上运行Whisper large-v3吗?
在GPU上可以 — faster-whisper中的large-v3 int8使用约2.5 GB VRAM,可在任何8 GB GPU上运行。在纯CPU硬件上,8 GB RAM对large-v3来说有些紧张(float32使用约10 GB)。在纯CPU系统上使用medium(5 GB RAM)或small(2 GB RAM)。由于运行时开销更低,whisper.cpp在CPU上比faster-whisper更节省内存。
本地Whisper与云端STT相比费用如何?
无持续费用。云端STT服务按音频分钟收费$0.006至$0.024 — 每周转录8小时会议的开发者每月需支付$120至480。本地Whisper在您已拥有的硬件上运行,无按分钟计费,无API密钥管理,音频数据不离开您的设备。
参考来源
- whisper.cpp(GitHub) — 源代码、构建说明、模型下载脚本及Metal/Core ML配置指南。
- faster-whisper(GitHub) — 源代码、Python API文档及基准测试结果。
- distil-whisper/distil-large-v3(Hugging Face) — 模型卡、基准测试结果及蒸馏Whisper变体使用说明。
- WhisperX(GitHub) — 基于faster-whisper构建的词级时间戳和说话人分离。
- insanely-fast-whisper(GitHub) — 用于最大化NVIDIA GPU吞吐量的Flash Attention 2 Whisper管道。
- OpenAI Whisper(GitHub) — 原始Whisper模型、论文及所有规格的模型卡。
- OpenAI Whisper论文(Radford等,2022) — "Robust Speech Recognition via Large-Scale Weak Supervision"。WER数据来源。
- CTranslate2文档 — 量化细节、硬件支持及int8优化原理。