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 predictablyThe 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.
답글 남기기