音频语言模型:从 Whisper 到 Audio Flamingo 3 的弧线


文档摘要

音频语言模型:从 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、在音频-文本指令数据上训练、加思维链推理。本节走这条弧线。

音频语言模型:从 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、在音频-文本指令数据上训练、加思维链推理。本节走这条弧线。

学习目标

阅读完本节,你应当能够:

  1. 从波形算出 log-Mel 频谱图:加窗、FFT、滤波器组、对数变换。
  2. 对比编码器选项:Whisper 编码器、BEATs、AF-Whisper 混合,各自何时胜出。
  3. 搭一个音频 Q-former:N 个可学习 query 交叉关注频谱图 patch。
  4. 解释级联(Whisper 再 LLM)与端到端音频-LLM 训练:为什么端到端在推理上扩展得更好。

一、问题与直觉

Whisper 解决了语音识别,「音频的 OCR」成了大宗商品。但「大宗商品」止步于转写。如果模型不能对听到的内容推理——时序、说话人、情绪、音乐结构、环境声——单靠转写无法驱动产品功能。

三条显然的路线:

  1. 级联:Whisper 转写,LLM 在文字稿上推理。纯语音场景能用,对音乐、环境声、多人重叠、情绪失效。
  2. 端到端音频-LLM:音频编码器把音频 token 直接喂进 LLM,跳过转写。保留声学信息(情绪、说话人、环境),需要新训练数据。
  3. 混合:音频编码器 + 文本解码器,既能转写又能推理。Qwen-Audio 与 Audio Flamingo 选这条路。

log-Mel 频谱图:输入特征

每个音频编码器都从同一个特征起步:log-Mel 频谱图。

  1. 重采样到 16kHz。
  2. 短时傅里叶变换,25ms 窗、10ms 步长。
  3. 取 FFT 结果的幅度。
  4. 施加 Mel 滤波器组(典型 80 个滤波器,0~8000Hz 对数间隔)扭曲到感知频率。
  5. 对数压缩(log(1+x))以扩动态范围。

结果:形状 (T, 80) 的二维数组,T 是时间帧数。30 秒片段、100Hz 帧率:(3000, 80)。

Whisper 的编码器

Whisper 编码器是一个 12 层 ViT 风格 Transformer,把 log-Mel 频谱图当作时间帧序列处理,每帧输出一个隐藏状态向量。

ASR 用时,Whisper 解码器是交叉注意力 Transformer,在编码器输出条件下生成文本 token,标准编码器-解码器。

对 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 同模式。固定数量的可学习 query(常 32 或 64)交叉关注音频编码器的输出帧。query 成为 LLM 消费的音频 token。

对齐阶段:只训 Q-former,在音频-文本对(AudioCaps、Clotho)上跑对比 + caption 损失。指令阶段:端到端,解冻 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 query Q-former、在 100 万+ 音频-文本指令对上训练。MMAU 0.72,在部分子任务上追平闭源前沿。

AF3 还引入音频的按需思维链:模型可在最终答案前选择性地发出思考 token(「让我先识别乐器:……」)。复杂推理任务在启用思考时精度提升 3~5 分。

级联 vs 端到端

级联流水线:

  1. Whisper 把音频转写成文本。
  2. LLM 在文本上推理。

对「总结这段播客」完美工作。对以下失效:

  • 「这首歌的情绪是什么?」——情绪在声音里,不在词里。
  • 「谁在说话,Alice 还是 Bob?」——需要说话人识别。
  • 「爆炸在第几秒?」——文本丢失时序定位。
  • 「这是真实还是生成的音频?」——深度伪造检测需要声学特征。

端到端保留声学信号,Qwen-Audio 与 AF3 原生处理音乐、环境、情绪。

2026 生产配方

对新的音频理解产品:

  • 级联:目标是转写、无音乐、无情绪推理时。
  • AF3 / Qwen-Audio 系:涉及音乐、情绪、多人或复杂音频推理时。

级联更便宜更简单,端到端更强大。

MMAU——音频推理基准

MMAU(大规模多模态音频理解)是 2024~2025 的音频推理基准:

  • 1 万个音频-文本 QA 对,覆盖语音、音乐、环境声。
  • 涵盖分类、时间推理、因果推理、开放式 QA。
  • 专门测级联流水线系统性遗漏的东西。

开源 SOTA(AF3)0.72;闭源前沿约 0.78(Gemini 2.5 Pro、Claude Opus 4.7)。差距小于 VideoMME 的开源-闭源差距,说明音频-LLM 在成熟。

二、从零实现

code/main.py:

  • 用标准库实现 log-Mel 频谱图计算:加窗、朴素 DFT、Mel 滤波器组。
  • 音频 Q-former 骨架:给定编码器输出帧,算 Q、K、V、注意力,发 N 个 token。
  • 玩具任务上级联 vs 端到端的对比。

log-Mel 频谱图的伪代码

def log_mel_spectrogram(waveform, sr=16000, win_ms=25, hop_ms=10, n_mels=80): win = int(sr * win_ms / 1000) # 400 样本 hop = int(sr * hop_ms / 1000) # 160 样本 frames = frame(waveform, win, hop) # 加窗分帧 spectrum = fft(frames) # 每帧 FFT mag = abs(spectrum) # 幅度 mel = mel_filter_bank(mag, n_mels) # 扭曲到 Mel 频率 return log(1 + mel) # 对数压缩 → (T, 80)

音频 Q-former

def audio_qformer(encoder_frames, n_queries=64): # encoder_frames: (T, D), T 个时间帧 queries = learnable(n_queries, D) # 固定数量可学习 query Q = queries @ Wq K = encoder_frames @ Wk V = encoder_frames @ Wv attn = softmax(Q @ K.T / sqrt(D)) # (n_queries, T) audio_tokens = attn @ V # (n_queries, D) → 喂 LLM return audio_tokens

💡 为何端到端扩展更好:级联把声学信息在转写那一步就丢了——「情绪在声音里不在词里」。端到端让 LLM 直接看到声学 token,保留了情绪、说话人、环境、时序,所以能在级联失效的任务上推理。

级联 vs 端到端

def cascaded(audio): text = whisper.transcribe(audio) # 转写 — 丢声学 return llm.reason(text) # 只在文本上推理 def end_to_end(audio): mel = log_mel_spectrogram(audio) frames = whisper_encoder(mel) audio_tokens = audio_qformer(frames) # 保留声学 return llm.reason(audio_tokens + prompt) # 直接看声学 token

三、框架对比

  • Whisper(OpenAI):ASR 的事实标准,68 万小时弱监督,编码器-解码器,纯转写无推理。
  • SALMONN:Whisper + BEATs + Q-former + LLaMA,首个开源音频-LLM,MMAU 0.55。
  • Qwen-Audio:类似架构,更丰富数据,多轮对话,MMAU 0.60。
  • LTU:显式思维链推理数据,聚焦小而精。
  • Audio Flamingo 3(NVIDIA):Whisper+BEATs 混合 + 64 query Q-former + Qwen2 7B + 按需思维链,MMAU 0.72 开源 SOTA。

工程取舍:只需转写用级联(Whisper + LLM);需音乐/情绪/多说话人/复杂推理用 AF3/Qwen-Audio;要按需推理用 AF3 的思维链;闭源前沿用 Gemini 2.5 Pro/Claude Opus 4.7。

四、可复用产物

本节产出 outputs/skill-audio-llm-pipeline-picker.md。给定音频任务(转写、音乐标注、情绪推理、多人分离、环境分类),它在级联、端到端 AF3、混合间选择。

五、练习

  1. 频谱图维度:算 30 秒、16kHz、25ms 窗、10ms 步长、80 Mel bin 的 log-Mel 频谱图维度。48kHz 下如何变化?

  2. Whisper 弱项:为什么 Whisper 在音乐上表现差?BEATs 抓住了哪些 Whisper 没抓的音频特征?

  3. Q-former 容量:64 query vs 32 query 的音频 Q-former,什么任务复杂度下 64 才值?32 给什么省算力?

  4. 读 AF3:读 AF3 第 4 节关于按需思考,提出三个思维链帮助最大的音频任务。

  5. 分离流水线:用 AF3 输出实现一个最小分离流水线,如何标记说话人切换?

本节要点回顾

  1. 识别 ≠ 推理:Whisper 解决了转写,但情绪/乐器/时序/说话人需要音频理解。
  2. log-Mel 频谱图:加窗 FFT → 幅度 → Mel 滤波器组 → 对数压缩,得 (T, 80)。
  3. Whisper 编码器:12 层 ViT 风格,每帧一隐藏状态,语音主导对音乐/环境弱。
  4. BEATs:AudioSet 自监督,音乐与环境声更强;AF-Whisper 拼接两者。
  5. 音频 Q-former:固定可学习 query 交叉关注编码器帧,发音频 token 喂 LLM。
  6. 三阶段:对齐(对比+caption)→ 指令(端到端)→ 按需思维链。
  7. 级联失效:情绪在声音里、说话人需识别、时序定位文本丢失、深伪检测需声学。
  8. 端到端保声学:AF3/Qwen-Audio 原生处理音乐/环境/情绪。
  9. AF3 SOTA:Whisper+BEATs+64 query+Qwen2 7B+按需思维链,MMAU 0.72。
  10. MMAU:1 万 QA 对测分类/时间/因果/开放,开源 0.72 vs 闭源 0.78,差距小于视频。

下一节,我们将进入全模态模型——Thinker-Talker 架构把推理(Thinker,慢思考)与表达(Talker,实时流式输出)解耦,是 GPT-4o 式实时全模态对话的开源范式。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U