Silence duration thresholds conflict with thinking pauses
Aliases: trailing silence · planning pause · hangover · hesitation
What it is
Most endpoint detectors treat trailing silence as evidence of completion: after speech, a run of non-speech longer than a threshold is declared “done.” People also stop while assembling the next clause—that is a planning pause or hesitation, not an utterance end. The same silence therefore has two readings, and a threshold can favour only one of them.
Why it happens
Energy-based or neural VAD yields frame-level speech versus non-speech; it does not know whether the speaker still intends to continue. Designers therefore integrate consecutive non-speech as a proxy: shorter than the threshold counts as a breath or stop-gap, longer counts as the end. Planning pauses, lexical search, and grouping gaps inside numbers and addresses overlap heavily with true final silence. A short threshold feels snappy and cuts mid-clause; a long one tolerates pauses and makes every genuine ending wait. Filled pauses (“um,” “那个”) can relabel silence as speech and delay the end instead. The conflict comes from approximating “do they still want to talk” with one scalar, not from a broken microphone.
Studying it
Collect annotated spontaneous commands: mid-utterance pauses, final pauses, digit strings, list reading. Run the same audio through several silence thresholds and plot premature-end rate against extra wait. Independent variables include whether the task requires on-the-spot planning, whether fillers are allowed, and language habits around long pauses. Dependent measures should not be word error rate alone: count cuts inside a clause, and count times the system had already committed when the user resumed. Read speech systematically suppresses planning pauses and should not set the threshold by itself.
Where it stops holding
For a small vocabulary of short commands, planning pauses are rare and a short threshold hurts little. The conflict is worst in long dictation, spoken addresses, and drug names. If call-time noise suppression also labels quiet speech as non-speech, the effective threshold shrinks without anyone changing the constant. In noise, VAD may treat the background as speech, so the silence integral never fills and no threshold will ever cut. Semantic completeness and falling pitch are a later decision layer; they do not erase the fact that the silence threshold is already racing the pause.
Applying it
- Split thresholds by task: short trailing silence for brief commands, longer for dictation and forms; do not use one global constant.
- Delay the end when the user is clearly still planning (just said “and then,” “就是”) rather than treating fillers as noise to be cut.
- Tune on the same batch of real dictation and report both premature ends and mean extra milliseconds, so the product picks a point on both curves.