Speech / Objectives
verifiedCTC
Speech recognition has an alignment problem: you have the audio and you have the transcript, but not which frames produced which letters, and hand-labelling that is hopeless. CTC removes the question. It adds a blank symbol meaning "nothing new here", then scores a transcript by summing over every frame-to-letter alignment that could have produced it. You never have to say where a letter starts.
Per-frame outputs over the alphabet plus a blank, trained by maximising the total probability of every alignment that collapses to the target — collapse being merge repeats, then drop blanks. Frames are conditionally independent given the audio, which is what makes the dynamic program cheap and also what makes CTC a poor language model: it cannot express that one output depends on the last. Restoring that dependency without giving up streaming is exactly what RNN-T adds.
p(y|x) = Σ sub a ∈ B super -1 (y) Π sub t p(a sub t | x), where B merges repeated labels and then removes blanks. The sum runs over a count of alignments exponential in T and is computed in O(T·|y|) by the same forward–backward recursion an HMM uses. The ordering inside B is load-bearing: merge-then-drop is why "hello" needs a blank between its two l's to survive the collapse.
blank-frames holds 50% of the budget; rest holds the remaining 50%.
Frames the alignment spends on the blank symbol against frames that emit a character, in frames. Drag the blank frames up to watch them take over: the transcript's characters are a fixed handful, and everything else is silence, breath, and the tail of a held vowel.
Reviewed by opendroid · 2026-08-18
- arXiv:1412.5567 — Deep Speech: Scaling up end-to-end speech recognition
- arXiv:1211.3711 — Sequence Transduction with Recurrent Neural Networks
Origin · not linkable
- Graves et al. 2006 — Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks · ICML 2006 · doi:10.1145/1143844.1143891