Whisper 是 OpenAI 在 2022 年开源、至今仍在被大量部署的自动语音识别模型。它是标准的 encoder-decoder Transformer,把音频切成 30 秒窗口转成 log-Mel 频谱送进编码器,解码器再自回归吐出带时间戳的文本。当前最新的开放权重仍是 2024 年 10 月发布的 large-v3-turbo,此后 OpenAI 没有再放出新的开源 Whisper 版本——pip 包 openai-whisper 的最后一个 release 是 v20250625。所以「哪个版本最新」这个问题在 Whisper 上其实已经收敛了,真正在迭代的是它周边的推理运行时。
两个主力权重要分清楚。large-v3 有 1550M 参数,用 128 个 Mel 频段(large-v2 是 80 个),在 100 万小时弱标注 + 400 万小时伪标注音频上训练,覆盖 99 种语言,官方称相对 large-v2 降低 10%–20% 的错误率。large-v3-turbo 是把 large-v3 的解码层从 32 层剪到 4 层再微调出来的 809M 版本,官方表格给的相对速度是 ~8x,代价是轻微的精度损失,而且它没有为翻译任务训练过——你传 --task translate 它会照样返回原语言。这是选型时最常踩的坑。
显存这件事在 Whisper 上有两套数字,都要看。官方仓库给的是参考实现的需求:tiny/base 约 1GB、small 约 2GB、medium 约 5GB、large 约 10GB、turbo 约 6GB。但真正上生产的人几乎都跑 faster-whisper(CTranslate2)或 whisper.cpp(GGML),实测占用低得多——faster-whisper 官方基准里 large-v2 fp16 只占 4525MB,int8 更是压到 2926MB。所以「Whisper 要多大显存」的答案取决于你用哪个运行时,下面的表把两套数字都列出来了。
01 —
Whisper 全系版本与显存对照
官方参考实现显存需求 · CTranslate2 与 GGML 实际权重体积 · 谁该用哪个
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| whisper-large-v3 | 1550M | 官方 ~10GB / faster-whisper fp16 实测 4.5GB / GGML fp16 3.1GB / q5_0 1.08GB | 30 秒音频窗口,解码器 448 token | 精度基准。128 Mel 频段、99 种语言、含粤语 token,需要最高转写质量或做多语种翻译时用它。 |
| whisper-large-v3-turbo | 809M | 官方 ~6GB / GGML fp16 1.62GB / q5_0 仅 574MB | 30 秒音频窗口,解码器 448 token | 解码层 32→4 剪枝再微调,相对速度 ~8x,模型卡实测 RTFx 200。绝大多数转写场景的默认选择,但不会做翻译。 |
| whisper-medium / medium.en | 769M | 官方 ~5GB / GGML fp16 1.53GB | 30 秒音频窗口,解码器 448 token | turbo 出来后基本被取代。仍适合只有 8GB 老卡、或必须用纯英文单语模型压低幻觉率的场景。 |
| whisper-small / small.en | 244M | 官方 ~2GB / GGML fp16 488MB | 30 秒音频窗口,解码器 448 token | 低延迟实时流的甜点位。T4 上可以同时开多路,CPU 上用 whisper.cpp 也能跑到接近实时。 |
| distil-large-v3.5 | 756M(英文单语,MIT) | 与 turbo 同量级,fp16 约 1.6GB 权重 | 30 秒音频窗口,解码器 448 token | 从 large-v3 蒸馏,98k 小时数据训练,比 turbo 再快约 1.5x;更妙的用法是当 large-v3 的投机解码草稿模型,约 2x 加速且输出与 large-v3 完全一致。 |
02 —
跑 Whisper 该租哪张卡
按秒计费,跑完停机立刻停算力费,不用申请配额
单卡试跑 / 中小批量离线转写(turbo fp16 或 q5_0)
RTX 3090 24GB$0.193/卡·时
turbo 权重才 1.6GB,24GB 显存足够把 batch 拉到 16–32 再挂上对齐模型;Ampere 架构支持 SDPA 与 FlashAttention-2,这是全网跑 Whisper 性价比最高的一档。
生产批量流水线:large-v3 fp16 + batch 16 + WhisperX 对齐 + pyannote 分离同卡常驻
RTX 4090 24GB$0.540/卡·时
三个模型加起来仍在 24GB 内,Ada 的解码吞吐比 3090 高一大截,一天几千小时音频的队列用它单位成本最低。
多进程并发 / 投机解码双模型 / 数小时长音频队列
A100 PCIE 80GB$0.824/卡·时
80GB 可以同时常驻 large-v3 与 distil-large-v3.5 做投机解码,或并排开六到八个 worker 吃满一张卡;比 48GB 的 RTX A6000($0.817/卡·时)只贵 $0.007 却多出 32GB。
极致压成本的纯 fp16 离线跑批
Tesla V100 32GB$0.188/卡·时
全站最便宜且带 32GB 显存,faster-whisper 与 whisper.cpp 的 fp16 路径在 Volta 上跑得很稳;但要知道 Volta 不支持 bf16 与 FlashAttention-2,别指望 transformers 的新优化路径。
03 —
四步把 Whisper 跑起来
从空实例到能对外提供 OpenAI 兼容转写接口
- 01
开实例,选 PyTorch 预置镜像,装 faster-whisper
NexGPU 有 2000+ 预置镜像,直接选 PyTorch 或 Whisper ASR 镜像开机,CUDA 驱动已经装好。注意 ctranslate2 的新版本只支持 CUDA 12 与 cuDNN 9——「找不到 libcudnn_ops_infer.so.8」这类报错九成来自版本错配,用预置镜像可以直接绕过。
pip install -U faster-whisper==1.2.1 - 02
先用 turbo 跑一条基线,确认吞吐与显存
第一次运行会自动从 Hugging Face 拉 CTranslate2 权重。compute_type 建议先试 float16;显存吃紧就换 int8_float16,faster-whisper 官方基准里 int8 把 large-v2 的占用从 4525MB 压到 2926MB,速度还更快。VAD 打开可以显著减少静音段的幻觉。
python -c "from faster_whisper import WhisperModel; m=WhisperModel('turbo', device='cuda', compute_type='float16'); segs,info=m.transcribe('audio.wav', beam_size=5, vad_filter=True, language='zh'); print(info.language); [print(f'[{s.start:.2f}->{s.end:.2f}] {s.text}') for s in segs]" - 03
要词级时间戳和说话人分离,上 WhisperX
Whisper 原生只有 token 级时间戳(精度 0.02 秒),想要靠谱的词级边界必须做强制对齐。WhisperX 用 wav2vec2 做对齐、用 pyannote 的 speaker-diarization-community-1 做分离,批量推理下 large-v2 可达约 70 倍实时,beam_size=5 时显存占用仍低于 8GB。分离模型是 gated 的,要先在 Hugging Face 上同意协议并带 token。
whisperx audio.wav --model large-v3 --compute_type float16 --batch_size 16 --diarize --hf_token $HF_TOKEN --output_format srt - 04
对外提供服务:vLLM 起 OpenAI 兼容转写接口
vLLM 的 OpenAI 兼容服务端支持 ASR 模型的 /v1/audio/transcriptions 与 /v1/audio/translations 两个端点,客户端可以直接用 openai SDK 指过来,业务代码一行不用改。想省事就用 NexGPU 的 vLLM 预置镜像;接口起来后从 SSH 隧道或 REST API 转发出去都行。
vllm serve openai/whisper-large-v3-turbo --port 8000
1000 小时音频到底要花多少钱
先定一个有出处的速度锚点。faster-whisper 官方基准:RTX 3070 Ti 8GB、CUDA 12.4、13 分钟音频,large-v2 fp16 + batch_size=8 跑完只用 17 秒,约合 46 倍实时。large-v3-turbo 的解码层只有 large 的八分之一,放到 RTX 4090 上按 60 倍实时估算是保守的。 算一批 1000 小时的会议录音:1000 ÷ 60 ≈ 16.7 GPU 小时,加上拉模型和预热约 0.3 小时,取 17 小时。17 × $0.540 = $9.18,折合每小时音频 $0.0092。 还想更省就换 RTX 3090 24GB。同一批活按 40 倍实时保守估算是 25 GPU 小时,25 × $0.193 = $4.83——一千小时录音,不到五美元。 存储单独算:faster-whisper 的 large-v3 权重 3.09GB、turbo 1.62GB,再加 wav2vec2 对齐模型和 pyannote 分离模型,一个 10GB 的卷绰绰有余,10 × $0.414 = $4.14/月。注意存储只要卷不销毁就一直计费,而算力费在实例停止的那一秒就停了——跑完把实例停掉,卷留着下次直接开机,模型不用重下。 出网基本不用管:转写产物是纯文本。就算你把 1000 小时 16kHz 单声道 WAV(约 115GB)整批拉回本地,115 × $0.0081 = $0.93。
04 —
