[{"data":1,"prerenderedAt":482},["ShallowReactive",2],{"navigation":3,"\u002Frealtime\u002Ftranscript-lifecycle":220,"\u002Frealtime\u002Ftranscript-lifecycle-surround":477},[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":48,"body":222,"description":470,"extension":471,"links":472,"meta":473,"navigation":474,"path":49,"seo":475,"status":472,"stem":50,"__hash__":476},"docs\u002F2.realtime\u002F5.transcript-lifecycle.md",{"type":223,"value":224,"toc":455},"minimark",[225,229,234,245,249,253,256,283,286,289,306,310,317,343,362,364,370,381,385,396,400,403,430,433,437],[226,227,228],"p",{},"State transitions for transcribed text in a realtime session. Understanding these states is essential for building caption UIs.",[230,231,233],"h2",{"id":232},"state-flow","State flow",[235,236,241],"pre",{"className":237,"code":239,"language":240},[238],"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",[242,243,239],"code",{"__ignoreMap":244},"",[230,246,248],{"id":247},"event-semantics","Event semantics",[250,251,252],"h3",{"id":252},"speech_started",[226,254,255],{},"VAD detected the start of a speech segment.",[257,258,259,267,273],"ul",{},[260,261,262,266],"li",{},[263,264,265],"strong",{},"At this point",": no transcribed text yet",[260,268,269,272],{},[263,270,271],{},"Client action",": optionally show a \"listening\" indicator",[260,274,275,278,279,282],{},[263,276,277],{},"Mutable",": no, ",[242,280,281],{},"utterance_index"," is fixed",[250,284,285],{"id":285},"speech_stopped",[226,287,288],{},"VAD detected the end of a speech segment (silence, flush, or max speech duration).",[257,290,291,296,301],{},[260,292,293,295],{},[263,294,265],{},": upstream begins final transcription",[260,297,298,300],{},[263,299,271],{},": optionally show \"processing\" state",[260,302,303,305],{},[263,304,277],{},": no",[250,307,309],{"id":308},"conversationiteminput_audio_transcriptioncompleted","conversation.item.input_audio_transcription.completed",[226,311,312,313,316],{},"A speech segment has been transcribed. This is the ",[263,314,315],{},"primary output",".",[257,318,319,327,332,337],{},[260,320,321,323,324,326],{},[263,322,265],{},": ",[242,325,240],{}," is stable and will not change",[260,328,329,331],{},[263,330,271],{},": display the text, safe to write to database",[260,333,334,336],{},[263,335,277],{},": no, text is final",[260,338,339,342],{},[263,340,341],{},"Can trigger downstream",": yes",[344,345,348,353],"callout",{"color":346,"icon":347},"primary","i-lucide-info",[226,349,350],{},[263,351,352],{},"When is text stable?",[226,354,355,356,358,359,361],{},"The ",[242,357,240],{}," in a ",[242,360,309],{}," event is final. Once received, it will never be modified for that utterance.",[230,363,281],{"id":281},[226,365,366,367,369],{},"Each speech segment has a unique, incrementing ",[242,368,281],{},". Use it to:",[257,371,372,375,378],{},[260,373,374],{},"Order transcribed results",[260,376,377],{},"Detect missing events (index gaps)",[260,379,380],{},"Merge into a complete transcript",[230,382,384],{"id":383},"concurrent-utterances","Concurrent utterances",[226,386,387,388,391,392,395],{},"The upstream may process multiple speech segments simultaneously. ",[242,389,390],{},"limits.max_concurrent_utterances"," limits concurrency. When exceeded, frames are dropped and ",[242,393,394],{},"lanson.throttled"," is sent.",[230,397,399],{"id":398},"no-partial-text","No partial text",[226,401,402],{},"In the current version:",[257,404,405,414,424],{},[260,406,407,410,411],{},[263,408,409],{},"No partial transcription is pushed",": no intermediate text before ",[242,412,413],{},"transcription.completed",[260,415,416,419,420,423],{},[263,417,418],{},"One result per utterance",": each utterance produces one ",[242,421,422],{},"completed"," event",[260,425,426,429],{},[263,427,428],{},"Text is immediately stable",": no partial → final transition needed on the client",[226,431,432],{},"This means clients do not need to handle caption jitter — each segment's text arrives in its final form.",[230,434,436],{"id":435},"related","Related",[257,438,439,445,450],{},[260,440,441,444],{},[442,443,104],"a",{"href":105}," — the stability contract",[260,446,447,449],{},[442,448,136],{"href":137}," — UI implementation",[260,451,452,454],{},[442,453,168],{"href":169}," — event field reference",{"title":244,"searchDepth":456,"depth":457,"links":458},1,2,[459,460,466,467,468,469],{"id":232,"depth":457,"text":233},{"id":247,"depth":457,"text":248,"children":461},[462,464,465],{"id":252,"depth":463,"text":252},3,{"id":285,"depth":463,"text":285},{"id":308,"depth":463,"text":309},{"id":281,"depth":457,"text":281},{"id":383,"depth":457,"text":384},{"id":398,"depth":457,"text":399},{"id":435,"depth":457,"text":436},"Speech segment states and event transitions.","md",null,{},true,{"title":48,"description":470},"7wi645TU10BKmdzuLqaDggHnE87J_FsWZ9Glak9tvjU",[478,480],{"title":44,"path":45,"stem":46,"description":479,"children":-1},"PCM format, sample rate, channels, chunk size, and latency tradeoffs.",{"title":52,"path":53,"stem":54,"description":481,"children":-1},"Source and translated text correspondence, language config, switching, latency.",1787340798074]