音频语言模型:从Whisper到Audio Flamingo 3
理解从语音识别到音频推理的演进路径,包括log-Mel频谱图和音频Q-Former
音频语言模型:从Whisper到Audio Flamingo 3的演进
Whisper (Radford等人, 2022年12月)解决了语音识别——68万小时弱监督多语言语音、简单编码器-解码器Transformer、让后续每个ASR发布都引用它的基准。但识别不是推理。问”这段录音里有什么乐器”或”说话者表达了什么情绪”或”第3分钟发生了什么”需要音频理解,不是转录。Qwen-Audio、SALMONN、LTU和NVIDIA的Audio Flamingo 3 (AF3, 2025年7月)逐步构建了这个栈:保留Whisper级编码器,螺栓固定Q-Former,在音频-文本指令数据上训练,添加思维链推理。本课程走完这条弧线。
类型: 构建 语言: Python (stdlib, log-Mel频谱图 + 音频Q-Former骨架) 前置知识: Phase 6 (语音与音频), Phase 12 · 03 (Q-Former) 时间: ~180分钟
学习目标
- 从波形计算log-Mel频谱图:加窗、FFT、滤波器组、对数变换。
- 比较编码器选项:Whisper编码器、BEATs、AF-Whisper混合。各自何时获胜。
- 构建音频Q-Former:N个可学习查询交叉关注频谱图patch。
- 解释级联(Whisper-然后-LLM) vs 端到端音频LLM训练:为什么端到端在推理上扩展更好。
问题
语音识别被Whisper解决了。音频的OCR是商品。但”商品”止步于转录。如果模型不能对它听到的内容进行推理——时间、说话人、情绪、音乐结构、环境声音——仅靠转录无法驱动产品功能。
三条明显路线:
-
级联:Whisper转录,LLM在转录文本上推理。适用于纯语音场景。对音乐、环境音频、多说话人重叠、情绪失败。
-
端到端音频LLM:音频编码器直接将音频token喂入LLM,跳过转录。保留声学信息(情绪、说话人、环境)。需要新训练数据。
-
混合:音频编码器 + 既能转录又能推理的文本解码器。Qwen-Audio和Audio Flamingo选择此路线。
概念
Log-Mel频谱图:输入特征
每个音频编码器从相同特征开始:log-Mel频谱图。
- 重采样到16 kHz。
- 25ms窗口、10ms步幅的短时傅里叶变换。
- 取FFT结果的幅度。
- 应用Mel滤波器组(通常80个滤波器,0-8000 Hz对数间隔)映射到感知频率。
- 对数压缩(log(1 + x))调整动态范围。
结果:形状为(T, 80)的2D数组,T是时间帧数。30秒片段在100 Hz帧率下:(3000, 80)。
Whisper的编码器
Whisper的编码器是12层ViT风格Transformer,将log-Mel频谱图作为时间帧序列处理。输出:每时间帧一个隐藏状态向量。
对于ASR,Whisper的解码器是在编码器输出上条件生成文本token的交叉注意力Transformer。标准编码器-解码器。
对于ALM(音频LLM),你想要编码器输出作为不同LLM的输入。模式:Whisper编码器冻结,Q-Former可训练,LLM冻结或微调。
BEATs和音频专用编码器
Whisper在语音主导数据上训练。对音乐和环境音频较弱。
BEATs (Chen等人, 2022)是在AudioSet上训练的自监督Transformer。在相同参数量下比Whisper更好地捕获音乐和环境声音。
AF-Whisper(Audio Flamingo 3的混合):拼接Whisper + BEATs特征作为音频输入。Whisper携带语言信号,BEATs携带声学信号。
音频Q-Former
与BLIP-2的视觉Q-Former相同模式。固定数量的可学习查询(通常32或64)交叉关注音频编码器的输出帧。查询成为LLM消费的音频token。
训练对齐阶段:仅Q-Former,音频-文本对上的对比 + 标题生成损失(AudioCaps, Clotho)。指令阶段:端到端,解冻LLM,在指令数据上训练。
演进弧线 — SALMONN, Qwen-Audio, AF3
SALMONN (Tang等人, 2023):Whisper + BEATs + Q-Former + LLaMA。首个具有严肃推理能力的开放音频LLM。MMAU基准约0.55综合分。
Qwen-Audio (Chu等人, 2023):类似架构,更丰富数据集训练,多轮对话微调。MMAU约0.60。
LTU — Listen, Think, Understand (Gong等人, 2023):显式推理数据,专注于音频片段上的思维链。更小但更聚焦。
Audio Flamingo 3 (Goel等人, 2025年7月):当前开放SOTA。8B LLM骨干(Qwen2 7B),Whisper-large编码器拼接BEATs,64查询Q-Former,在100万+音频-文本指令对上训练。MMAU 0.72,在某些子任务上匹配专有前沿。
AF3还引入了音频的按需思维链:模型可以在最终答案前选择性发出思考token(“让我先识别乐器:…”)。启用思考时复杂推理任务准确率提升3-5分。
级联 vs 端到端
级联管道:
- Whisper转录音频 → 文本。
- LLM在文本上推理。
对”总结这个播客”完美工作。对以下失败:
- “这首歌的情绪是什么?“——情绪在声音中,不在文字中。
- “谁在说话,Alice还是Bob?“——需要说话人识别。
- “爆炸在第几秒发生?“——时间定位在文本中丢失。
- “这是真实还是生成的音频?“——深度伪造检测需要声学特征。
端到端保留声学信号。Qwen-Audio和AF3原生处理音乐、环境和情绪。
2026年生产方案
对于新音频理解产品:
- 如果目标是转录、无音乐、无情绪推理:级联。
- 如果涉及音乐、情绪、多说话人或复杂音频推理:AF3 / Qwen-Audio家族。
级联更便宜更简单。端到端更强大。
MMAU — 音频推理基准
MMAU(大规模多模态音频理解)是2024-2025年音频推理基准:
- 10,000个跨语音、音乐、环境声音的音频-文本QA对。
- 覆盖分类、时间推理、因果推理、开放式QA。
- 测试级联管道系统性遗漏的内容。
开放SOTA(AF3)为0.72;专有前沿约0.78(Gemini 2.5 Pro, Claude Opus 4.7)。差距比VideoMME的开放vs封闭差距小,表明音频LLM正在成熟。
实践
code/main.py:
- 在stdlib中实现log-Mel频谱图计算:加窗、朴素DFT、Mel滤波器组。
- 音频Q-Former骨架:给定编码器输出帧,计算Q、K、V、注意力并发出N个token。
- toy任务上级联vs端到端比较。
输出
本课程产生outputs/skill-audio-llm-pipeline-picker.md。给定音频任务(转录、音乐标签、情绪推理、多说话人分离、环境分类),它选择级联、端到端AF3或混合方案。
练习
-
计算30秒16kHz片段在25ms窗口、10ms步幅、80个Mel频段下的log-Mel频谱图维度。48kHz时如何变化?
-
为什么Whisper在音乐上表现不佳?BEATs捕获了Whisper没有的什么音频特征?
-
64查询vs 32查询的音频Q-Former:在什么任务复杂度下64查询有回报?32查询在什么场景下节省计算?
-
阅读AF3第4节关于按需思考。提出三个思维链帮助最大的音频任务。
-
使用AF3输出实现最小化分离管道。你如何标记说话人切换?
关键术语
| 术语 | 常见说法 | 实际含义 |
|---|---|---|
| Log-Mel频谱图 | ”Mel特征” | Mel滤波器组后对数幅度值的2D(时间, 频率)数组 |
| 音频Q-Former | ”音频Perceiver” | 从音频编码器输出到喂入LLM的固定长度查询的交叉注意力瓶颈 |
| 级联 | ”ASR-然后-LLM” | Whisper转录然后文本LLM推理的管道;丢失声学信息 |
| 端到端 | ”音频LLM” | 音频特征通过Q-Former直接进入LLM;保留声学信号 |
| BEATs | ”AudioSet音频编码器” | 在AudioSet上训练的SSL Transformer;音乐+环境声音强 |
| MMAU | ”音频推理基准” | 跨语音、音乐、环境的10k QA对;2024评估标准 |
| 按需思考 | ”音频CoT” | 模型可在最终答案前选择性发出推理token,提升准确率3-5分 |