Partials may be revised or wholly replaced and need not match the final
Aliases: hypothesis revision · unstable interims · prefix rewrite
What it is
A partial already on screen is not guaranteed to survive in the final. Later audio, language-model rescoring, even a second decode at the endpoint can rewrite the prefix; in the extreme the whole sentence is replaced. There is no contractual match between the words seen mid-turn and the words that commit.
Why it happens
Streaming decode does greedy or limited-beam search on a prefix. Later frames can invalidate the best path for earlier words: a homophone choice flips with context, an inserted filler is withdrawn, a name later in the sentence retcons a common noun. Some architectures freeze a prefix to cut jitter; others allow unbounded look-back. Less freezing means earlier first words and a higher chance the final contradicts them. Words the language model injected can still be vetoed by acoustics at the end. Partials are therefore mutable objects. If the UI writes every intermediate word into document history, the undo stack fills with jitter.
Studying it
Align the partial at each timestamp with the final; compute prefix stability, maximum look-back length, and the rate of whole-sentence replacement. Independent variables include beam width, prefix freezing, and domain. Have people dictate on a high-jitter system and measure whether they start changing what they say to chase the partial, or pause until it settles. Low final WER does not mean interims were trustworthy.
Where it stops holding
On very short commands, partials barely have time to be rewritten. An offline second pass (decode again on the full audio) deliberately lets the final differ from streaming partials: accuracy traded for delay. Inconsistency caused by the speaker changing their mind is not decoder look-back. Labelling every change a bug forces engineers to over-freeze and first-word latency rises.
Applying it
- Allow intermediate words to change, but do not write every flicker into an undoable document edit; commit once at the final or when the user stops.
- For critical slots such as names, wait for relative stability before executing; do not place an order on the first partial frame.
- If the final often replaces the whole sentence, tell people “recognition is still changing” rather than letting them think they misread.
Related
- Same group: C7.10.1 Partial results show not-yet-final text while the user is still speaking · C7.10.3 Showing partials live shortens perceived latency even if the final still waits · C7.10.4 Partials must not look like editable final text; style them as a distinct state
- Adjacent: C7.03 Types of Recognition Errors · C7.09 Endpoint Detection and End-of-Utterance
- Search:
hypothesis revision·prefix stability·streaming jitter