H-6763: Migrate voice interviews to GPT-Realtime-2 - #9399
Draft
kostandinang wants to merge 3 commits into
Draft
Conversation
Replace the transcription-only and separate Speech API flow with a server-owned gpt-realtime-2 WebRTC session for duplex media, semantic turn detection, canonical speech, and automatic interruption. Keep Brunch authoritative through a narrow Realtime bridge that validates and serializes tool calls, preserves pending ask correlation, and rejects stale or duplicate work. Remove the obsolete MP3 playback queue and speech endpoint, expose orthogonal voice state in the UI, and update the voice architecture documentation. Amp-Thread-ID: https://ampcode.com/threads/T-01a04727-ad92-741e-81b2-4fd81eb53250 Co-authored-by: Kostandin Angjellari <ka@hash.ai>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
|
|
Author
This was referenced Aug 28, 2026
Ensure initial spoken descriptions reach Brunch, dynamic questions render correctly, and canonical responses use the expert-interviewer voice. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep implementation-only planning artifacts out of the product pull request. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

🌟 What is the purpose of this PR?
Migrate the H-6763 voice interview from a transcription-plus-TTS chain to
gpt-realtime-2as an ephemeral duplex media shell, while keeping Brunch the sole durable authority for interview state and business logic. Present canonical Brunch output through a warm, professionally neutral expert-interviewer voice.🔗 Related links
🚫 Blocked by
🔍 What does this change?
gpt-realtime-2WebRTC session with audio input/output, low-effort reasoning, low-eagerness semantic VAD, automatic interruption, and one requiredcontinue_interviewfunction.brunch_askcorrelation, and rejects duplicate, overlapping, or stale work.brunch_askas a dynamic AI SDK tool so Petrinaut recognizes and renders each returned question.Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🐾 Next steps
🛡 What tests cover this?
brunch_asktool streaming and return-path handling.gpt-realtime-2WebRTC preflight confirmed remote RTP audio, function calling, semantic VAD, and automatic interruption with the configured key.❓ How to test this?
PETRINAUT_OPENAI_VOICE_ENABLED=true,OPENAI_VOICE_API_KEY, and a working Brunch endpoint.brunch_askcall exactly once.📹 Demo
No screenshot replacement is required; the affected documentation contains no screenshots of this surface.