Standalone · Speech

Conformer against Whisper, and why streaming decides it

Whisper is the accurate one and Conformer-Transducer is the one you can stream. That is not a quality gap, it is an architectural consequence, and it is visible the moment you try to make Whisper produce a word before the speaker has finished.

I reach for Whisper by default, and every time I have had to serve speech with a latency budget I have ended up somewhere else. It took me longer than it should have to see that this is not a tuning problem. The two architectures answer different questions, and the question they answer is baked into their shape.

What each one is

Whisper is an encoder-decoder. A mel spectrogram goes in, the encoder processes it, and an autoregressive decoder attends over the encoder output to produce text. It was trained on an enormous, weakly supervised, multilingual corpus, which is why it is so robust to accent, noise and domain, and why it remains the sensible default for batch work.

Conformer interleaves convolution with self-attention: convolution captures local acoustic structure, attention carries the long range. Paired with a transducer decoder it becomes Conformer-Transducer, and FastConformer adds aggressive downsampling on top to cut the cost.

The thing that actually separates them

Whisper processes fixed thirty-second windows. That is not an implementation choice you can flag your way out of, it is what the model was trained to consume.

The consequence is brutal for streaming. To emit a partial transcript every second you pad the audio out to thirty seconds and run the encoder again. A minute of speech that costs one encoder pass offline costs on the order of sixty passes when streamed at one-second granularity. You are not paying for more audio, you are paying to look at the same audio repeatedly.

A transducer has no such window. It consumes frames as they arrive and emits tokens when it is ready, so partial results are a property of the architecture rather than a trick played on top of it. That is the whole difference, and it is why the streaming benchmarks are populated by transducer models rather than by Whisper variants.

How I would choose

What surprised me most reading the current benchmarks is where the good streaming numbers now live. The strongest real-time English results are coming from compact models running quantised on CPU, faster than real time, with sub-second algorithmic latency. For a class of product that removes the GPU from the speech path entirely, which changes the deployment argument more than any accuracy delta would.

Whisper's thirty-second window is not a limitation to engineer around. It is the model telling you it was built for a different job.

Sources