Architecture
| Layer | Responsibility | Output |
|---|---|---|
| Audio intake | Accept a call recording and optional known-speaker clips. | meeting.wav, Agent=agent.wav |
| Pipeline runner | Validate inputs, encode references as data URLs, call OpenAI, and write artifacts. | Run metadata and output directory |
| Diarization | Call gpt-4o-transcribe-diarize with response_format="diarized_json" and chunking_strategy="auto". | Speaker-labeled segments |
| Transcript normalization | Convert API output into consistent JSON and Markdown with stable segment IDs. | transcript_segments.json, speaker_labeled_transcript.md |
| Meeting intelligence | Extract summary, decisions, actions, risks, explicit questions, suggested follow-ups, quotes, and follow-up email with structured evidence references. | meeting_intelligence.json, meeting_brief.md |
| Guardrails and review gate | Redact sensitive fields, verify evidence references, optionally moderate content, and route risky outputs for review. | guardrail_report.json |
This is intentionally request-based. The Realtime API is a better fit for live voice UX, browser capture, or telephony streaming. For durable post-call diarization, this pattern uses the Transcriptions API and then runs structured extraction over the speaker-labeled transcript.