Confirmation can target the recognized string or the action about to run
Aliases: confirmation object · ASR confirmation · action preview
What it is
A confirm can be pinned at different points on the pipeline: which words were heard, or which act is about to run. “Did you say Bohemian Rhapsody?” checks the transcript. “Playing Queen's Bohemian Rhapsody on the living-room speaker” checks the action. The two objects can come apart: the words were right but the intent was lyrics, not playback; the words were wrong but the act type was right (it is going to play something). Explicit versus implicit only decides how the confirm is spoken, not which layer it pins.
Why it happens
The voice chain is audio → transcript → intent and slots → action. Each hop can fail on its own. Pinning at the transcript catches substitutions, truncations, homophones; it will not catch “play” understood as “save to favorites.” Pinning at the action catches which device, whom, how much; if the transcript already swapped the song title, the action preview will speak the wrong song as if it were true, and a nod authorizes the wrong execution.
Mixing the two layers without saying so leaves people unsure which contract they are signing. Asking “this track?” and then setting an alarm means they signed the words and you did something else. The information structure of the confirm has to make the object hearable: echoing a string asks “did I hear right”; previewing a result asks “may I do this.”
Studying it
Take the same pool of faulty commands, split the faults (transcript vs intent), and cross them with two confirm objects (echo the string vs preview the action). Dependents: fraction of each fault class caught, fraction of correct commands blocked extra, and whether people can afterwards say whether they just confirmed “words” or “the deed.”
A log cut is whether the confirm utterance contains original tokens or execution parameters (device, amount, recipient). Labs should not use word error alone: samples where every word is right and the skill is wrong are exactly what action-level confirms are for.
Where it stops holding
On a single closed slot the layers nearly coincide (“ten-minute timer” — the words are the act). Regulatory scripts that ask “please confirm I heard you correctly” pin the object at the transcript; the action layer still has to be done separately. Implicit confirms often smuggle the object into the next action (“okay, here's the route to the airport”), i.e. they default to the execution layer. When the transcript is already visible on a screen, orally confirming the words is redundant; confirm the action.
Applying it
- For every skill that writes the world, write one sentence: once the confirm passes, what actually runs. For irreversible acts or wrong-target cost, the confirm previews the action (target, amount, device), rather than echoing the original utterance.
- Use transcript-level confirms while still filling an open vocabulary and not yet acting; use action-level confirms at the moment of doing. If both layers are needed, ask them apart — do not co-sign in one sentence.
- Do not ask “did you say X,” then execute Y parsed from X, unless the confirm already spoke Y.
- How to check: hold out items that are transcript-wrong / intent-right, and transcript-right / intent-wrong. A string echo should miss the latter; an action preview should miss the former. A miss that still executes is a wrong pin.