Robust Speech Recognition via Large-Scale Weak Supervision
TL;DR
Whisper 把网上 68 万小时音频和字幕一锅烩,喂进普通 Transformer,开箱就能听各种口音、噪声和长录音,还顺手翻译——靠数据杂取胜。
所以这一节是想说:Whisper 不是用更聪明的模型赢的,而是用"够大够杂的弱标注数据 + 多任务统一接口"换来了"开箱即用的鲁棒语音识别"。
这是个什么场景
你打开微信给朋友发一段语音转文字。咖啡馆里背景音吵、你刚好讲了一半中文掺了句英文、朋友是带印度口音的 PM、录音断断续续 5 分钟——按下"转文字"按钮,结果出来一堆错字。这种翻车几乎每个用过语音转写的人都遇过。
为什么会这样?打个比方:传统语音识别(Automatic Speech Recognition, ASR)系统像一个"只刷过有声书录音"的学霸。你拿 LibriSpeech(朗读有声书数据集)出题,他考超人分;你换一张脱口秀的卷子,他直接懵——这就是论文反复说的 "in-distribution 超人 vs out-of-distribution 凡人" 的悖论。
可是人不会这样。你从没听过湖南口音,第一次听也能猜个八九不离十,因为你这辈子接触过的"讲话样本"已经足够杂。Whisper 论文的判断很直白:机器想做到这种鲁棒性,不是要更巧的算法,而是让训练数据的分布逼近"互联网上一切人讲话"。
而且过去做这件事不是一个模型在做。传统流水线像一条工厂流水线,五个工人各干各的:
- 语音活动检测(Voice Activity Detection, VAD):判断哪段是说话哪段是静音
- 说话人分离(Speaker Diarization):标"说话人 A 说,说话人 B 说"
- 语音识别:转文字
- 逆文本规范化(Inverse Text Normalization):把 "twenty twenty three" 改成 "2023"
- 加标点(Punctuation Restoration)
每个组件单独训练、单独维护,整套系统又复杂又脆。
再换个生活场景:你刷 YouTube 一个 1 小时脱口秀,点"自动字幕"——背后其实要回答五个问题:哪几秒在说话?说的是什么语种?说什么词?什么时刻说的?句末是问号还是句号?传统流水线五个工人接力;Whisper 想让一个 Transformer 一次把这五件事都吐出来。
最后留个 nuance:论文里说的"鲁棒性"(robustness)专指分布外鲁棒性(OOD robustness,out-of-distribution),不是单纯抗噪——它包含跨数据集、跨任务、跨语种好几层。
所以这一节是想说:现实场景里 ASR 真正的难点不是"听清楚干净录音",而是"杂音/口音/长录音/各语言/多任务"这一堆 OOD(out-of-distribution)问题;Whisper 的目标就是开箱即用解决这些。

之前的人怎么做
论文把已有路线分成两派,并指出各自的瓶颈:
第一派:自监督预训练(unsupervised pre-training)
- 代表作:Wav2Vec 2.0(2020)、Zhang et al. 2021 把数据规模拉到 100 万小时未标注音频
- 思路:让模型从原始音频里自己学语音表征(类似 BERT 的 masked language modeling 思路),然后再在小规模有标签数据上微调
- 优点:未标注数据极多,规模可以堆很大
- 致命伤:只学了 encoder,没有 decoder。要做实际任务必须二次微调;微调过程依赖工程师调参,且容易过拟合到特定数据集,鲁棒性反而下降
第二派:多数据集监督训练
- 代表作:SpeechStew(2021)合并 7 个高质量监督数据集 = 5140 小时
- 优点:跨域监督有助鲁棒性
- 致命伤:人工标注的高质量数据就这么多,凑齐顶天 5000 小时
中间过渡:弱监督
- Chen et al. 2021 / Galvez et al. 2021 用自动化流水线把 ASR 数据搞到 1 万 / 3 万小时
- 但还是太小,比不过未标注数据的规模
Whisper 论文的判断是:自监督路线在 encoder 上花了太多力气,结果还是离"开箱即用"很远;要破局应该在弱监督上把数据规模再翻一个数量级,借鉴 CV 圈做 ImageNet → JFT-3B 的迁移路径(论文里反复引用 Mahajan 2018、Kolesnikov 2020)。
类比一下三派的差异:
- 自监督派像"自己关在图书馆刷题刷一万小时书但没真做过卷子",遇到考试还要老师再带一遍才会做
- 多数据集监督派像"刷遍市面上所有官方教辅",但教辅再多也只覆盖一小部分题型
- Whisper 的弱监督派像"上网看 68 万小时野路子讲解视频和字幕"——质量参差,但接触面足够广
所以这一节是想说:自监督学到了好特征但缺好 decoder,监督学习数据又不够;Whisper 选了第三条路——牺牲标注质量,把数据量推到 68 万小时。
新想法
Whisper 的三句话总结:
- 数据:网页弱标注 → 68 万小时 → 多语种 + 多任务。互联网上有海量 "音频 + 自动字幕 / 人工字幕" 配对,质量参差但量大。用一组启发式过滤把垃圾数据筛掉(机器生成字幕、语种和文字不匹配等),剩下的不做任何文本规范化,让 seq2seq 模型自己学着输出"自然形态"的字幕。
- 架构:标准 Encoder-Decoder Transformer,不动。论文明确说"为了把功劳归到数据规模上,我们刻意用 off-the-shelf 架构"。
- 接口:Prompt 化 token 序列指定任务。Decoder 一开始预测一串"控制 token"——语种 / 任务(转录 or 翻译)/ 是否输出时间戳——后面才输出真正的文字。这等于把"任务定义"也变成了模型词表的一部分,一个模型变多个工具。
类比理解:之前的 ASR 系统像家里的厨房——切菜板、煤气灶、烤箱、微波炉各管一摊;Whisper 像把整个流程做成一台多功能料理机,你按"煮饭/煲汤/烤鸡"按钮(特殊 token)切换,原料(音频)从同一个口进。
所以这一节是想说:Whisper 不发明新结构,而是把"数据规模 + 多任务统一接口"这两件事做到极致;架构本身只是一个尽量不出错的容器。
方法分步
Step 1. 数据收集与清洗
像主厨进菜市场——先大筐扫货,再回厨房挑挑拣拣,最后开炉试做一道菜,吃出哪个摊主在卖坏菜,下次直接拉黑。
- 来源:互联网上的(音频, 字幕)配对,覆盖各种环境/录音设备/说话人/语言
- 过滤启发式:
- 排除机器生成的字幕(全大写/全小写、从不带逗号、没有标点等迹象)——避免模型学出"transcript-ese"(机器味文本)
- 用 audio language detector 检测音频语种,必须和文字语种匹配;不匹配但文字是英文的,归到"X→英 翻译"训练数据
- 字幕级别 fuzzy 去重,防数据污染
- 训练初版模型后,按数据源分组看错误率,错误率高的源人工抽查,剔除低质量整批数据
- 切片:所有音频切成 30 秒片段,配对该时段对应的字幕;包括纯静音段(用作 VAD 训练样本)
为什么这种"粗筛 + 训练后再细筛"的两阶段关键:规则过滤能拿掉 80% 的垃圾,但"局部错位"或"漏转录"这剩下的 20% 规则识别不出;让模型先训一版、再看它在训练数据上哪些源错得多——错得多的源往往就是脏的——人工抽查只看 top-K 大源就能高效清洗。这是大模型时代的"数据质量飞轮"思想,LLaMA、Phi 后来都在用。
Step 2. 输入特征
把声音变成"二维图",模型才能像看图片一样看声音。
- 全部音频重采样到 16 kHz
- 计算 80 通道 log-Mel 频谱图:25 毫秒窗口、10 毫秒步长。"Mel 频谱"是把人耳对频率的非线性感知模拟出来的特征,相当于把声音翻译成模型能消化的"二维图"
- 全局归一化到 [-1, 1],约零均值
Step 3. 模型架构
像一对接力——前一棒(Encoder)听音频做笔记,后一棒(Decoder)拿着笔记一个字一个字往外吐。
等等,先慢一拍——Encoder 和 Decoder 是什么?Encoder 一次性把整段音频读完、压成一组"理解笔记"(hidden state);Decoder 像 GPT 那样一个 token 一个 token 往外写字,写的时候随时回头查笔记。
- Encoder:两层 1D 卷积(kernel=3,第二层 stride=2 把序列长度减半,GELU 激活)做 stem;加正弦位置编码;之后是若干 Transformer block,pre-LN 残差
- Decoder:标准 Transformer decoder,学习式位置编码,输入输出 token embedding 共享权重
- Tokenizer:GPT-2 的 byte-level BPE;多语种版重训词表但保持词表大小
- 规模:5 档共训练。看 Table 1:
- Tiny: 4 层 / 384 宽 / 39M 参数
- Base: 6 层 / 512 宽 / 74M
- Small: 12 层 / 768 宽 / 244M
- Medium: 24 层 / 1024 宽 / 769M
- Large: 32 层 / 1280 宽 / 1550M(1.55B)
Step 4. 多任务 Prompt 格式
像在自动售货机前先按按钮——"我要中文转录、要时间戳",机器才知道吐什么。
Decoder 起手 token 序列长这样(看 Figure 1 一目了然):
<|startoftranscript|> <|en|> <|transcribe|> <|notimestamps|> Hello world. <|endoftranscript|>
各 token 含义:
<|startoftranscript|>:开始- 语种 token(99 种之一,比如
<|en|><|zh|>);如果纯静音输出<|nospeech|> - 任务 token:
<|transcribe|>或<|translate|>(翻译永远翻成英文) <|notimestamps|>或省略——决定要不要时间戳- 时间戳模式下,文字 token 前后插入时间 token(量化到 20 毫秒精度)
- 如果有上文(前一段的字幕),有概率把它接到 decoder context 前面,让模型学会用长程文本上下文消歧
翻译成大白话:模型不知道你想干嘛,所以你先告诉它。比如:
- 想让 Whisper 转录中文音频 → 第一个真实 token 给
<|zh|>,第二个给<|transcribe|> - 想让 Whisper 把日语翻成英文 →
<|ja|>+<|translate|> - 想让 Whisper 自动检测语种 → 干脆不强制,让模型自己预测语种 token
- 想让 Whisper 输出带时间戳的字幕 → 省略
<|notimestamps|>即可
这种"输入端 token 切任务"的设计有几个深远好处:训练时同一组参数学了所有任务(共享底层声学知识),推理时无需切模型,新任务只要扩词表就能加。这是 prompting 范式在多模态的早期典范。
Step 5. 训练
像新生开学发书——卷子又多又杂,老师不用"刻意压力测试"(dropout 之类的正则化),让学生自然刷过去就行。
- AdamW + 梯度裁剪 + 线性 LR 衰减(前 2048 步 warmup)
- batch size = 256 段
- 训练 2²⁰ ≈ 100 万步 = 数据集过 2~3 遍(epoch 数很少,所以不用 dropout / data augmentation / weight decay,靠数据多样性正则化)
- FP16 + dynamic loss scaling + activation checkpointing
- 后期 V2:多训 2.5 倍 epoch,加 SpecAugment / Stochastic Depth / BPE Dropout 抗过拟合
- 训练损失只在新内容上算:把 previous-text condition 部分的 loss mask 掉,只在当前段字幕 + 任务 token 上反向传播
- 微调一个小步:训完后在"不含说话人姓名"的子集上额外微调一下,专门把"瞎猜说话人姓名"的失败模式擦掉
Step 6. 长音频解码
像看一本厚书——一次只看 30 秒一页,看完用上一页结尾接下一页开头,免得在某个词中间撕开。
模型只能吃 30 秒片段,但实际录音常是几小时。Whisper 的"buffered transcription"流程:
- 转录第一段 30 秒,模型预测时间戳
- 把窗口往后滑到最后一个时间戳处,避免在词中间切断
- 上一段结尾的文本作为 previous-text condition 传给下一段
- 温度调度:默认 temperature=0(贪心解码);如果生成文本压缩率(gzip)> 2.4 或 logprob 平均 < -1(说明在循环重复),温度+0.2 重试,直到 1.0
- 5-beam beam search 进一步降重复
- 用
<|nospeech|>概率 + 平均 logprob 联合阈值判断静音段
"压缩率检查"很有意思:人话一段文字 gzip 压缩比通常在 1.5~2.0;如果模型陷入循环(比如反复输出"thank you. thank you. thank you..."),重复内容压缩率会飙升到 3 以上。是一个朴素但极有效的工程兜底信号。
所以这一节是想说:从音频到字幕一共就这几步——切 30 秒片段、算 mel 频谱、过 Transformer、按 prompt token 切换任务、长音频用滑窗+温度调度兜底。
关键数字
熟读这几条数字基本掌握论文要点。如果只让你背三个数字,背 68 万小时 / 55.2% 平均 OOD 提升 / 16× 数据 ≈ WER 减半 这三个:
| 数字 | 含义 |
|---|---|
| 680,000 小时 | 训练数据总量;其中 117k 多语种 ASR + 125k X→英翻译 + 余下英文 ASR |
| 96 个非英语种 | 多语种覆盖(含 75 个有 ASR 训练数据的语种) |
| 30 秒 | 单次输入音频长度 |
| 80 通道 / 25ms / 10ms | log-Mel 频谱配置 |
| 39M ~ 1550M | 模型规模区间(Tiny~Large) |
| 2²⁰ 步、batch 256 | 训练量 ≈ 数据集 2~3 epoch |
| 2.5% WER | Whisper-Large 在 LibriSpeech test-clean 上的成绩,没什么可吹的 |
| 55.2% 平均相对 WER 下降 | 在 12 个 OOD 数据集上 Whisper vs wav2vec 2.0 Large——真正的卖点 |
| 29.1 BLEU | X→英 CoVoST2 零样本 SOTA |
| WER 每 16× 数据 ≈ 减半 | 多语种 log-log 拟合斜率 |
| r² = 0.83 | 各语种数据量与 Fleurs WER 的对数-对数相关性(识别任务) |
| r² = 0.24 | 翻译任务上同一关系——比识别弱很多,因为语种识别本身有噪声 |
| 20 毫秒 | 时间戳 token 量化精度 |
| r² = 0.83 (识别) vs 0.24 (翻译) | 数据量 vs 性能的对数线性拟合度 |
| 5 beam / temperature 0→1.0 | 长音频解码的 beam search + 温度调度参数 |
| gzip 压缩比阈值 2.4 | 检测重复循环用的工程信号 |
所以这一节是想说:Whisper 跟 LibriSpeech SOTA 在干净数据上打平手,但在所有"不干净"的真实分布上是碾压性的——这个对比就是论文的核心证据。
应该懂的新词
- WER(Word Error Rate, 词错率):把模型输出和标注对齐,算"插入+替换+删除"次数除以参考词数。越小越好。论文专门提醒 WER 会过度惩罚"风格差异"(比如逗号有无),所以 Whisper 配套了一个文本规范器(text normalizer)做后处理。举例:参考"$68 million",模型输出"sixty-eight million dollars",原始 WER 算成 4 个错;规范化后两者都标成"68000000 dollars"或类似形式,WER=0。Whisper 的 normalizer 会把 contractions、数字、货币等都拍平。
- WER 的一个直觉:WER=10% 大致意味着每 10 个词里有 1 个出错。读起来虽然有错但能懂大意;WER=25% 起阅读体验就明显糟糕;WER=50% 基本没法用。Whisper 在大部分英文测试集上能压到 10% 以下,但在 CHiME-6(嘈杂家庭录音)这种极难数据上 WER 仍是 25%。
- Zero-shot transfer(零样本迁移):模型不在目标数据集的训练集上微调,直接拿预训练权重在测试集上跑,看能不能解决任务。Whisper 的全部主结果都是 zero-shot。
- Effective robustness(有效鲁棒性,Taori 2020):定义为"OOD 数据集上的表现"减去"基于 in-distribution 表现回归预测的预期表现"。简单说,就是看你在 OOD 上比同档次模型好多少,剥离掉单纯"模型更强"的因素。Figure 2 就是这个概念的可视化。
- Encoder-Decoder Transformer:编码器-解码器架构。Encoder 看完整音频,输出一组特征;Decoder 自回归地生成 token。和 GPT 这种 decoder-only 不同,Whisper 这种结构天然适合"输入是一种模态、输出是另一种模态"的任务。
- BPE(Byte-Pair Encoding):把单词切成子词的算法。"unbelievable"→"un / believ / able"。byte-level BPE 在字节而非字符层面操作,能处理任意 Unicode。
- log-Mel 频谱:声音的二维"图像"。横轴时间,纵轴频率(Mel 刻度,模拟人耳)。每个像素是该时刻该频段的能量取对数。是 ASR 通用输入特征。
- VAD(Voice Activity Detection):判断当前片段是不是有人说话。Whisper 通过
<|nospeech|>token 一并搞定。 - SpecAugment:在频谱图上随机遮挡时间和频率条带的数据增强方法。Whisper V2 引入。
- BLEU:机器翻译评估指标,看 n-gram 重叠率。越大越好。
- Negative transfer(负迁移):多任务联合训练时任务间互相干扰,反而比单任务更差。Whisper 发现小模型确实有负迁移,但模型够大后负迁移消失,转为正迁移。
- Effective batch size:256 段 × 30 秒 = 每步处理 7680 秒 ≈ 2.1 小时音频。这帮你估算训练成本时有用。
- EMA(Exponential Moving Average)参数:Whisper Section 4.2 在 dataset scaling 实验里用 0.9999 平滑率的 EMA 估计参数,缓解小数据集训练时 LR 不归零的问题。这是大模型训练里的常用稳定化 trick。
所以这一节是想说:除了 WER 和 zero-shot 这两个核心评测语,最值得记的是 effective robustness——这是论文方法论上的关键指标,决定了它能比拼"鲁棒性"而非"绝对精度"。
搞不定的
论文很坦诚,专门列了 Whisper 的弱点:
- Decoding 不稳:长音频偶发幻觉/循环。靠温度调度 + beam search + previous-text condition + gzip 压缩率检查兜底,但本质是 seq2seq 模型常见病。后续社区做了非常多 "decoding 稳定性" 工程改造(faster-whisper、whisper.cpp 的 VAD 切片、whisperX 的强制对齐)。
- 小语种数据失衡:Welsh 上居然有 9000 小时翻译数据,调查后发现是被语种识别系统误把英文音频判成 Welsh 导致的污染——这种数据噪声直接影响该语种的下游表现。
- 说话人 diarization 不直接支持:Whisper 训练时刻意 fine-tune 掉了"猜说话人姓名"的行为(因为只有 30 秒上下文猜不准)。说话人分离需要额外模块。
- VoxPopuli 上不如对手:因为对手把 VoxPopuli 当无监督预训练数据用过,且该数据集的监督数据远多于 MLS——属于"评测设置不利",不是模型的本质短板。
- 语种识别准确率不如专门模型:Fleurs 上低 13.6 个百分点。原因之一是 Whisper 训练集压根没碰过 Fleurs 102 种里的 20 种。
- 超长音频依赖时间戳准确性:30 秒滑窗依赖时间戳 token 切窗,时间戳错一个,后面全错位。
- 不能流式解码:只能 offline 整段过;后续 streaming 改造是社区方向。
- 不开源训练数据:只放了模型权重和推理代码,训练集 / 训练代码完全闭源。这是论文的复现瓶颈。
- 幻听问题:在长静音段或低质量音频上,Whisper 会"自我补完"——凭语言模型先验生成根本不存在的内容。常见症状是空音频段输出 "Thanks for watching!"(因为 YouTube 字幕里太多这种结尾)。
- 训练数据可能含版权内容:68 万小时网页音频里大概率混了大量受版权保护的播客/视频字幕,OpenAI 没披露具体来源——这是后续法律争议的潜在风险点。
- 小模型多语种性能掉得快:Tiny / Base 这种小模型在多语种任务上崩得很厉害,实际部署小模型基本只能做英文。要 Multilingual 至少 Small 起步,Medium 才能用得舒服。
所以这一节是想说:Whisper 在"开箱可用"维度上很强,但 decoding 稳定性、流式、说话人分离、训练复现性这些工程坑都还在,社区生态围绕这些坑做了大量轮子。
与别篇关系
把 Whisper 放到论文清单里看它的坐标:
- CLIP(vlm-foundation, 2021):同样 OpenAI Radford 团队,思路高度相似——"用网页弱标注数据 + 简单架构 + 大规模"换 zero-shot 能力。CLIP 是图文版,Whisper 是音文版。论文里也直接类比 CLIP。先读 CLIP 再读 Whisper 一通百通。
- Wav2Vec 2.0(2020):Whisper 在 introduction 里的主要对手。Wav2Vec 走自监督,Whisper 走弱监督。Table 2 直接对比。
- GPT-2 / GPT-3:Whisper 用的 BPE tokenizer 和 prompt 化任务接口都从 GPT 系来。"Decoder + 特殊 token 切任务"就是 prompt engineering 在语音的版本。
- 多任务统一接口的祖师爷 T5:T5 提出"所有 NLP 任务都翻译成 text-to-text"。Whisper 把这个思想延伸到 audio-to-text。
- Robotics / VLA 类工作:Whisper 的"prompt token 切任务"思路被 RT-2、OpenVLA 这类工作借鉴——任务由 token 序列指定,模型由 Transformer 统一处理。如果你在读 VLA 路线,Whisper 是一个很好的"多任务 prompt"小尺寸案例。
- 数据规模派:和 LLaMA、PaLM 等"数据驱动"的 LLM 工作精神一致;和 Chinchilla 的 scaling law 讨论可以对照看(Whisper 论文 4.2 节也讨论了 dataset scaling 但没拟合 scaling law)。
- 后续工作:Whisper-V3、Distil-Whisper、faster-whisper(CTranslate2 加速)、whisperX(强制对齐 + diarization)、Canary(Nvidia 多任务 ASR)、Seamless(Meta 多语 + 翻译)都是直接受 Whisper 影响。
所以这一节是想说:Whisper = CLIP 的语音版 + GPT 的多任务接口;它是一篇"工程型"论文,但它确立的"弱监督多任务 audio foundation model"范式被后续大量工作继承。
阅读顺序
如果你时间紧,按以下顺序读最高效:
- Abstract + Introduction(第 1 节):抓住"68 万小时 / 弱监督 / zero-shot / 多任务"这四个关键词
- Figure 1:一张图看懂 Encoder-Decoder + 特殊 token 的任务接口
- Table 1:5 档模型规模一目了然
- Section 2.3 Multitask Format:这是论文最值得抄的工程设计
- Figure 2 + Table 2:核心实验结果——OOD 鲁棒性的 55.2% 提升
- Section 4.1 ~ 4.3:scaling 分析(模型规模 / 数据规模 / 多任务转移)。如果你将来做"自己的 foundation model",这三节是参考模板
- Section 4.5 Long-form Decoding:实战工程经验,决定 Whisper 能不能在生产用
- Section 5 Limitations:作者亲自写的失败模式总结,别错过
- (可选)Appendix A/F:评测数据集详情、训练超参——只在你要复现/微调时看
如果只读一节,读 2.3:Whisper 全部"巧妙之处"都浓缩在那个 token 格式里。
不同读者的不同重点:
- 应用工程师:Section 2.3(接口)+ Section 4.5(解码)+ 仓库里的
transcribe.py - 研究者 / 想做 foundation model:Section 4(所有 ablation)+ Appendix A(评测协议)
- 学生 / 入门者:Abstract + Figure 1 + Figure 2 即可,剩下是技术细节
- 想自己微调的:Section 2 + Section 5 (limitations) + HuggingFace 教程
所以这一节是想说:抓"Figure 1 + Table 1 + Figure 2 + Section 2.3 + Section 4 子节"五样东西,论文 80% 内容到手。
FAQ
Q1. Whisper 是 streaming 实时语音识别吗? A. 不是。原版只能 offline 整段过 30 秒窗口。社区做了 streaming 改造(whisper-streaming 等),但本质上是"反复重跑短窗口 + 拼接",不是真 streaming 架构。
Q2. 为什么训练时 dropout、weight decay 都没用? A. 因为只过 2~3 个 epoch。数据多样性已经够防过拟合,反而再加正则会拖慢收敛。这是大数据时代的一个反常识——小数据时代必须靠正则化,大数据时代不靠。但 V2 因为多训了 2.5 倍 epoch,又把 SpecAugment / Stochastic Depth 加回来了。
Q3. 为什么把所有任务的输出都翻译到英文(X→en),不做 X→Y? A. 训练数据决定的——网络上"非英语字幕配对的英文翻译"远多于其他配对。OpenAI 没有 X→Y 训练数据。后续 Seamless 这类工作补了 X→Y。
Q4. 为什么用 Encoder-Decoder 而不是 decoder-only(GPT 那种)? A. 论文明确说选择"成熟的 off-the-shelf 架构"。语音输入是定长固定特征(80×3000),用 encoder 压缩成 hidden state、再让 decoder 自回归出文字,这种结构自 1980 年代就被研究透了。decoder-only 也能做(让模型从 mel 频谱直接 next-token),但那时还没成熟方案。
Q5. 30 秒为什么是这个数? A. 工程取舍:太短上下文不够(消歧失败、长词被切断),太长 attention 复杂度爆炸(O(n²))。30 秒在两者之间,配合 16kHz × 30s = 480k 个采样点,经过 stride 后到 1500 个 frame,与 Transformer 序列长度匹配。
Q6. 为什么 LibriSpeech 上 Whisper 不强? A. 因为 LibriSpeech 是有声书朗读,是 ASR 圈过拟合得最严重的一块——所有专门优化的模型都把这块训到极致。Whisper 没在 LibriSpeech 上微调,所以 in-distribution 输给专家模型很正常;但你换到任何稍微现实点的录音上 Whisper 就赢了。
Q7. 多任务真的有正迁移吗? A. Section 4.3 说:模型小的时候有负迁移(多任务比单任务差),模型够大后转为正迁移。这是 scaling 时代的典型现象——"涌现"在多任务上也成立。
Q8. 我能在自己数据集上微调 Whisper 吗? A. 能。Whisper 权重开源,HuggingFace transformers 库直接支持。但要小心:Whisper zero-shot 已经很强,草率微调反而可能损害 OOD 鲁棒性。论文 introduction 就警告过这一点。
Q9. 训练成本? A. 论文没明说,但根据 batch size 256、2²⁰ 步、Large 1.55B 参数估算,A100 集群上量级在数十万 GPU-小时。Tiny / Base 这种小模型在单台 8×A100 机器上几天就能微调。
Q10. Whisper 对中文怎么样? A. Figure 3 显示 ZH 是 r²=0.83 拟合线下的离群点(worse than expected)。原因之一是 byte-level BPE 对中文这种非空格分词语种不友好;其二是中文训练数据可能比标称更少。实际体验:英文 >> 主流欧洲语 > 普通话 > 小众语种。社区有针对中文的微调版(如 Belle-Whisper)。
Q11. Whisper 处理"语速"敏感吗? A. 训练数据里语速分布很广(脱口秀语速 vs 朗读语速差别极大),所以本身鲁棒。但极快语速(>200 wpm)下还是会丢词。如果你的应用对快语速敏感,可以在前处理阶段做语速放慢(保持音高)后再喂给 Whisper。
Q12. 我能用 Whisper 做声纹识别 / 情感识别吗? A. 不行。Whisper 训练目标只有"音 → 文"和"音 → 翻译文"。它的 encoder 特征理论上含有声纹信息,但论文没做这方面 probe,社区有零星探索(在 Whisper encoder 上加任务头微调)但效果一般。专门的声纹模型(如 ECAPA-TDNN)更合适。
Q13. Whisper 对时间戳真的准吗? A. 量化精度 20 毫秒,但对齐到具体单词级别精度有限——它的时间戳是基于 token 预测的,不是强制对齐。如果你要精确到词的时间戳,用 WhisperX(在 Whisper 输出后用 wav2vec 2.0 做 forced alignment)。
Q14. 训练 V2 时为什么加回 SpecAugment? A. V2 训练 epoch 数翻了 2.5 倍(约 5~7 epoch),开始有过拟合风险。论文实际是用了一个折中:保留大数据多样性的核心策略,但额外加少量正则。这是大数据时代"什么时候加正则"的好教学样本。
Q15. Whisper 能"识别非语音声音"吗(比如鸟鸣、音乐)?
A. 不行。Whisper 训练目标只针对人类语音 → 文字。对于非语音音频,它倾向于:(a) 输出 <|nospeech|>,(b) 输出幻觉文字(最常见),(c) 偶尔输出 [Music]、[Applause] 这类标签(因为训练字幕里有)。要做通用音频理解请看 AudioLDM、CLAP、Pengi 等工作。
Q16. 30 秒不够用怎么办? A. 论文 Section 4.5 给出的 buffered transcription 流程能处理任意长度音频。社区还有更激进的方案:whisperX 用 forced alignment + VAD 把每个 30 秒窗口对齐到自然句界,长音频准确率显著提升。
Q17. Whisper 模型为什么没继续推到 10B+? A. 论文 4.1 节显示英语 ASR 上 Large 已经接近人类水平,继续放大模型边际收益很小;多语种和翻译还没饱和但数据可能也快了。结合 OpenAI 把研究重心转向 LLM,Whisper 走到 1.5B 就停了。后续 V3(2023 末)和 V3-turbo(2024)主要是数据 + 训练 trick 升级,不是模型放大。
所以这一节是想说:Whisper 的设计取舍(30 秒、Encoder-Decoder、X→en、零样本而非微调)都不是拍脑袋的,每个都有数据/工程/任务侧的理由——读懂这些 trade-off 比记住数字更有用。
延伸阅读
按推荐优先级排:
- CLIP 论文(Radford 2021, ICML):理解 Whisper 的精神先祖。同一支团队、同一种方法论
- Wav2Vec 2.0(Baevski 2020, NeurIPS):Whisper 的主要对照对象,自监督音频路线代表
- GPT-2 论文 + The Pile / WebText:理解"网页弱监督预训练"这个范式的源头
- Scaling Laws for Neural Language Models(Kaplan 2020)+ Chinchilla(Hoffmann 2022):Whisper Section 4.2 的 scaling 分析直接受这两篇启发
- Distil-Whisper(Hugging Face 2023):把 Whisper 蒸馏到 1/6 大小、6 倍速度,工程必读
- WhisperX(Bain 2023):解决 diarization + 强制对齐,是 Whisper 真正在工业落地的常见装配
- Seamless(Meta 2023):多语种 X→Y 翻译,Whisper 之后的 audio foundation model 代表
- OpenAI 的 Whisper 仓库(github.com/openai/whisper):源码不长(约 2k 行 Python),结合论文 Section 2 + Section 4.5 读,长音频解码的 heuristic 全在
transcribe.py里 - WERA / faster-whisper / whisper.cpp:三个流行加速实现,看大家怎么把 1.5B 模型塞到笔记本/手机
- Conformer(Gulati 2020, Interspeech):另一种主流 ASR 架构(Conv + Transformer 混合),用作对照很有意思
- OpenAI 自己的后续 Whisper-V3(2023 末)/ V3-turbo(2024):V3 升到 128 通道 mel + 多训了一遍数据;V3-turbo 把 decoder 从 32 层砍到 4 层,速度快 8 倍但精度只小掉一点点——是工程上"不平衡 encoder/decoder"的好教科书
- Voicebox / VALL-E:反向工程"音频生成"的工作。Whisper 是音→文,这两位是文→音。配合阅读能完整理解 audio foundation model 的两个方向
- MMS(Massively Multilingual Speech, Meta 2023):把 Whisper 的多语种思路推到 1100+ 语种,数据用宗教文本朗读凑——非常有趣的 long-tail 语言研究
如果你正在 embodied AI 路线上读这篇笔记,提一下连接点:Whisper 提供的 prompt-token 多任务接口正是 RT-2、OpenVLA 这一系列 VLA 工作的精神原型——任务由 token 序列指定,模态由 token 类型区分。读完 Whisper 再读那些工作,"任务接口设计"这一点会非常顺。
所以这一节是想说:Whisper 论文本身只是起点,真正想做语音应用必须把 CLIP/GPT 的范式逻辑、scaling law 的数学直觉、社区的工程加速一起看明白。
◼
引用本笔记 / Cite this note
@online{eai_whisper_2026,
title = {(readable note) Robust Speech Recognition via Large-Scale Weak Supervision},
author = {Zhou, Jason},
year = {2026},
note = {Note on a 2023 paper},
howpublished = {\url{https://estelledc.github.io/embodied-ai-reading-station/papers/whisper/}},
organization = {Embodied AI Reading Station}
}
All 156 papers (full index)
- 1. LLaVA: Visual Instruction Tuning
- 2. 3DShape2VecSet: 3D Shape Representation for Diffusion Models
- 3. SayCan: Do As I Can, Not As I Say
- 4. OpenVLA: An Open-Source Vision-Language-Action Model
- 5. VLAS: VLA Model With Speech Instructions
- 6. MLA: Multisensory Language-Action Model
- 7. Cosmos Policy: Fine-Tuning Video Models for Visuomotor Control
- 8. CartoRadar: RF-Based 3D SLAM Rivaling Vision Approaches
- 9. mmCLIP: Boosting mmWave-based Zero-shot HAR via Signal-Text Alignment
- 10. mmNorm: Non-Line-of-Sight 3D Object Reconstruction via mmWave Surface Normal Estimation
- 11. Proactive Hearing Assistants that Isolate Egocentric Conversations
- 12. NeuralAids: Wireless Hearables With Programmable Speech AI Accelerators
- 13. Creating speech zones with self-distributing acoustic swarms
- 14. Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation
- 15. SoundStream: An End-to-End Neural Audio Codec
- 16. AudioLM
- 17. Conformer
- 18. Dual-path RNN
- 19. EnCodec
- 20. Meta-StyleSpeech
- 21. MusicLM
- 22. Robust Speech Recognition via Large-Scale Weak Supervision
- 23. SeamlessM4T
- 24. Stable Audio
- 25. Universal Source Separation with Weakly Labelled Data
- 26. Meta-World: A Benchmark and Evaluation for Multi-Task and Meta Reinforcement Learning
- 27. RLBench: The Robot Learning Benchmark & Learning Environment
- 28. robosuite: A Modular Simulation Framework and Benchmark for Robot Learning
- 29. BridgeData V2
- 30. CALVIN
- 31. LIBERO
- 32. RH20T
- 33. What Matters in Learning from Offline Human Demonstrations for Robot Manipulation
- 34. DROID
- 35. Open X-Embodiment
- 36. RoboCasa
- 37. SimplerEnv
- 38. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
- 39. 3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations
- 40. Consistency Policy: Accelerated Visuomotor Policies via Consistency Distillation
- 41. EquiBot: SIM(3)-Equivariant Diffusion Policy
- 42. DiT-Policy
- 43. Diffusion Policy Policy Optimization (DPPO)
- 44. Affordance-based Robot Manipulation with Flow Matching
- 45. FlowPolicy: 3D Flow-based Policy via Consistency Flow Matching
- 46. FAST: Efficient Action Tokenization for VLA
- 47. pi_0: Vision-Language-Action Flow Model
- 48. pi_0.5: VLA with Open-World Generalization
- 49. A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
- 50. Generative Adversarial Imitation Learning
- 51. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT/ALOHA)
- 52. AnyTeleop
- 53. Behavior Transformers: Cloning k Modes with One Stone
- 54. Implicit Behavioral Cloning
- 55. RoboCat
- 56. ALOHA 2
- 57. DexCap
- 58. HumanPlus
- 59. Generalizable Humanoid Manipulation with 3D Diffusion Policies (iDP3)
- 60. Mobile ALOHA
- 61. SmolVLA
- 62. Universal Manipulation Interface
- 63. Behavior Generation with Latent Actions (VQ-BeT)
- 64. ImageBind: One Embedding Space To Bind Them All
- 65. Connecting Touch and Vision via Cross-Modal Prediction
- 66. AnyMAL: An Efficient and Scalable Any-Modality Augmented Language Model
- 67. AudioPaLM
- 68. FROMAGe: Grounding LLMs to Images
- 69. OneLLM
- 70. X-VLM: Multi-Grained Vision Language Pre-Training
- 71. Tactile Beyond Pixels (Sparsh-X)
- 72. Sparsh: Self-supervised Touch Representations
- 73. Tactile-VLA
- 74. TLA: Tactile-Language-Action
- 75. Code as Policies: Language Model Programs for Embodied Control
- 76. Inner Monologue: Embodied Reasoning through Planning with Language Models
- 77. LLM+P: Empowering LLMs with Optimal Planning
- 78. PaLM-E: An Embodied Multimodal Language Model
- 79. ProgPrompt
- 80. ChatGPT for Robotics
- 81. GenSim
- 82. RoboFlamingo
- 83. Tree-Planner
- 84. VoxPoser
- 85. See Through Smoke: Robust Indoor Mapping with Low-cost mmWave Radar
- 86. Can WiFi Estimate Person Pose?
- 87. 3DRIMR: 3D Reconstruction and Imaging via mmWave Radar based on Deep Learning
- 88. milliEgo: Single-chip mmWave Radar Aided Egomotion Estimation via Deep Sensor Fusion
- 89. High Resolution Point Clouds from mmWave Radar
- 90. RadarSLAM: Radar based Large-Scale SLAM in All Weathers
- 91. Through-Wall Pose Imaging in Real-Time with a Many-to-Many Encoder/Decoder Paradigm
- 92. RFMask: A Simple Baseline for Human Silhouette Segmentation with Radio Signals
- 93. RFPose-OT: RF-Based 3D Human Pose Estimation via Optimal Transport Theory
- 94. Argus: Multi-View Egocentric Human Mesh Reconstruction Based on Stripped-Down Wearable mmWave Add-on
- 95. Diffusion Model is a Good Pose Estimator from 3D RF-Vision
- 96. Enabling Visual Recognition at Radio Frequency (PanoRadar)
- 97. Wave-Former: Through-Occlusion 3D Reconstruction via Wireless Shape Completion
- 98. Habitat: A Platform for Embodied AI Research
- 99. Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning
- 100. DexMV
- 101. Habitat 2.0
- 102. ManiSkill
- 103. ProcTHOR
- 104. SAPIEN: A SimulAted Part-based Interactive ENvironment
- 105. BEHAVIOR-1K
- 106. Habitat 3.0
- 107. Isaac Lab
- 108. MuJoCo Playground
- 109. RT-1: Robotics Transformer for Real-World Control at Scale
- 110. 3D Diffusion Policy (DP3)
- 111. Octo: An Open-Source Generalist Robot Policy
- 112. RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control
- 113. RT-Trajectory: Robotic Task Generalization via Hindsight Trajectory Sketches
- 114. 3D-VLA
- 115. DexVLA
- 116. GR-2: Generative Video-Language-Action Model
- 117. OpenHelix
- 118. OpenVLA-OFT
- 119. RDT-1B: Diffusion Foundation Model for Bimanual Manipulation
- 120. RoboMamba
- 121. SpatialVLA
- 122. TinyVLA
- 123. TraceVLA: Visual Trace Prompting
- 124. Learning Transferable Visual Models From Natural Language Supervision
- 125. Flamingo: a Visual Language Model for Few-Shot Learning
- 126. BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
- 127. BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
- 128. DeepSeek-VL: Towards Real-World Vision-Language Understanding
- 129. EVA-CLIP: Improved Training Techniques for CLIP at Scale
- 130. FILIP: Fine-grained Interactive Language-Image Pre-Training
- 131. Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks
- 132. InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks
- 133. Improved Baselines with Visual Instruction Tuning
- 134. OBELICS
- 135. Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond
- 136. Sigmoid Loss for Language Image Pre-Training
- 137. What matters when building vision-language models?
- 138. Expanding Performance Boundaries of Open-Source Multimodal Models with Model, Data, and Test-Time Scaling
- 139. The Llama 3 Herd of Models
- 140. LLaVA-NeXT-Interleave
- 141. LLaVA-OneVision: Easy Visual Task Transfer
- 142. Long-CLIP: Unlocking the Long-Text Capability of CLIP
- 143. Pixtral 12B
- 144. Dream to Control: Learning Behaviors by Latent Imagination
- 145. World Models
- 146. DayDreamer
- 147. Mastering Atari with Discrete World Models
- 148. Dreamer V3: Mastering Diverse Domains through World Models
- 149. Transformers are Sample-Efficient World Models
- 150. TWM: Transformer-based World Models
- 151. 1X World Model Challenge
- 152. Cosmos World Foundation Model Platform
- 153. GAIA-1
- 154. Genie: Generative Interactive Environments
- 155. Navigation World Models
- 156. UniSim