The alignment problem
Speech recognition maps a sequence of audio frames to a sequence of characters, and the two sequences do not line up.
A second of audio is a hundred frames or so. A second of speech is perhaps three words. So the input is much longer than the output, and the ratio is not fixed: a drawn-out vowel occupies many frames, a clipped consonant occupies few.
Worse, the training data does not say which frames correspond to which output symbol. A transcript is a sentence paired with a recording, with no annotation of where each word begins.
Classical systems solved this by building the alignment explicitly, with hidden Markov models estimating frame-to-phoneme correspondences, and separate acoustic, pronunciation and language models composed together. It worked, and it required linguistic expertise, a pronunciation dictionary per language, and a great deal of engineering per component.
Everything modern is an attempt to train one model end to end without ever computing an explicit alignment. There are three ways to do that, they were invented in that order, and each has a distinct consequence for whether the system can run in real time.

