Streaming versus batch is the core split. A streaming recognizer is built to update a hypothesis on every chunk of audio, which is how captions stay near live. A batch recognizer, including many Whisper-style pipelines, wants a complete-enough clip before it commits. Products can fake streaming by re-running a batch model on a growing buffer, which gives you partials without a native streaming decoder. Either way, the user-facing idea is the same: you see words before the session ends.
Partials are unstable by design. That flicker is useful — you catch a wrong name mid-sentence — and distracting if the HUD jumps too often. Latency of the first partial is a different number from latency of the finalized insert. Voice activity detection still matters: if the system does not know you started speaking, there is nothing to show. For dictation, live partials are a confidence display more than a legal transcript; the injected text should be the cleaned, final pass.