跳转到内容

Whisper — 用 68 万小时"野生"音频教会模型听懂全世界

待复核

Whisper 是 OpenAI 在 2022 年发布的一套语音识别 + 语音翻译模型。 日常类比:传统语音识别像一个从小只听标准普通话长大的孩子——换个方言、加点噪音就懵了; Whisper 更像在菜市场长大的孩子——各种口音、背景嘈杂、甚至偶尔冒出外语都听过,所以到哪都能听懂个八九不离十。

它的核心秘诀不在于更花哨的网络结构,而在于数据规模: 从互联网上收集了 68 万小时的音频-文本对(相当于一个人不吃不睡连续听 77 年), 用这些”弱监督”数据直接训练一个标准 Transformer encoder-decoder。 模型不需要针对特定数据集微调,零样本(zero-shot)就能在多个语音识别基准上逼近甚至超过专门训练的系统。

更直白地说:以前做语音识别需要语言学家设计音素、声学工程师调特征、NLP 工程师建语言模型,三拨人协作多年。 Whisper 一个模型端到端全包了,而且换个语言不用重来——它天生就会 99 种语言。

不了解 Whisper,下面这些现象就缺少解释:

  • 为什么 2023 年之后几乎所有语音转文字应用都换了引擎——Whisper 及其衍生品(如 faster-whisper)成了事实标准
  • 为什么过去做语音识别需要几百人标数据、调声学模型、语言模型、解码器,现在一个模型端到端全搞定
  • 为什么同一个模型既能做英文听写,又能把日语、法语、中文直接翻译成英文——不需要额外的翻译模块
  • 为什么语音领域的人说”Whisper 是 ASR 的 gpt-3 时刻”——用数据规模暴力碾压精巧工程
  • 为什么开源社区能在论文发布后几个月内造出实时本地转录、播客搜索引擎、字幕生成器等大量应用——因为模型和代码全部开源

Whisper 的核心设计可以拆成三个关键决策

1. 弱监督数据,而非人工标注。 类比:不请专业速记员,而是把全网字幕当”作业答案”——脏但量大。 传统 ASR(自动语音识别)依赖人类逐字精标,全球最大精标集也就几千小时;Whisper 从互联网爬取音频-字幕对,过滤后约 68 万小时、覆盖 99 种语言。 作者称其为”弱监督”:不完美,但够多就够好。

2. 多任务统一训练。 类比:同一本练习册里同时练听写、翻译、认语言、标时间戳。 训练时用特殊 token 前缀区分四种任务:同语言转录、翻成英文、语言识别、时间戳预测。 协同效应类似 t5 的 text-to-text:语言识别帮识别,翻译迫使模型学跨语言表示。

3. 架构上没有花活。 类比:不做定制厨具,用标准炒锅把食材炒熟——火候靠数据量。 Whisper 是标准 Transformer encoder-decoder(attention):波形 → log-Mel 频谱(80 通道、30 秒窗)→ encoder 提特征 → decoder 自回归出字。 不依赖 CTC、外部语言模型或复杂后处理流水线(推理仍可用 beam search)。 五个尺寸:Tiny 39M → Large 1550M;Large 英语词错误率(WER)接近人类听写水平。

import whisper
model = whisper.load_model("base") # Tiny~Large 任选
result = model.transcribe("meeting.mp3", language="zh")
print(result["text"])

逐部分解释load_model 下载权重;transcribe 把音频切成 ≤30 秒窗、跑 encoder-decoder;language 可省略让模型自检。 传统 ASR 换数据集常崩;Whisper 零样本在嘈杂播客上仍稳——这就是标题里的 Robust。

result = model.transcribe("talk_ja.wav", task="translate")
# task="transcribe" → 同语言听写;"translate" → 一律输出英文
print(result["text"])

逐步:1) 设 task="translate";2) decoder 跳过”先出日文再机翻”;3) 端到端出英文。 传统三步流水线每步累积误差;Whisper 在 CoVoST2 上达到当时 SOTA。

案例 3:用 faster-whisper 加速部署

Section titled “案例 3:用 faster-whisper 加速部署”
from faster_whisper import WhisperModel
m = WhisperModel("small", device="cpu", compute_type="int8")
segments, _ = m.transcribe("podcast.mp3", vad_filter=True)
for s in segments:
print(s.start, s.end, s.text)

faster-whisper 用 CTranslate2 提速约 4×、显存减半;vad_filter 先丢掉静音,减轻幻觉。 Distil-Whisper / WhisperX 继续压体积与对齐时间戳。

  1. 幻觉(hallucination): Whisper 在静音或纯噪声段有时会”编造”不存在的文字——这是 decoder 自回归生成的老毛病,类似 LLM 的幻觉。 部署时必须加 VAD(Voice Activity Detection,语音活动检测)做前处理,先把没有人声的段落过滤掉。 否则一段空白音频也能”听出”一整句话来。

  2. 30 秒窗口限制: 模型一次只能处理 30 秒音频。 长录音必须切片、分别推理再拼接,切片边界处容易丢字或重复。 社区后来开发了滑动窗口 + 时间戳引导的方案来缓解,但这个限制至今是工程上最大的痛点之一。

  3. 弱监督数据的”遗毒”: 训练数据里有大量机器生成的 YouTube 字幕、错误标注、甚至张冠李戴的音文对。 模型从中学到了鲁棒性,但也沾染了一些坏习惯——偶尔输出 YouTube 风格的广告片段、在某些低资源语言上出现系统性偏差。

  4. 重复输出: 在某些条件下(尤其是音质差或说话节奏异常时),decoder 会陷入重复循环——同一个词或短语反复输出。 需要在解码阶段加”重复惩罚”或”压缩比检测”来兜底。

适用

  • 通用语音识别——会议、播客、采访;单段 ≤30 秒,长音频需切片拼接
  • 多语言转录 / 译到英文——识别约 99 种语言;task=translate 只出英文
  • 鲁棒性优先于刷极致 WER——噪声、口音场景比干净朗读更吃香
  • 快速原型——pip install openai-whisper,Tiny~Base 可在消费级 CPU/GPU 跑通

不适用

  • 超低延迟实时(目标 <200ms)——自回归解码延迟高,流式方案仍不成熟
  • 术语准确率 99%+ 的专业听写(医学/法庭/航管)——需领域微调
  • 非英语目标翻译——不能日→中、法→德,只能 → 英文
  • 极受限嵌入式——Tiny 也要约 75MB 权重 + 可观算力
  • 2012 前后:深度学习开始替换传统声学模型,但仍依赖精标数据与领域微调
  • 2020–2021:gpt-3 / clip 验证”海量弱监督 + 大模型”路线;同一作者线延伸到语音
  • 2022-09:OpenAI 发布 Whisper(arXiv 2212.04356),68 万小时弱监督、多任务统一训练
  • 2022 末–2023:社区两周内涌现十余衍生项目;仓库星标破 7 万,成为 OpenAI 除 ChatGPT 外最热开源之一
  1. 数据规模可以替代工程复杂度——68 万小时弱监督数据 + 标准 Transformer,打败了语音领域几十年精心设计的声学模型 + 语言模型 + 解码器流水线。不是更聪明,是见得更多。
  2. 多任务统一训练产生协同效应——语言识别帮助语音识别,翻译任务迫使模型学习跨语言的共享表示,最终每个单项任务都受益。
  3. 零样本泛化是鲁棒性的终极检验——在训练集上刷分容易,在从未见过的新数据集上保持稳定才是真本事。Whisper 最大的贡献不是某个基准上的数字,而是”到哪都能用”。
  4. scaling-laws 在语音领域同样成立——模型参数从 39M 到 1550M,数据从几千小时到 68 万小时,错误率持续下降且没有明显天花板。这和 gpt-3 在 NLP 领域观察到的规律一脉相承。
  • 论文 PDF(25 页,图表丰富,可读性比大多数 ML 论文好)
  • OpenAI Whisper GitHub(模型权重 + 推理代码,pip install 即用)
  • faster-whisper —— CTranslate2 加速版,实际部署首选
  • Distil-Whisper —— HuggingFace 蒸馏版,速度 6 倍、精度保留 99%
  • WhisperX —— 加强版时间戳对齐 + 说话人分离
  • attention —— Whisper 的骨架是标准 Transformer encoder-decoder
  • gpt-3 —— 同一个方法论:用海量弱监督数据 + 大模型碾压精巧的领域工程
  • clip —— 同一团队(Radford 等人)的弱监督+规模方法论,Whisper 把同一思路搬到语音
  • t5 —— “所有任务统一成一种序列格式”的思路先驱
  • scaling-laws —— Whisper 用实验数据验证了语音领域也遵循 scaling law
  • seq2seq-2014 —— encoder-decoder 自回归生成的源头架构
  • gemini-1.5-2024 —— Gemini 1.5 — 百万 token 多模态上下文的工程样板
  • orca-2022 —— Orca — Transformer 生成模型的分布式推理调度
  • vall-e-2023 —— VALL-E — 3 秒音频样本就能克隆你的声音