Realtime transcription

View as Markdown
Stream 16 kHz PCM16 mono audio as base64 JSON events over an authenticated WebSocket. ## Event flow 1. Receive `session.created`, send `session.configure`, then wait for `session.configured`. 2. Send `input_audio_buffer.append` events while receiving optional `transcript.partial` results. 3. Send `input_audio_buffer.commit`. Receive `input_audio_buffer.committed`, then `transcript.completed` for that utterance. VAD and automatic duration boundaries can also commit an utterance. An empty manual commit returns `input_audio_buffer.commit_empty`. The connection stays open for subsequent utterances.