关键要点
- 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 5和嵌入式Linux,whisper.cpp tiny和base在CPU上是具备实时能力的模型 — tiny运行速度从容超过实时,base在
-t 4下约为实时。small模型(3.4% WER)在Pi 5上低于实时,最适合批处理任务。所有推理均在CPU(ARM NEON)上进行 — Pi没有可用于Whisper的GPU路径。
快速概览
- 两款工具: 均基于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。
- 可定制: 可针对特定领域词汇进行微调。运行适合您硬件的任意模型规格。
- Home Assistant集成: 本地运行的Whisper意味着唤醒词和语音命令永不离开您的家庭网络。请参阅Home Assistant中的本地Whisper →了解完全替代云端STT的插件设置。
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.wavwhisper.cpp 最新版本与更新(2026年6月)
whisper.cpp的最新版本是v1.8.6,于2026年6月2日发布。 它延续了v1.8.x维护线(v1.8.4和v1.8.5),聚焦于流式VAD、服务器稳定性和性能 — 而非新模型支持。faster-whisper的当前版本是v1.2.1(2025年10月31日)。两个运行时仍加载相同的OpenAI Whisper权重;2026年转录精度方面没有任何变化。
- whisper.cpp v1.8.6(2026年6月2日): 重新实现了
ffmpeg-transcode,以便更清晰地对压缩音频(MP3、M4A)进行可选的FFmpeg解码,并修复了CI示例路径问题。 - whisper.cpp v1.8.5(2026年5月): 改进了流式VAD(语音活动检测),修复了服务器参数泄漏和token时间戳问题,并修复了Ruby和VAD绑定中的内存泄漏。
- whisper.cpp v1.8.4(2026年3月19日): 最新的
ggml同步带来广泛的性能提升,新增用于选择GPU的-g/--gpu-device标志(以及GGML_CUDA设备选择),并修复了UTF-8分段换行问题。 - 原生VAD现已内置于whisper.cpp。 近期版本新增了原生语音活动检测路径,缩小了faster-whisper长期以来的优势 — 不过faster-whisper的Silero VAD集成仍然更开箱即用。
- faster-whisper v1.2.1(2025年10月31日): 当前稳定版本;
pip install faster-whisper即可安装。截至本次更新尚无2026年版本 — 该项目稳定,并非停滞。 - 2026年没有新的基础Whisper模型。 large-v3和distil-large-v3仍是最新权重,因此两款工具的"更新"都是运行时和工具链变更,而非精度变更。
faster-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}")通过pip获取ggml-base.bin(Python配置)
**要通过pip在Python中使用ggml-base.bin,请安装pywhispercpp绑定 — pip install pywhispercpp — 然后加载Model("base"),它会在首次运行时自动下载ggml-base.bin。** 不存在pip install whisper.cpp;pywhispercpp是围绕whisper.cpp C/C++引擎的pip封装,并保留Metal和CUDA加速。GGML模型文件(ggml-base.bin,~142 MB)从Hugging Face单独下载并缓存到本地 — pip包提供的是推理引擎,而非权重。
📍 简单一句话
运行pip install pywhispercpp,然后Python中的Model("base")会在首次使用时自动获取并缓存ggml-base.bin。
💬 简单来说
pip安装的是程序(pywhispercpp);模型文件ggml-base.bin是一个单独的~142 MB下载,发生在首次加载"base"模型时 — 或者你用download-ggml-model.sh脚本手动获取。
- 安装绑定:
pip install pywhispercpp。如需NVIDIA CUDA加速,使用GGML_CUDA=1 pip install git+https://github.com/absadiki/pywhispercpp进行编译。 - 自动下载ggml-base.bin:
from pywhispercpp.model import Model,然后model = Model("base")会在首次运行时从Hugging Face(ggerganov/whisper.cpp)下载ggml-base.bin并缓存。英语专用变体使用"base.en"。 - 手动下载(CLI方式,无需pip): 在克隆的whisper.cpp仓库中,
bash ./models/download-ggml-model.sh base会将文件保存到models/ggml-base.bin— 与pywhispercpp获取的是同一文件。 - 直接下载:
curl -L -o ggml-base.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin无需脚本即可拉取模型。将base替换为tiny、small、medium或large-v3。 - 请勿混淆这些包:
pip install openai-whisper安装的是OpenAI原始的PyTorch版Whisper(使用.pt检查点,而非ggml-base.bin)。pip install faster-whisper使用CTranslate2格式。只有pywhispercpp才使用GGML的ggml-*.bin文件。 - 文件位置: pywhispercpp将下载的GGML模型存储在其模块缓存中(或通过
Model("base", models_dir="...")传入的路径),因此同一个ggml-base.bin会在多次运行间复用 — 无需重新下载。
# 1. Install the pip binding for whisper.cpp
pip install pywhispercpp
# 2. ggml-base.bin downloads automatically on first use
# from pywhispercpp.model import Model
# model = Model("base") # fetches & caches ggml-base.bin (~142 MB)
# for seg in model.transcribe("audio.wav"):
# print(seg.text)
# --- Or get ggml-base.bin manually (no pip) ---
# From a cloned whisper.cpp checkout:
bash ./models/download-ggml-model.sh base # -> models/ggml-base.bin
# Or download the file directly from Hugging Face:
curl -L -o ggml-base.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin正面对比:基准测试表格
所有基准测试除非另有说明均使用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时的子进程开销。
在Raspberry Pi 5上运行Whisper:tiny、base与small
在Raspberry Pi 5上,whisper.cpp可以实时运行tiny和base模型用于实时转录,而small模型运行速度低于实时,最适合用于批处理任务。 Pi 5的四核Cortex-A76没有可用于Whisper的GPU路径,因此所有推理都在CPU(ARM NEON)上进行。使用量化的GGML模型(ggml-*-q5_0.bin)可降低内存占用并加快推理速度。
📍 简单一句话
在Raspberry Pi 5上,whisper.cpp的small模型运行速度低于实时(约0.5倍,仅适合批处理);tiny和base才是能跟上实时语音的模型。
💬 简单来说
Pi 5可以用tiny和base这两个Whisper模型转录实时音频,但small模型太重,无法实时跟上 — 请将small用于在后台处理的录制文件,而不是实时麦克风。
- Pi 5上的Whisper small: CPU上约0.4–0.6倍实时速度(10分钟的片段需要约17–25分钟)。3.4% WER下精度高,但对于实时字幕太慢 — 用于过夜/批量转录。
- Pi 5上的Whisper base: 借助多线程(
-t 4)约为实时到约2倍。是Pi上实时转录的实用最佳平衡点,WER为5.0%,可接受。 - Pi 5上的Whisper tiny: 最快的选项,实时使用时可轻松快于实时,代价是WER较高(7.6%)。最适合唤醒词和短命令识别。
- 使用量化模型:
bash ./models/download-ggml-model.sh small-q5_0可减少RAM占用并加快推理,精度损失极小 — 在Pi 5的共享内存上很重要。 - Pi 5上的faster-whisper: 可安装(
pip install faster-whisper,CPU int8),在批处理任务中具有竞争力,但whisper.cpp更轻量的C二进制文件是更常见的嵌入式选择。 - 散热: 持续转录会让Pi 5的CPU高负荷运行 — 使用主动散热以避免热降频侵蚀这些数据。
适用场景指南
从您的使用场景直接映射到正确工具:
📍 简单一句话
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优化原理。