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

> Source: <https://dev.to/babycat/gpt-live-needs-an-interruption-ui-not-just-a-microphone-button-41b6>
> Published: 2026-07-15 07:16:50+00:00

OpenAI introduced [GPT-Live](https://openai.com/) 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";
```

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>
```

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](https://monkeycode-ai.net/) 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](https://github.com/chaitin/MonkeyCode) 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.
