DEV Community

babycat
babycat

Posted on

GPT-Live Needs an Interruption UI, Not Just a Microphone Button

OpenAI introduced GPT-Live on July 8, 2026 as a new generation of voice models for more natural human-AI interaction. Real-time voice demos make latency visible. Production interfaces also need to make authority visible: who is speaking, who is listening, and what happens after an interruption?

A microphone button cannot represent the full state machine.

type VoiceState =
  | "idle"
  | "requesting-permission"
  | "listening"
  | "user-speaking"
  | "model-thinking"
  | "model-speaking"
  | "interrupted"
  | "recovering"
  | "permission-denied"
  | "offline";
Enter fullscreen mode Exit fullscreen mode

Render two channels

Use a visual status for rapid changes and a restrained live region for meaningful transitions:

<p id="voice-status">Listening</p>
<div aria-live="polite" aria-atomic="true" id="voice-announcement">
  Voice response stopped. Your transcript is still available.
</div>
<button type="button">Stop listening</button>
<button type="button">Review transcript</button>
Enter fullscreen mode Exit fullscreen mode

Do not announce every partial token. That turns screen-reader output into noise. Announce state changes, errors, and completed user-relevant actions.

An interruption test matrix should include:

Scenario Required recovery
user speaks over model stop audio, preserve both transcript boundaries
microphone permission disappears show text path and settings guidance
network changes mid-response mark partial response, offer retry
page goes to background avoid silently resuming capture
user presses Escape stop the current action predictably

The transcript also needs speaker labels that do not rely on color, keyboard access, and a way to delete sensitive turns.

I use MonkeyCode for coding tasks rather than claiming it has the voice interface above. What I recommend is its task-oriented workflow as a useful contrast: long-running work should preserve state and evidence outside a transient conversation. The hosted SaaS is easy to inspect without a local install, while the open-source project offers a self-hosting option. This paragraph is context, not a claim of a GPT-Live integration.

Disclosure: I'm a MonkeyCode user sharing my own experience, not affiliated with the project.

Voice can feel natural while recovery remains confusing. Treat interruption as a first-class, testable state and the interface will be more usable for everyone—not only users of assistive technology.

Top comments (0)