← Back to the overview: how a song becomes lyrics

Deep dive · Step 2 of the pipeline

Inside the listening machine

The overview showed a speech model writing down our song's words — mostly right, sometimes wrong. This page opens that machine up: what it hears, how it decides each word, how confident it really is — and, since two very different listeners live on this laptop, we put Whisper and Qwen3-ASR head-to-head on the same song. Then: what actually makes transcription better.

◉ Still real. Every transcript, confidence number and mistake below is genuine output from models running on this laptop, listening to the demo song's separated vocal track. The two case studies were not chosen to flatter the machines.

A

What the listener actually hears

The clean vocal track from Step 1 doesn't enter the model as sound. It's converted into a mel spectrogram — a cousin of the picture you learned to read in the Demucs deep-dive, but rebuilt to match human hearing: 128 frequency bands spaced the way our ears space them, snapshotted 100 times per second.

This is the entire input. Every word the model writes, it writes by staring at this ribbon of teal:

128-band mel spectrogram of the vocal chorus ↑ 128 mel bands time → (first chorus · 100 frames/sec)

👂 the wavy stacks are the voice's harmonics · the gaps are breaths between phrases

B

How it writes: one word at a time, with doubt

The model doesn't hear a line and translate it. It plays a guessing game, thousands of times: “given everything I've heard, and the words I've written so far — what's the most likely next word?” That means there's a small language model inside every speech model, and it cuts both ways: it fills gaps a human would fill (helpful), and it can write something fluent that was never sung (we'll catch it red-handed in section C).

Crucially, each guess comes with a confidence — the model's own probability that the word is right. We usually throw that number away. Below, we kept it: every word is shaded by how sure Whisper actually was while transcribing our song. Press play; click any word for its exact number.

unsure

certain

Shading = Whisper's own confidence in each word. Click a word for the exact figure.

Doubt that works: on the misheard line “Running down the line”, the model's confidence sagged — “Running” scored just 46%, “line” 67%. The uncertainty flagged its own error.
Doubt that fails: “Coffee and a paper cut” — wrong, yet scored 89–100% throughout. Fluent nonsense can feel certain. This is why confidence alone can't replace the referee in Step 3.

🎚 a real Whisper large-v3 pass with word timing + confidence enabled · 13 s for the whole song

C

Two listeners, one song

Speech models are not interchangeable. This laptop has two quite different ones: Whisper (OpenAI), a transcription specialist trained on 680,000 hours of audio, and Qwen3-ASR (Alibaba), a newer 1.7-billion-parameter model with a full LLM brain inside — and a published claim of strong song-lyrics accuracy. We gave both the identical vocal track.

Whisper large-v3

OpenAI · transcription specialist
7 s for the whole song 🎯 12.5% of words wrong on this song 💪 rock-solid on verses; misses “light”

Qwen3-ASR 1.7B

Alibaba · LLM with ears
28 s for the whole song — 4× slower 🎯 11.8% of words wrong on this song 💪 hears “light” correctly; invents words at the fade-out
We're chasing the morning, running down the light
Whisperrunning down the line
Qwen3-ASRrunning down the light ✓
Coffee in a paper cup, the radio is on
WhisperCoffee and a paper cut
Qwen3-ASRCoffee and a paper cut
(the song ends — nothing more is sung)
Whisper— stops correctly
Qwen3-ASROoh, we're chasing the morning. Okay.

🎤 that trailing “Okay.” was never sung — the LLM inside wanted the conversation to end politely. Fluent invention is the price of a fluent brain.

One song is an anecdote. Twelve are evidence. On this single track Qwen3-ASR nudged ahead (11.8% vs 12.5%). But across the full benchmark — 12 real songs in English, French, German and Spanish — Whisper won on 11 of 12 songs, averaging 22.1% error against Qwen's 27.4%, while running 4× faster. Qwen's published song-lyrics score (14.6% on English) simply didn't transfer to this material.

The business lesson: never buy a model off its leaderboard number. Benchmark it on your catalogue — this entire site exists because we did.
D

The improvement ladder

“How do we make the lyrics better?” is really a ladder, and its rungs are ordered by cost and reliability — every number below was measured on this benchmark. The striking fact: the error rate fell from 50% to 16% without changing a single weight in any model.

Fix the settings

One decode flag (don't condition on previous text) stops repetition death-spirals on music. Free, instant.

50.2% → 22.1%one boolean

Clean the input

Transcribe the separated voice, not the full mix (Step 1's whole job). Helps every model: Whisper 24.3→22.1, Qwen 30.0→27.4.

−2.2 ptsboth models

Prompt it — carefully

Qwen accepts context hints. A register nudge (“song lyrics”) helped some songs but hurt the 12-song average (27.4→29.3); a rich hint got parroted back as a fake lyric line on our demo (11.8→19.4). Cheap, but measure everything.

±unreliabletest first

Ensemble + referee

Three passes, one LLM referee (Step 3). The biggest dependable lever in this project: benchmark 22.1→15.9; our demo song 12.5→5.6.

−6.2 ptsbest lever

Fine-tune the model

The last rung, not the first — see below.

?read on ↓
E

So… do we fine-tune?

What it means: fine-tuning resumes the model's original training loop — play audio, grade the guess against a known answer, nudge millions of weights — but on your material: sung vocals paired with verified lyrics. Both Whisper and Qwen3-ASR are open-weights, so this is genuinely possible, even on this laptop for smaller variants (LoRA-style updates touch only a sliver of the weights).

What it demands: the answer keys. Hundreds of hours of songs with accurate, rights-cleared lyrics, time-aligned — the scarcest asset in this field, and the real moat of commercial providers. Plus GPU time, and the discipline to re-benchmark after every run.

What it risks: a model tuned on one catalogue drifts — it gets better at your genre and quietly worse at everything else, and you now own a custom model to maintain, re-validate and re-tune every time the base model improves.

When it's the right call: a fixed, recurring domain — one label's catalogue, one language tradition, recurring artist vocabulary — where the ladder's cheaper rungs have genuinely been exhausted and the remaining errors are systematic (the model consistently mishears a dialect or genre convention rather than random words).

The honest summary for a decision-maker: everything this site achieved — 50% error down to 16%, matching commercial systems — came from rungs 1–4: settings, cleaner input, and ensembling, all without training anything. Fine-tuning is the most expensive rung with the least predictable payoff. Climb it last, and only with a benchmark like this one already in place to prove it paid.

The takeaway

A speech model is a listener with a writer's brain: it hears a mel picture, writes one word at a time, and always sounds fluent — even when it's wrong. Different models mishear differently, which is precisely why the pipeline's referee works, and why measurement beats model-of-the-week every time.