[{"data":1,"prerenderedAt":494},["ShallowReactive",2],{"navigation":3,"\u002Frealtime":220,"\u002Frealtime-surround":489},[4,28,64,92,124,152,192],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Start","\u002Fstart","1.start\u002F1.index",[9,11,15,19,23],{"title":10,"path":6,"stem":7},"Overview",{"title":12,"path":13,"stem":14},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F2.quickstart",{"title":16,"path":17,"stem":18},"Authentication","\u002Fstart\u002Fauthentication","1.start\u002F3.authentication",{"title":20,"path":21,"stem":22},"SDKs","\u002Fstart\u002Fsdks","1.start\u002F4.sdks",{"title":24,"path":25,"stem":26},"Choose an API","\u002Fstart\u002Fchoose-an-api","1.start\u002F5.choose-an-api","i-lucide-rocket",{"title":29,"path":30,"stem":31,"children":32,"icon":63},"Realtime","\u002Frealtime","2.realtime\u002F1.index",[33,35,39,43,47,51,55,59],{"title":34,"path":30,"stem":31},"Realtime Overview",{"title":36,"path":37,"stem":38},"Realtime Quickstart","\u002Frealtime\u002Fquickstart","2.realtime\u002F2.quickstart",{"title":40,"path":41,"stem":42},"Connection Lifecycle","\u002Frealtime\u002Fconnection-lifecycle","2.realtime\u002F3.connection-lifecycle",{"title":44,"path":45,"stem":46},"Audio Input","\u002Frealtime\u002Faudio-input","2.realtime\u002F4.audio-input",{"title":48,"path":49,"stem":50},"Transcript Lifecycle","\u002Frealtime\u002Ftranscript-lifecycle","2.realtime\u002F5.transcript-lifecycle",{"title":52,"path":53,"stem":54},"Realtime Translation","\u002Frealtime\u002Frealtime-translation","2.realtime\u002F6.realtime-translation",{"title":56,"path":57,"stem":58},"Session Configuration","\u002Frealtime\u002Fsession-configuration","2.realtime\u002F7.session-configuration",{"title":60,"path":61,"stem":62},"Handling Interruptions & Silence","\u002Frealtime\u002Finterruptions-silence","2.realtime\u002F8.interruptions-silence","i-lucide-radio",{"title":65,"path":66,"stem":67,"children":68,"icon":91},"Recorded","\u002Frecorded","3.recorded\u002F1.index",[69,71,75,79,83,87],{"title":70,"path":66,"stem":67},"Recorded Overview",{"title":72,"path":73,"stem":74},"Transcribe Audio","\u002Frecorded\u002Ftranscribe-audio","3.recorded\u002F2.transcribe-audio",{"title":76,"path":77,"stem":78},"Timestamps & Speakers","\u002Frecorded\u002Ftimestamps-speakers","3.recorded\u002F3.timestamps-speakers",{"title":80,"path":81,"stem":82},"Subtitles","\u002Frecorded\u002Fsubtitles","3.recorded\u002F4.subtitles",{"title":84,"path":85,"stem":86},"Recorded Translation","\u002Frecorded\u002Ftranslation","3.recorded\u002F5.translation",{"title":88,"path":89,"stem":90},"Structured Results","\u002Frecorded\u002Fstructured-results","3.recorded\u002F6.structured-results","i-lucide-file-audio",{"title":93,"path":94,"stem":95,"children":96,"icon":123},"Concepts","\u002Fconcepts","4.concepts\u002F1.index",[97,99,103,107,111,115,119],{"title":98,"path":94,"stem":95},"Voice Context Layer",{"title":100,"path":101,"stem":102},"Stable vs. Partial Text","\u002Fconcepts\u002Fstable-vs-partial-text","4.concepts\u002F2.stable-vs-partial-text",{"title":104,"path":105,"stem":106},"StableStream","\u002Fconcepts\u002Fstablestream","4.concepts\u002F3.stablestream",{"title":108,"path":109,"stem":110},"Context-Aware Processing","\u002Fconcepts\u002Fcontext-aware-processing","4.concepts\u002F4.context-aware-processing",{"title":112,"path":113,"stem":114},"Understanding Latency","\u002Fconcepts\u002Flatency","4.concepts\u002F5.latency",{"title":116,"path":117,"stem":118},"Live Translation","\u002Fconcepts\u002Flive-translation","4.concepts\u002F6.live-translation",{"title":120,"path":121,"stem":122},"Trinity Engine","\u002Fconcepts\u002Ftrinity-engine","4.concepts\u002F7.trinity-engine","i-lucide-brain",{"title":125,"path":126,"stem":127,"children":128,"icon":151},"Guides","\u002Fguides","5.guides\u002F1.index",[129,131,135,139,143,147],{"title":130,"path":126,"stem":127},"Browser Live Captions",{"title":132,"path":133,"stem":134},"Server-side Streaming","\u002Fguides\u002Fserver-side-streaming","5.guides\u002F2.server-side-streaming",{"title":136,"path":137,"stem":138},"Build a Stable Caption UI","\u002Fguides\u002Fstable-caption-ui","5.guides\u002F3.stable-caption-ui",{"title":140,"path":141,"stem":142},"Build Live Translation","\u002Fguides\u002Flive-translation","5.guides\u002F4.live-translation",{"title":144,"path":145,"stem":146},"Save a Transcript","\u002Fguides\u002Fsave-transcript","5.guides\u002F5.save-transcript",{"title":148,"path":149,"stem":150},"Reconnect a Live Session","\u002Fguides\u002Freconnection","5.guides\u002F6.reconnection","i-lucide-book-open",{"title":153,"path":154,"stem":155,"children":156,"icon":191},"Reference","\u002Fapi-reference","6.api-reference\u002F1.index",[157,159,163,167,171,175,179,183,187],{"title":158,"path":154,"stem":155},"API Reference Overview",{"title":160,"path":161,"stem":162},"Realtime API","\u002Fapi-reference\u002Frealtime-api","6.api-reference\u002F2.realtime-api",{"title":164,"path":165,"stem":166},"Client Messages","\u002Fapi-reference\u002Fclient-messages","6.api-reference\u002F3.client-messages",{"title":168,"path":169,"stem":170},"Server Events","\u002Fapi-reference\u002Fserver-events","6.api-reference\u002F4.server-events",{"title":172,"path":173,"stem":174},"Transcription API","\u002Fapi-reference\u002Ftranscription","6.api-reference\u002F5.transcription",{"title":176,"path":177,"stem":178},"Languages & Models","\u002Fapi-reference\u002Flanguages","6.api-reference\u002F6.languages",{"title":180,"path":181,"stem":182},"Errors","\u002Fapi-reference\u002Ferrors","6.api-reference\u002F7.errors",{"title":184,"path":185,"stem":186},"Rate Limits","\u002Fapi-reference\u002Frate-limits","6.api-reference\u002F8.rate-limits",{"title":188,"path":189,"stem":190},"Admin API","\u002Fapi-reference\u002Fadmin","6.api-reference\u002F9.admin","i-lucide-code",{"title":193,"path":194,"stem":195,"children":196,"icon":219},"Production","\u002Fproduction","7.production\u002F1.index",[197,199,203,207,211,215],{"title":198,"path":194,"stem":195},"Production Checklist",{"title":200,"path":201,"stem":202},"Reconnection & Retries","\u002Fproduction\u002Freconnection-retries","7.production\u002F2.reconnection-retries",{"title":204,"path":205,"stem":206},"Latency Best Practices","\u002Fproduction\u002Flatency-best-practices","7.production\u002F3.latency-best-practices",{"title":208,"path":209,"stem":210},"Security & Privacy","\u002Fproduction\u002Fsecurity-privacy","7.production\u002F4.security-privacy",{"title":212,"path":213,"stem":214},"Data Retention","\u002Fproduction\u002Fdata-retention","7.production\u002F5.data-retention",{"title":216,"path":217,"stem":218},"Changelog","\u002Fproduction\u002Fchangelog","7.production\u002F6.changelog","i-lucide-server",{"id":221,"title":34,"body":222,"description":481,"extension":482,"links":483,"meta":484,"navigation":485,"path":30,"seo":486,"status":487,"stem":31,"__hash__":488},"docs\u002F2.realtime\u002F1.index.md",{"type":223,"value":224,"toc":471},"minimark",[225,229,244,247,252,284,288,302,306,309,318,321,345,349,359,363,450,454],[226,227,34],"h1",{"id":228},"realtime-overview",[230,231,232,233,236,237,240,241,243],"p",{},"Realtime is a ",[234,235,98],"strong",{}," mode for live speech. ",[238,239,65],"a",{"href":66}," is the other mode, for full-file processing. See ",[238,242,98],{"href":94}," for the umbrella model.",[230,245,246],{},"The Realtime API provides streaming speech transcription over WebSocket. You send PCM16LE audio frames, the server returns transcription events.",[248,249,251],"h2",{"id":250},"what-it-does","What it does",[253,254,255,262,272,278],"ul",{},[256,257,258,261],"li",{},[234,259,260],{},"Live captions",": text appears while the person is still speaking",[256,263,264,267,268],{},[234,265,266],{},"Real-time translation",": source and translated text together ",[269,270,271],"em",{},"(coming soon for external sessions)",[256,273,274,277],{},[234,275,276],{},"Multi-language",": Whisper-compatible language support",[256,279,280,283],{},[234,281,282],{},"Server-side VAD",": automatic speech segment detection, no client-side splitting needed",[248,285,287],{"id":286},"input","Input",[253,289,290,296,299],{},[256,291,292,293],{},"Audio format: ",[234,294,295],{},"PCM16LE \u002F 16kHz \u002F mono",[256,297,298],{},"Transport: JSON text frames (base64) or binary frames (raw PCM)",[256,300,301],{},"Frame size: recommended 100ms frames (~3200 bytes), max 1 MiB",[248,303,305],{"id":304},"output","Output",[230,307,308],{},"Server pushes JSON events. The primary output is:",[253,310,311],{},[256,312,313,317],{},[314,315,316],"code",{},"conversation.item.input_audio_transcription.completed"," — a speech segment has been transcribed",[230,319,320],{},"Supporting events:",[253,322,323,333,339],{},[256,324,325,328,329,332],{},[314,326,327],{},"input_audio_buffer.speech_started"," \u002F ",[314,330,331],{},"speech_stopped"," — speech segment boundaries",[256,334,335,338],{},[314,336,337],{},"session.created"," — connection established",[256,340,341,344],{},[314,342,343],{},"error"," — error events",[248,346,348],{"id":347},"architecture","Architecture",[350,351,356],"pre",{"className":352,"code":354,"language":355},[353],"language-text","Your app                   LansonAI Gateway                   Upstream STT\n  │                            │                                  │\n  ├── WS connect (Bearer) ───→ session.created                   │\n  │                            │                                  │\n  ├── Send PCM16 frames ──────→ gateway relay (binary PCM) ─────→ VAD + STT\n  │                            │                                  │\n   │←── input_audio_buffer.speech_started ──────│←── input_audio_buffer.speech_started\n   │                            │                                  │\n   │←── conversation.item.input_audio_transcription.completed ─│←── conversation.item.input_audio_transcription.completed\n  │                            │                                  │\n  ├── Close ─────────────────→ meter flush → R2 ledger            │\n","text",[314,357,354],{"__ignoreMap":358},"",[248,360,362],{"id":361},"vs-recorded-speech","vs. Recorded Speech",[364,365,366,382],"table",{},[367,368,369],"thead",{},[370,371,372,376,379],"tr",{},[373,374,375],"th",{},"Dimension",[373,377,378],{},"Realtime WS",[373,380,381],{},"Recorded HTTP",[383,384,385,397,408,418,428,439],"tbody",{},[370,386,387,391,394],{},[388,389,390],"td",{},"Transport",[388,392,393],{},"WebSocket full-duplex",[388,395,396],{},"HTTP async",[370,398,399,402,405],{},[388,400,401],{},"Latency",[388,403,404],{},"Milliseconds",[388,406,407],{},"Minutes",[370,409,410,412,415],{},[388,411,287],{},[388,413,414],{},"PCM16LE audio stream",[388,416,417],{},"Audio URL",[370,419,420,422,425],{},[388,421,305],{},[388,423,424],{},"Event stream",[388,426,427],{},"Complete result JSON",[370,429,430,433,436],{},[388,431,432],{},"VAD",[388,434,435],{},"Server-side",[388,437,438],{},"Not needed",[370,440,441,444,447],{},[388,442,443],{},"Best for",[388,445,446],{},"Live, real-time",[388,448,449],{},"Post-processing, batch",[248,451,453],{"id":452},"next-steps","Next steps",[253,455,456,461,466],{},[256,457,458,460],{},[238,459,36],{"href":37}," — runnable example",[256,462,463,465],{},[238,464,40],{"href":41}," — connect, timeout, close",[256,467,468,470],{},[238,469,44],{"href":45}," — audio format reference",{"title":358,"searchDepth":472,"depth":473,"links":474},1,2,[475,476,477,478,479,480],{"id":250,"depth":473,"text":251},{"id":286,"depth":473,"text":287},{"id":304,"depth":473,"text":305},{"id":347,"depth":473,"text":348},{"id":361,"depth":473,"text":362},{"id":452,"depth":473,"text":453},"What the Realtime API does, input, output, and architecture.","md",null,{},true,{"title":34,"description":481},"stable","24zxsPhGL7CR_OaRXlHraMkRkUPHBfrslVaAwblaUwQ",[490,492],{"title":24,"path":25,"stem":26,"description":491,"children":-1},"Realtime Voice Context, Recorded Audio, and Voice Agent — when to use which.",{"title":36,"path":37,"stem":38,"description":493,"children":-1},"Minimal runnable WebSocket examples.",1787340796396]