TAI BUI
Back to curriculum
BuildPython

Audio-Language Models — Qwen2.5-Omni, Audio Flamingo, GPT-4o Audio

2026 audio-language models reason across speech, environmental sound, and music. Qwen2.5-Omni-7B matches GPT-4o Audio on MMAU-Pro. Audio Flamingo Next beats Gemini 2.5 Pro on LongAudioBench. The gap between open and closed is basically gone, except on multi-audio tasks, where everyone is still near random.

TIME: ~45 minutesPREREQUISITES: Phase 6 · 04 (ASR), Phase 12 · 03 (Vision-Language Models), Phase 7 · 10 (Audio Transformers)

Learning Objectives

  • Explain what makes a model an audio-language model (LALM) instead of plain ASR, and name the three components every 2026 LALM shares: audio encoder, projector, LLM decoder.
  • Describe the three-stage LALM training recipe, from projector-only pretraining through instruction fine-tuning to the optional voice-in/voice-out stage.
  • Read the MMAU-Pro benchmark table and explain why the multi-audio subset score sits near random chance for every 2026 model listed, from Qwen2.5-Omni-7B to GPT-4o Audio.
  • Query a multimodal LLM like Qwen2.5-Omni with an audio input in code, and implement the minimal projector module that bridges audio features into an LLM's embedding space.
  • Match an audio-understanding task to the right 2026 LALM, and name the pitfalls (multi-audio over-trust, long-audio speaker-attribution decay, silence hallucination, benchmark cherry-picking) to guard against before shipping one.

The Problem

You have 5 seconds of audio: a dog barks, someone yells "stop!", then silence. A handful of very different questions apply to that same clip:

  • Transcription. "What was said?" That's plain ASR.
  • Semantic reasoning. "Is the person in danger?" Answering that takes joint understanding of the bark, the yell, and the silence together.
  • Music reasoning. "What instruments play the melody?"
  • Long-audio retrieval. "Where in this 90-minute lecture did the instructor explain gradient descent?"

A single model that answers all of these from one prompt is an audio-language model (LALM, or ALM). That's what separates it from pure ASR: LALMs produce free-form natural-language answers, not just transcripts.

Warm-up0/3
1. In a vision-language model, a small network sits between the image encoder and the LLM to translate the encoder's output into something the LLM can read. What's that connecting piece usually called?Warm-up
A pipeline of five boxes: image, image encoder, an unknown small network marked with a question mark, LLM, and text answer.
Schematic of the setup in the question.
2. A standard automatic speech recognition (ASR) system is given a recording of someone talking. What does it return?Warm-up
A speech recording drawn as a wave goes into a box labelled ASR system, which returns an output marked with a question mark.
Schematic. The waveform is drawn for illustration, not a real recording.
3. A team freezes the weights of a large pretrained network and trains only a small new layer attached to it. What is the main reason for doing this?Warm-up
A tall box of four layers labelled large pretrained network with frozen weights, connected by an arrow to a small box labelled new layer, trained.
Schematic of the situation in the question; layer count and sizes are for illustration.
Check: The Problem0/1
1. What distinguishes an audio-language model (LALM) from pure ASR?Define
A 5-second clip of a dog bark, someone yelling stop, then silence feeds two boxes, pure ASR and audio-language model, each with an output marked with a question mark.
The clip is the one in the lesson's Problem section, drawn as a schematic waveform.

The Concept

Audio-language model: audio encoder + projector + LLM decoder

The three-component template

Every 2026 LALM has the same skeleton:

  1. Audio encoder. Whisper encoder · BEATs · CLAP · WavLM · or a custom encoder per model. (BEATs, CLAP, and WavLM are other self-supervised audio encoders alongside Whisper's; which one a given LALM uses is an implementation detail, not something worth memorizing.)
  2. Projector. Linear or MLP bridging audio-encoder features into the LLM's token embedding space.
  3. LLM. Llama / Qwen / Gemma-based decoder. Takes interleaved text and audio tokens, generates text.

Training runs in stages:

  • Stage 1. Freeze the encoder and LLM, and train only the projector, on ASR and captioning data.
  • Stage 2. Full / LoRA fine-tune on instruction-following audio tasks (QA, reasoning, music understanding).
  • Stage 3 (optional). Voice-in / voice-out adds a speech decoder. Qwen2.5-Omni and AF3-Chat do this.

The 2026 model map

ModelBackboneAudio encoderOutput modalityAccess
Qwen2.5-Omni-7BQwen2.5-7BCustom + Whispertext + speechApache-2.0
Qwen3-OmniQwen3Customtext + speechApache-2.0
Audio Flamingo 3Qwen2AF-CLAPtextNVIDIA non-commercial
Audio Flamingo NextQwen2AF-CLAP v2textNVIDIA non-commercial
SALMONNVicunaWhisper + BEATstextApache-2.0
LTU / LTU-ASLlamaCAV-MAEtextApache-2.0
GAMALlamaAST + Q-FormertextApache-2.0
Gemini 2.5 Flash/Pro (closed)Geminiproprietarytext + speechAPI
GPT-4o Audio (closed)GPT-4oproprietarytext + speechAPI

Benchmark reality check (2026)

MMAU-Pro is 1800 QA pairs spanning speech, sound, music, and mixed audio, with a multi-audio subset included.

ModelOverallSpeechSoundMusicMulti-audio
Gemini 2.5 Pro~60%73.4%51.9%64.9%~22%
Gemini 2.5 Flash~57%73.4%50.5%64.9%21.2%
GPT-4o Audio52.5%———26.5%
Qwen2.5-Omni-7B52.2%57.4%47.6%61.5%~20%
Audio Flamingo 3~54%————
Audio Flamingo NextSOTA on LongAudioBench————

The multi-audio column is damning for everyone. Random chance on a four-option multiple-choice question is 25%, and most models land right around there. LALMs still can't reliably compare two clips against each other.

Where LALMs are useful in 2026

  • Compliance audit of call-center recordings. "Did the agent mention the required disclosure?"
  • Accessibility. Describe sound events to deaf users (not just transcription).
  • Content moderation. Detect violent language, a threatening tone, and background context, together.
  • Podcast / meeting chaptering. Semantic summary, not just speaker turns.
  • Music catalog analysis. "Find all tracks with a B-section key change."

Where they are NOT (yet) useful

  • Fine-grained music theory (below chord-level).
  • Speaker-attributed reasoning over long conversations (degrades past 10 minutes).
  • Multi-audio comparison (22-26% is barely above random).
  • Real-time streaming reasoning (most are offline batch inference).
Check: The Concept0/14
1. Every 2026 LALM shares the same three-part skeleton. What are the three components?Define
An audio input box leads through three unknown components marked with question marks to a text output box.
Schematic of the setup in the question.
2. What is the projector in an audio-language model?Define
Six lines of Python defining a class named AudioProjector with a down linear layer, a GELU activation and an up linear layer.
Lines copied from the lesson's Build It, Step 2.
3. What is MMAU?Define
A card for MMAU whose size, audio kinds and what it measures are question marks.
The card fields are the unknowns.
4. What is MMAU-Pro?Define
One line of Python that loads MMAU-Pro, and a card for MMAU-Pro whose number of QA pairs, audio kinds and role are question marks.
Line copied from the lesson's Step 3. The card fields are the unknowns.
5. What is LongAudioBench?Define
A one-row table showing Audio Flamingo Next with the result state of the art on LongAudioBench, and a card for LongAudioBench with what it holds and what it measures as question marks.
Row copied from the lesson's benchmark table. The card fields are the unknowns.
6. What does a voice-in / voice-out model do?Define
A speech waveform labelled speech in goes to a model box marked with a question mark, which leads to a speech waveform labelled speech out.
Schematic. The waveforms are drawn for illustration.
7. In the model-map table, which models output both text and speech, as opposed to text only?Define
A four-row table of Qwen2.5-Omni-7B, Audio Flamingo 3, SALMONN and GPT-4o Audio with backbone and access filled in and the output modality column shown as question marks.
Rows copied from the lesson's model map, with the output column hidden.
8. Which task does the lesson explicitly list as something 2026 LALMs are NOT yet good at?Define
Two panels of empty task slots: five under Where LALMs are useful in 2026 and four under Where they are NOT (yet) useful, the second panel dashed and marked with a question mark.
Structure of the lesson's lists with the task names left out.
9. In the three-stage training recipe, what happens during Stage 1?Explain
Three stage boxes with Stage 1 highlighted, above three component boxes, audio encoder, projector and LLM decoder, each with a question mark for its training status.
Schematic of the setup in the question.
10. The LLM decoder takes interleaved text and audio tokens. What must the projector do so that audio features can sit among the text tokens?Explain
Five text tokens, What sounds do you hear, above four audio feature vectors a1 to a4 that pass through a projector box and come out as an unknown marked with a question mark.
Schematic. The text tokens are typed for illustration.
11. What does the lesson say about model performance on the MMAU-Pro multi-audio subset?Explain
A four-row table of Gemini 2.5 Pro, Gemini 2.5 Flash, GPT-4o Audio and Qwen2.5-Omni-7B with their overall MMAU-Pro scores and the multi-audio subset column shown as question marks.
Overall scores from the lesson's benchmark table; the multi-audio column is the unknown.
12. Gemini 2.5 Flash scores 21.2% on the MMAU-Pro multi-audio subset, which uses four-option questions. How does that compare with random guessing?Apply
A bar for Gemini 2.5 Flash at 21.2 percent on a 0 to 100 percent axis, and a row for random guessing with a question mark in place of its value.
Score from the lesson's benchmark table.
13. You are building a voice-in/voice-out agent for a commercial product and want open weights. Which model fits the lesson's model map?Design
A card for a voice agent: voice in, voice out, commercial product, open weights. A question asks which model fits the model map.
Requirements restated from the question.
14. You have a pretrained audio encoder and a frozen small LLM, and little compute. You want a first audio-captioning baseline. What should you train?Design
Audio goes into a pretrained audio encoder, then a projector, then a frozen small LLM, which writes a caption.
Schematic of the situation in the question.

Build It

Step 1: query Qwen2.5-Omni

Set the internals aside for a moment and look at the interaction from the outside: an LALM call takes audio in and hands back a plain-English answer, the same shape as any chat completion you've already sent.

python
from transformers import AutoModelForCausalLM, AutoProcessor
 
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-Omni-7B", torch_dtype="auto")
 
audio, sr = load_wav("clip.wav", sr=16000)
messages = [{
    "role": "user",
    "content": [
        {"type": "audio", "audio": audio},
        {"type": "text", "text": "What sounds do you hear, and what's happening?"},
    ],
}]
inputs = processor.apply_chat_template(messages, tokenize=True, return_tensors="pt")
output = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(output[0], skip_special_tokens=True))

Step 2: the projector pattern

The projector is the one piece of this architecture you actually write and train yourself. The encoder and the LLM both arrive pretrained; only this part is yours to build.

python
import torch.nn as nn
 
class AudioProjector(nn.Module):
    def __init__(self, audio_dim=1280, llm_dim=4096):
        super().__init__()
        self.down = nn.Linear(audio_dim, llm_dim)
        self.act = nn.GELU()
        self.up = nn.Linear(llm_dim, llm_dim)
 
    def forward(self, audio_features):
        return self.up(self.act(self.down(audio_features)))

That's the whole projector: usually 1-3 linear layers. Training it on ASR pairs (audio → transcript) is the Stage-1 pretext task.

Step 3: benchmarking MMAU / LongAudioBench

None of the benchmark numbers earlier in this lesson mean anything until you can reproduce them yourself, so here's the loop that scores a model against MMAU-Pro directly.

python
from datasets import load_dataset
mmau = load_dataset("MMAU/MMAU-Pro")
 
correct = 0
for item in mmau["test"]:
    answer = call_model(item["audio"], item["question"], item["choices"])
    if answer == item["correct_choice"]:
        correct += 1
print(f"Accuracy: {correct / len(mmau['test']):.3f}")

Report per category (speech, sound, music, multi-audio) separately: aggregate numbers hide where the model fails.

Check: Build It0/7
1. Why can Stage 1 get away with training only the projector?Explain
Audio encoder frozen, projector trained and LLM decoder frozen, with a question about why only the projector is trained.
Stage 1 as stated in the question.
2. Why does the Step 3 benchmarking code report accuracy per category (speech, sound, music, multi-audio) rather than just an aggregate number?Explain
Six lines of the Step 3 scoring loop ending in a print of an accuracy value, with four category chips below: speech, sound, music and multi-audio.
Code copied from the lesson's Step 3.
3. In the AudioProjector code from Build It, what does forward do to its input, in order?Apply
The AudioProjector class with a down linear layer, a GELU activation and an up linear layer, and a forward method whose return value is a question mark.
Code copied from the lesson's Step 2 with the return expression hidden.
4. An AudioProjector is created with its default arguments and receives audio features whose last dimension is 1280. What is the last dimension of the output?Apply
The AudioProjector class with its default sizes, followed by lines creating the projector and calling it on features whose last dimension is 1280, with the output's last dimension shown as a question mark.
Class copied from the lesson's Step 2; the last two lines are typed to restate the question.
5. In the Step 1 code for querying Qwen2.5-Omni, how is the audio provided to the model?Apply
Six lines of Python for querying Qwen2.5-Omni: loading the processor and a wav file, two lines shown as question marks, then model.generate and a decode and print.
Lines copied from the lesson's Step 1, with the messages and inputs lines hidden.
6. Suppose the Step 3 loop runs over 1800 test items and call_model matches the correct choice on 900 of them. What does it print?Apply
The Step 3 scoring loop code, a note that the test set has 1800 items and 900 are correct, and the printed line shown as a question mark.
Code from the lesson's Step 3. The two counts are the question's.
7. Team A reports only an overall MMAU-Pro score for a model. Team B reports speech, sound, music, and multi-audio separately. Your product compares two clips. Whose report better predicts how it will work?Analyze
Team A's report has one overall value shown as a question mark. Team B's report has speech, sound, music and multi-audio values, each a question mark. A separate box says your product compares two clips.
Schematic of the situation in the question. The values are the unknowns.

Use It

Picking a model here is mostly a lookup, not a debate: match the task on the left to the pick on the right.

Task2026 pick
Free-form audio QA (open)Qwen2.5-Omni-7B
Best open on long audioAudio Flamingo Next
Best closedGemini 2.5 Pro
Voice-in / voice-out agentQwen2.5-Omni or GPT-4o Audio
Music reasoningAudio Flamingo 3 or 2 (music-specialized AF-CLAP)
Call-center auditGemini 2.5 Pro via API, with RAG over your policy docs
Check: Use It0/3
1. Per the Use It table, what's the pick for the best open model on long audio versus the best closed model overall?Apply
A two-row table from the Use It section with the tasks Best open on long audio and Best closed, and each 2026 pick shown as a question mark.
Task names copied from the lesson's Use It table; the picks are the unknowns.
2. Per the Use It table, what's recommended for a voice-in/voice-out agent versus music reasoning?Apply
A two-row table from the Use It section with the tasks Voice-in / voice-out agent and Music reasoning, and each 2026 pick shown as a question mark.
Task names copied from the lesson's Use It table; the picks are the unknowns.
3. You must audit 60-minute call-center recordings for whether the agent read a required disclosure, using a commercial setup. Which design fits the lesson's advice?Design
A card for a call-center audit: input is 60-minute call recordings, the check is whether the agent read the required disclosure, and the setup is commercial. A question asks which design fits.
Requirements restated from the question.

Pitfalls

  • Over-trust on multi-audio. If your task needs "which clip has X," random-chance-level performance is real.
  • Long-audio degradation. Past 10 minutes, most models' speaker attribution breaks. Diarize first (Lesson 6), then summarize.
  • Hallucinations on silence. Same Whisper-style issue inherited by LALMs that use Whisper encoder. VAD-gate.
  • Benchmark cherry-picking. Vendor blog posts highlight best-case categories. Run MMAU-Pro multi-audio subset yourself.
Check: Pitfalls0/5
1. The Pitfalls section lists 'over-trust on multi-audio' and 'hallucinations on silence' as separate risks. What does each involve?Explain
Top: three audio clips and the question which clip has X, leading to an unknown answer marked with a question mark. Bottom: a flat line of dead silence leading to an unknown model output marked with a question mark.
Schematic of the two pitfalls named in the question.
2. A 40-minute meeting recording goes straight into an LALM, and the summary attributes statements to the wrong speakers. Which step did the pipeline most likely skip?Analyze
A 40-minute meeting recording leads through an unknown step marked with a question mark to an LALM and then to a summary whose statements are credited to the wrong speakers.
Schematic of the pipeline in the question.
3. A vendor blog post reports strong results for an LALM you plan to ship. What guards against cherry-picked numbers?Analyze
A vendor blog post that reports strong results leads through an unknown step marked with a question mark to a box labelled ship it.
Schematic of the situation in the question.
4. A pipeline asks an LALM which of three recordings contains an alarm sound. It passed a demo on single-clip questions, but production answers look close to random. What is the most likely cause?Analyze
Top: one audio clip goes into an LALM and passes the demo. Bottom: three recordings go into an LALM with the question of which has the alarm sound, and the answers look random.
Schematic of the pipeline in the question. Waveforms are drawn for illustration.
5. An LALM built on a Whisper-style encoder invents sentences during stretches of dead silence. Which fix does the lesson point to?Analyze
An audio recording with speech, a long flat stretch of dead silence, and more speech goes into an LALM, which writes text for the silent stretch.
Schematic. The waveform is drawn for illustration.

Ship It

Save as outputs/skill-alm-picker.md. Pick the LALM, benchmark subset, and output modality (text vs. speech) for a given audio-understanding task.

Author's Note

The number I keep coming back to in this lesson is the multi-audio column, not the overall score. Every vendor blog post leads with an aggregate percentage that looks respectable, and every one of them buries the fact that comparing two clips is still close to a coin flip. I've watched a team build a pipeline that assumed an LALM could tell them which of three recordings had the alarm sound, ship it, then spend a week debugging what turned out to be a benchmark gap the model never actually closed. Read the per-category breakdown before you trust the headline number. It's the same discipline as checking a classifier's confusion matrix instead of stopping at accuracy.

Exercises

  1. Easy. Run code/main.py to see a toy projector pattern and a fake LALM routing (audio-embedding, text-tokens) → output tokens.
  2. Medium. Score Qwen2.5-Omni-7B on 100 MMAU-Pro speech items. Compare to the paper's reported number.
  3. Hard. Build a minimal audio-captioning baseline: a BEATs encoder, a 2-layer projector, and a frozen Llama-3.2-1B. Fine-tune only the projector on AudioCaps, then compare it to SALMONN on Clotho-AQA.

Key Terms

TermWhat people sayWhat it actually means
LALMAudio ChatGPTAudio encoder + projector + LLM decoder.
ProjectorAdapterSmall MLP mapping audio features into LLM embedding space.
MMAUThe benchmark10k audio-QA pairs across speech, sound, music.
MMAU-ProHarder MMAU1800 multi-audio / reasoning-heavy questions.
LongAudioBenchLong-form evalMulti-minute clips with semantic queries.
Voice-in / voice-outSpeech-nativeModel ingests speech and emits speech without text detour.

Further Reading

Code

Ships With