Timeout thresholds should be set by task type
Aliases: timeout by prompt class · graded no-speech wait · onset-based timeout
What it is
“Change it to tomorrow?” is a decision already made; onset takes a second or two. “Say the delivery address” needs recall, packing, sometimes a glance at a slip. Share a five-second timeout across both, and the first idles in the room while the second re-asks as the user draws breath. A task-dependent timeout ties no-speech wait to the dialogue move just issued: yes/no confirm, pick-one-of-three, open proper name, read digits — each with its own threshold. It does not decide whether the gap is thinking or a walk-away. It asks how long a still-present person who intends to answer needs before speech starts.
Why it happens
A timeout is a bet on how long a competent addressee takes to start voicing. The size of the bet tracks the question’s cognitive load. Binary confirmation retrieves a judgment already formed; an open slot requires formulation, memory search, sometimes a look at the world. One global no-speech clock assumes every yielded floor is the same width. Mismatch is felt on both sides: a light question with a long threshold sounds like dead air; a heavy question with a short one sounds like interruption.
“Task type” here is the move just spoken, not the product category. The same speaker should not share a clock between “keep playing?” and “what is the PIN.” Load also stretches with channel: eyes-free, driving, gloves that block the screen shift onset right for the same open slot. Write the table by move class, then add or subtract for situation. Do not hide a magic number under each skill name.
Studying it
Stack speech-onset latency (prompt end to user-speech start) by prompt class: yes/no, three-item closed, open person name, digit string, information that must be read from the environment. Set timeouts from a high percentile per class (eightieth, ninetieth) so most people who are still present start before a re-prompt. The independent variable is prompt class. Do not mix in whether the person left the room.
A cockpit or kitchen walkthrough shows how far the same class shifts under occupancy. A lab that only sits people down for “yes / no” yields a short confirmation distribution; that clock must not be reused on an address slot.
Where it stops holding
The same prompt class is not the same distribution at a desk and behind a wheel. Users who hear slowly, articulate slowly, or need extra time after synthetic speech need wider class thresholds — not a “special mode” that still traps them on the default path. While the system is reading a statement that is not a question, an answer-timeout should not run. First commands after wake have a different shape; do not paste the slot-chase table onto the opening.
Applying it
- Tag every waiting prompt with a class: confirm, small closed set, open, must-look-up. Ship a table — confirm around four seconds, three-choice around six, open around twelve, look-up around fifteen — then edit from measured percentiles.
- Forbid each skill from hard-coding a global five seconds. Timeout belongs to prompt class, not to skill name.
- On the dashboard, per class, watch “system started a re-prompt while the user had already onset.” Lengthen only the class that collides.
- Run the same people through two classes: yes/no and an address. If the median onsets barely differ, classification has not entered the product; it only entered a document.