[{"data":1,"prerenderedAt":487},["ShallowReactive",2],{"navigation":3,"\u002Frealtime\u002Ftranscript-lifecycle":224,"\u002Frealtime\u002Ftranscript-lifecycle-surround":482},[4,24,60,88,120,152,196],{"title":5,"path":6,"stem":7,"children":8,"icon":23},"Start","\u002Fstart","1.start\u002F1.index",[9,11,15,19],{"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},"Choose an API","\u002Fstart\u002Fchoose-an-api","1.start\u002F5.choose-an-api","i-lucide-rocket",{"title":25,"path":26,"stem":27,"children":28,"icon":59},"Realtime","\u002Frealtime","2.realtime\u002F1.index",[29,31,35,39,43,47,51,55],{"title":30,"path":26,"stem":27},"Realtime Overview",{"title":32,"path":33,"stem":34},"Realtime Quickstart","\u002Frealtime\u002Fquickstart","2.realtime\u002F2.quickstart",{"title":36,"path":37,"stem":38},"Connection Lifecycle","\u002Frealtime\u002Fconnection-lifecycle","2.realtime\u002F3.connection-lifecycle",{"title":40,"path":41,"stem":42},"Audio Input","\u002Frealtime\u002Faudio-input","2.realtime\u002F4.audio-input",{"title":44,"path":45,"stem":46},"Transcript Lifecycle","\u002Frealtime\u002Ftranscript-lifecycle","2.realtime\u002F5.transcript-lifecycle",{"title":48,"path":49,"stem":50},"Realtime Translation","\u002Frealtime\u002Frealtime-translation","2.realtime\u002F6.realtime-translation",{"title":52,"path":53,"stem":54},"Session Configuration","\u002Frealtime\u002Fsession-configuration","2.realtime\u002F7.session-configuration",{"title":56,"path":57,"stem":58},"Handling Interruptions & Silence","\u002Frealtime\u002Finterruptions-silence","2.realtime\u002F8.interruptions-silence","i-lucide-radio",{"title":61,"path":62,"stem":63,"children":64,"icon":87},"Recorded","\u002Frecorded","3.recorded\u002F1.index",[65,67,71,75,79,83],{"title":66,"path":62,"stem":63},"Recorded Overview",{"title":68,"path":69,"stem":70},"Transcribe Audio","\u002Frecorded\u002Ftranscribe-audio","3.recorded\u002F2.transcribe-audio",{"title":72,"path":73,"stem":74},"Timestamps & Speakers","\u002Frecorded\u002Ftimestamps-speakers","3.recorded\u002F3.timestamps-speakers",{"title":76,"path":77,"stem":78},"Subtitles","\u002Frecorded\u002Fsubtitles","3.recorded\u002F4.subtitles",{"title":80,"path":81,"stem":82},"Recorded Translation","\u002Frecorded\u002Ftranslation","3.recorded\u002F5.translation",{"title":84,"path":85,"stem":86},"Structured Results","\u002Frecorded\u002Fstructured-results","3.recorded\u002F6.structured-results","i-lucide-file-audio",{"title":89,"path":90,"stem":91,"children":92,"icon":119},"Concepts","\u002Fconcepts","4.concepts\u002F1.index",[93,95,99,103,107,111,115],{"title":94,"path":90,"stem":91},"Voice Context Layer",{"title":96,"path":97,"stem":98},"Stable vs. Partial Text","\u002Fconcepts\u002Fstable-vs-partial-text","4.concepts\u002F2.stable-vs-partial-text",{"title":100,"path":101,"stem":102},"StableStream","\u002Fconcepts\u002Fstablestream","4.concepts\u002F3.stablestream",{"title":104,"path":105,"stem":106},"Context-Aware Processing","\u002Fconcepts\u002Fcontext-aware-processing","4.concepts\u002F4.context-aware-processing",{"title":108,"path":109,"stem":110},"Understanding Latency","\u002Fconcepts\u002Flatency","4.concepts\u002F5.latency",{"title":112,"path":113,"stem":114},"Live Translation","\u002Fconcepts\u002Flive-translation","4.concepts\u002F6.live-translation",{"title":116,"path":117,"stem":118},"Trinity Engine","\u002Fconcepts\u002Ftrinity-engine","4.concepts\u002F7.trinity-engine","i-lucide-brain",{"title":121,"path":122,"stem":123,"children":124,"icon":151},"Guides","\u002Fguides","5.guides\u002F1.index",[125,127,131,135,139,143,147],{"title":126,"path":122,"stem":123},"Browser Live Captions",{"title":128,"path":129,"stem":130},"Server-side Streaming","\u002Fguides\u002Fserver-side-streaming","5.guides\u002F2.server-side-streaming",{"title":132,"path":133,"stem":134},"Build a Stable Caption UI","\u002Fguides\u002Fstable-caption-ui","5.guides\u002F3.stable-caption-ui",{"title":136,"path":137,"stem":138},"Build Live Translation","\u002Fguides\u002Flive-translation","5.guides\u002F4.live-translation",{"title":140,"path":141,"stem":142},"Save a Transcript","\u002Fguides\u002Fsave-transcript","5.guides\u002F5.save-transcript",{"title":144,"path":145,"stem":146},"Reconnect a Live Session","\u002Fguides\u002Freconnection","5.guides\u002F6.reconnection",{"title":148,"path":149,"stem":150},"Client-VAD speech segments","\u002Fguides\u002Fclient-vad-segments","5.guides\u002F7.client-vad-segments","i-lucide-book-open",{"title":153,"path":154,"stem":155,"children":156,"icon":195},"Reference","\u002Fapi-reference","6.api-reference\u002F1.index",[157,159,163,167,171,175,179,183,187,191],{"title":158,"path":154,"stem":155},"API Reference Overview",{"title":160,"path":161,"stem":162},"Admin API","\u002Fapi-reference\u002Fadmin","6.api-reference\u002F10.admin",{"title":164,"path":165,"stem":166},"Realtime API","\u002Fapi-reference\u002Frealtime-api","6.api-reference\u002F2.realtime-api",{"title":168,"path":169,"stem":170},"Client Messages","\u002Fapi-reference\u002Fclient-messages","6.api-reference\u002F3.client-messages",{"title":172,"path":173,"stem":174},"Server Events","\u002Fapi-reference\u002Fserver-events","6.api-reference\u002F4.server-events",{"title":176,"path":177,"stem":178},"Segment Transcription API","\u002Fapi-reference\u002Fsegment-transcription","6.api-reference\u002F5.segment-transcription",{"title":180,"path":181,"stem":182},"Batch Transcription Jobs","\u002Fapi-reference\u002Fbatch-jobs","6.api-reference\u002F6.batch-jobs",{"title":184,"path":185,"stem":186},"Languages & Models","\u002Fapi-reference\u002Flanguages","6.api-reference\u002F7.languages",{"title":188,"path":189,"stem":190},"Errors","\u002Fapi-reference\u002Ferrors","6.api-reference\u002F8.errors",{"title":192,"path":193,"stem":194},"Rate Limits","\u002Fapi-reference\u002Frate-limits","6.api-reference\u002F9.rate-limits","i-lucide-code",{"title":197,"path":198,"stem":199,"children":200,"icon":223},"Production","\u002Fproduction","7.production\u002F1.index",[201,203,207,211,215,219],{"title":202,"path":198,"stem":199},"Production Checklist",{"title":204,"path":205,"stem":206},"Reconnection & Retries","\u002Fproduction\u002Freconnection-retries","7.production\u002F2.reconnection-retries",{"title":208,"path":209,"stem":210},"Latency Best Practices","\u002Fproduction\u002Flatency-best-practices","7.production\u002F3.latency-best-practices",{"title":212,"path":213,"stem":214},"Security & Privacy","\u002Fproduction\u002Fsecurity-privacy","7.production\u002F4.security-privacy",{"title":216,"path":217,"stem":218},"Data Retention","\u002Fproduction\u002Fdata-retention","7.production\u002F5.data-retention",{"title":220,"path":221,"stem":222},"Changelog","\u002Fproduction\u002Fchangelog","7.production\u002F6.changelog","i-lucide-server",{"id":225,"title":44,"body":226,"description":474,"draft":475,"extension":476,"links":477,"meta":478,"navigation":479,"path":45,"seo":480,"status":477,"stem":46,"__hash__":481},"docs\u002F2.realtime\u002F5.transcript-lifecycle.md",{"type":227,"value":228,"toc":459},"minimark",[229,233,238,249,253,257,260,287,290,293,310,314,321,347,366,368,374,385,389,400,404,407,434,437,441],[230,231,232],"p",{},"State transitions for transcribed text in a realtime session. Understanding these states is essential for building caption UIs.",[234,235,237],"h2",{"id":236},"state-flow","State flow",[239,240,245],"pre",{"className":241,"code":243,"language":244},[242],"language-text","audio input\n  ↓\nspeech_started (VAD detects speech)\n  ↓\n[upstream processing — segment in progress]\n  ↓\nspeech_stopped (VAD detects silence \u002F flush)\n  ↓\ntranscription.completed (stable text)\n","text",[246,247,243],"code",{"__ignoreMap":248},"",[234,250,252],{"id":251},"event-semantics","Event semantics",[254,255,256],"h3",{"id":256},"speech_started",[230,258,259],{},"VAD detected the start of a speech segment.",[261,262,263,271,277],"ul",{},[264,265,266,270],"li",{},[267,268,269],"strong",{},"At this point",": no transcribed text yet",[264,272,273,276],{},[267,274,275],{},"Client action",": optionally show a \"listening\" indicator",[264,278,279,282,283,286],{},[267,280,281],{},"Mutable",": no, ",[246,284,285],{},"utterance_index"," is fixed",[254,288,289],{"id":289},"speech_stopped",[230,291,292],{},"VAD detected the end of a speech segment (silence, flush, or max speech duration).",[261,294,295,300,305],{},[264,296,297,299],{},[267,298,269],{},": upstream begins final transcription",[264,301,302,304],{},[267,303,275],{},": optionally show \"processing\" state",[264,306,307,309],{},[267,308,281],{},": no",[254,311,313],{"id":312},"conversationiteminput_audio_transcriptioncompleted","conversation.item.input_audio_transcription.completed",[230,315,316,317,320],{},"A speech segment has been transcribed. This is the ",[267,318,319],{},"primary output",".",[261,322,323,331,336,341],{},[264,324,325,327,328,330],{},[267,326,269],{},": ",[246,329,244],{}," is stable and will not change",[264,332,333,335],{},[267,334,275],{},": display the text, safe to write to database",[264,337,338,340],{},[267,339,281],{},": no, text is final",[264,342,343,346],{},[267,344,345],{},"Can trigger downstream",": yes",[348,349,352,357],"callout",{"color":350,"icon":351},"primary","i-lucide-info",[230,353,354],{},[267,355,356],{},"When is text stable?",[230,358,359,360,362,363,365],{},"The ",[246,361,244],{}," in a ",[246,364,313],{}," event is final. Once received, it will never be modified for that utterance.",[234,367,285],{"id":285},[230,369,370,371,373],{},"Each speech segment has a unique, incrementing ",[246,372,285],{},". Use it to:",[261,375,376,379,382],{},[264,377,378],{},"Order transcribed results",[264,380,381],{},"Detect missing events (index gaps)",[264,383,384],{},"Merge into a complete transcript",[234,386,388],{"id":387},"concurrent-utterances","Concurrent utterances",[230,390,391,392,395,396,399],{},"The upstream may process multiple speech segments simultaneously. ",[246,393,394],{},"limits.max_concurrent_utterances"," limits concurrency. When exceeded, frames are dropped and ",[246,397,398],{},"lanson.throttled"," is sent.",[234,401,403],{"id":402},"no-partial-text","No partial text",[230,405,406],{},"In the current version:",[261,408,409,418,428],{},[264,410,411,414,415],{},[267,412,413],{},"No partial transcription is pushed",": no intermediate text before ",[246,416,417],{},"transcription.completed",[264,419,420,423,424,427],{},[267,421,422],{},"One result per utterance",": each utterance produces one ",[246,425,426],{},"completed"," event",[264,429,430,433],{},[267,431,432],{},"Text is immediately stable",": no partial → final transition needed on the client",[230,435,436],{},"This means clients do not need to handle caption jitter — each segment's text arrives in its final form.",[234,438,440],{"id":439},"related","Related",[261,442,443,449,454],{},[264,444,445,448],{},[446,447,100],"a",{"href":101}," — the stability contract",[264,450,451,453],{},[446,452,132],{"href":133}," — UI implementation",[264,455,456,458],{},[446,457,172],{"href":173}," — event field reference",{"title":248,"searchDepth":460,"depth":461,"links":462},1,2,[463,464,470,471,472,473],{"id":236,"depth":461,"text":237},{"id":251,"depth":461,"text":252,"children":465},[466,468,469],{"id":256,"depth":467,"text":256},3,{"id":289,"depth":467,"text":289},{"id":312,"depth":467,"text":313},{"id":285,"depth":461,"text":285},{"id":387,"depth":461,"text":388},{"id":402,"depth":461,"text":403},{"id":439,"depth":461,"text":440},"Speech segment states and event transitions.",false,"md",null,{},true,{"title":44,"description":474},"7YYG8IfigwgVfNRSAca3X1H6BJJUn-b5m5x2iAmuwcw",[483,485],{"title":40,"path":41,"stem":42,"description":484,"children":-1},"PCM format, sample rate, channels, chunk size, and latency tradeoffs.",{"title":48,"path":49,"stem":50,"description":486,"children":-1},"Source and translated text correspondence, language config, switching, latency.",1789433610732]