Violet
Learn

Voice UX that feels alive: endpointing, barge-in, and latency

Published 2026-07-04 · updated 2026-07-04

A voice interface feels alive or dead based on a few mechanics: how it decides you finished speaking (endpointing), whether you can interrupt it while it talks (barge-in), how quickly the first spoken words arrive, and whether it ever fakes a state. These matter more than voice quality, and each one is a design decision you can evaluate in any product.

Why some voice UIs feel dead

The failures are consistent across products. The assistant cuts you off mid-sentence because its silence threshold was too eager. It talks over you and cannot be stopped, so you sit through a paragraph you no longer want. It goes silent for seconds and then delivers a wall of speech. It animates a pulsing listening state while nothing is actually listening. None of these are voice-quality problems. All of them are turn-taking problems, and turn-taking is what makes conversation feel like conversation.

Endpointing: deciding when you finished

Endpointing is the system's guess about when your utterance ended. Hands-free systems mostly guess from silence: no speech for some threshold means you are done. The threshold is a trap in both directions. Too short and the system cuts off anyone who pauses to think, which trains people to speak in unnatural rushed bursts. Too long and every exchange gains dead air, which makes the product feel slow even when recognition is instant.

Violet's companion takes the third path. The mic button is hold-to-talk: pressing it starts a recognizer, releasing it ends the turn. Nobody gets cut off mid-thought, because the system never guesses where the thought ended. The tradeoff is stated plainly: this is a hands-on interaction, chosen for a device that is already in your hands.

Barge-in: the interruption contract

Barge-in means the user can interrupt the assistant while it is speaking, and the assistant yields immediately. It is the interruption contract of human conversation, and its absence is why talking assistants can feel like answering machines. The rule worth copying: any new user input, in any modality, silences the assistant now.

In Violet's companion this is implemented in both directions. Pressing the mic button cancels any spoken reply before listening starts. Typing does the same: the moment you start typing into the composer while Violet is speaking, the speech stops. Signing out also silences her. There is no state where she keeps talking over you.

One implementation detail worth knowing if you build this on the web: when speech synthesis is cancelled mid-utterance, Chrome fires the utterance's error event instead of its end event. If your code only resets its speaking flag on end, an interrupted reply leaves the UI convinced it is still speaking. Violet's client wires the same handler to both events.

Latency: time to first word

Users judge a voice reply by how quickly it starts, not how quickly it finishes. A reply whose first sentence begins in under a second feels attentive even if the full answer takes ten. The standard craft win is per-sentence synthesis: as reply text streams in, split it at sentence boundaries and hand the first sentence to the synthesizer while the rest is still arriving. The speech plays continuously while generation catches up behind it.

Honest note on where Violet stands: her web companion currently speaks a reply after it has finished streaming as text, in one utterance. The reply is on screen and readable while it streams, so the text path carries the early feedback, and the spoken path is a deliberate, simple layer on top. Per-sentence synthesis is the known next step of this craft, not something the shipped client already does. That is exactly the kind of limit an honest product states instead of implying.

Push-to-talk versus continuous listening

PropertyPush-to-talkContinuous with wake word
Who ends the turnThe user, by releasing the buttonThe system, by guessing from silence
Microphone exposureLive only while heldStandby detector always running
Cut-off riskNone; pauses are freeReal; thresholds cut off slow thinkers
False activationsNonePossible; TV and lookalike phrases trigger it
Hands and eyesRequires a handFree
Honest privacy storySimple to state and verifyRequires explaining standby, buffers, retention

In Violet's hold-to-talk flow, the interim transcript paints live into the composer as you speak, so you watch her hear you in real time. On release, the final transcript is sent through the same send path as typed text: voice is an input method, not a separate system with separate rules. If nothing was recognized, the composer is restored to exactly what you had typed before the hold. The keyboard can drive the same interaction for accessibility: holding Enter or Space on the mic button talks, releasing sends.

Spoken confirmations and consequence

When a voice command changes something, the confirmation should match the weight of the change. For undoable actions, act first and confirm briefly afterward: a short spoken line naming what happened, with an easy undo. Making a user verbally approve every reversible change turns conversation into form-filling. For consequential actions, the order reverses: nothing happens without explicit approval first, and the approval mechanism should live outside the model rather than inside its judgment. This split is a design law in Violet's architecture: her confirmation gate for consequential actions is enforced outside the model, and the product's standing rule is that nothing happens without your say.

Honest failure states

Voice runs on capabilities the platform may not grant, and a voice UI earns trust by how it behaves when they are missing. Violet's companion treats each failure as something to say plainly rather than mask:

Common mistakes that kill voice UIs

Questions

What is barge-in in a voice interface?

Barge-in is the ability to interrupt the assistant while it is speaking and have it yield immediately. Good implementations treat any new user input as an interruption: new speech, a mic press, or typing. Without barge-in, users must wait out every reply, which is the fastest way to make a voice UI feel dead.

What is endpointing and why do assistants cut people off?

Endpointing is the system's decision about when you finished speaking. Hands-free systems usually infer it from silence, and a threshold short enough to feel responsive is often short enough to cut off someone pausing to think. Push-to-talk avoids the guess entirely: the user ends the turn by releasing the button.

Does Violet speak her replies?

Only if you turn voice replies on; the toggle is off by default and stored per device. She speaks using the browser's own speech synthesis, stops the moment you type or press the mic, and where the browser has no synthesis the toggle stays hidden and replies remain text. Violet is pre-launch.

Related pages

Sources