[{"data":1,"prerenderedAt":891},["ShallowReactive",2],{"navigation":3,"\u002Frealtime\u002Finterruptions-silence":220,"\u002Frealtime\u002Finterruptions-silence-surround":886},[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":60,"body":222,"description":880,"extension":881,"links":882,"meta":883,"navigation":641,"path":61,"seo":884,"status":882,"stem":62,"__hash__":885},"docs\u002F2.realtime\u002F8.interruptions-silence.md",{"type":223,"value":224,"toc":865},"minimark",[225,229,234,237,274,285,288,292,297,304,308,332,345,349,360,400,403,416,420,426,465,469,473,476,493,497,523,527,825,829,861],[226,227,228],"p",{},"How silence, pauses, and speech interruptions are handled in realtime transcription.",[230,231,233],"h2",{"id":232},"vad-and-speech-segmentation","VAD and speech segmentation",[226,235,236],{},"Server-side VAD automatically detects speech segments. The WebSocket events pushed to your client are:",[238,239,240,253,256,265],"ol",{},[241,242,243,244,248,249,252],"li",{},"Speech detected → ",[245,246,247],"code",{},"input_audio_buffer.speech_started"," (abbreviated as ",[245,250,251],{},"speech_started",")",[241,254,255],{},"Speech continues → audio accumulated",[241,257,258,259,248,262,252],{},"Silence detected → ",[245,260,261],{},"input_audio_buffer.speech_stopped",[245,263,264],{},"speech_stopped",[241,266,267,268,248,271,252],{},"Transcription complete → ",[245,269,270],{},"conversation.item.input_audio_transcription.completed",[245,272,273],{},"completed",[226,275,276,277,280,281,284],{},"Use the full ",[245,278,279],{},"type"," string in your event dispatcher. See ",[282,283,168],"a",{"href":169}," for the complete payload schemas.",[226,286,287],{},"Clients do not need to implement VAD — just consume events.",[230,289,291],{"id":290},"silence-behavior","Silence behavior",[293,294,296],"h3",{"id":295},"short-pauses","Short pauses",[226,298,299,300,303],{},"Normal speaking pauses (commas, sentence ends) do not trigger segment splits. VAD has a silence threshold (",[245,301,302],{},"vadSilenceMs","); only silence exceeding this duration triggers end-of-speech.",[293,305,307],{"id":306},"long-silence","Long silence",[309,310,311,322,329],"ul",{},[241,312,313,314,317,318,321],{},"Silence exceeding ",[245,315,316],{},"idle_timeout_seconds"," closes the connection with code ",[245,319,320],{},"4408",".",[241,323,324,325,328],{},"The actual value is returned in ",[245,326,327],{},"session.created.limits.idle_timeout_seconds","; do not hard-code it.",[241,330,331],{},"To keep the connection alive, continue sending PCM16LE audio frames, even when they contain silence (all-zero samples).",[226,333,334,335,338,339,341,342,344],{},"For example, a 100 ms silent binary frame at 16 kHz mono is ",[245,336,337],{},"new Int16Array(1600).fill(0)",". See ",[282,340,44],{"href":45}," for frame-size guidance and ",[282,343,40],{"href":41}," for close-code details.",[230,346,348],{"id":347},"manual-flush","Manual flush",[226,350,351,352,355,356,359],{},"Send ",[245,353,354],{},"input_audio_buffer.flush"," (or its alias ",[245,357,358],{},"flush",") to force-end the current speech segment:",[361,362,367],"pre",{"className":363,"code":364,"language":365,"meta":366,"style":366},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ \"type\": \"input_audio_buffer.flush\" }\n","json","",[245,368,369],{"__ignoreMap":366},[370,371,374,378,381,384,387,390,392,395,397],"span",{"class":372,"line":373},"line",1,[370,375,377],{"class":376},"sMK4o","{",[370,379,380],{"class":376}," \"",[370,382,279],{"class":383},"spNyl",[370,385,386],{"class":376},"\"",[370,388,389],{"class":376},":",[370,391,380],{"class":376},[370,393,354],{"class":394},"sfazB",[370,396,386],{"class":376},[370,398,399],{"class":376}," }\n",[226,401,402],{},"Use cases:",[309,404,405,408,411],{},[241,406,407],{},"You know a speech segment has ended (e.g. the user released a push-to-talk button or tapped an end-of-utterance button).",[241,409,410],{},"Force the upstream to process already-sent audio instead of waiting for VAD.",[241,412,413,414,321],{},"Reduce latency by not waiting for ",[245,415,302],{},[230,417,419],{"id":418},"max-speech-segment-duration","Max speech segment duration",[226,421,422,425],{},[245,423,424],{},"vadMaxSpeechMs"," limits the maximum duration of a single speech segment. When exceeded:",[309,427,428,436,441],{},[241,429,430,431,433,434,321],{},"The current segment is finalized: ",[245,432,261],{}," → ",[245,435,270],{},[241,437,438,439,321],{},"A new segment starts immediately with ",[245,440,247],{},[241,442,443,444,447,448,450,451,454,455,458,459,461,462,464],{},"The ",[245,445,446],{},"reason"," field of ",[245,449,264],{}," explains why the segment ended (e.g. ",[245,452,453],{},"end_of_speech"," or ",[245,456,457],{},"max_duration","). See ",[282,460,168],{"href":169}," for the full list of ",[245,463,446],{}," values.",[230,466,468],{"id":467},"interruption-handling","Interruption handling",[293,470,472],{"id":471},"speaker-interrupted","Speaker interrupted",[226,474,475],{},"In live scenarios, if a speaker is interrupted:",[309,477,478,481,488],{},[241,479,480],{},"Upstream detects the speech boundary.",[241,482,483,484,433,486,321],{},"Current segment: ",[245,485,261],{},[245,487,270],{},[241,489,490,491,321],{},"A new segment starts with ",[245,492,247],{},[293,494,496],{"id":495},"client-strategy","Client strategy",[238,498,499,505,508],{},[241,500,501,502,504],{},"Each ",[245,503,270],{}," event is independent and final.",[241,506,507],{},"No need to cancel or roll back already-displayed text.",[241,509,510,511,514,515,518,519,522],{},"New segments are ordered by ",[245,512,513],{},"utterance_index",". If two segments overlap in time, use ",[245,516,517],{},"audio_duration_ms"," \u002F ",[245,520,521],{},"speech_duration_ms"," to position them on a timeline rather than relying on arrival order.",[230,524,526],{"id":525},"recommended-client-handling","Recommended client handling",[361,528,532],{"className":529,"code":530,"language":531,"meta":366,"style":366},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ws.onmessage = (event) => {\n  if (typeof event.data !== \"string\") return;\n  const data = JSON.parse(event.data);\n\n  if (data.type === \"input_audio_buffer.speech_started\") {\n    showListeningIndicator(data.utterance_index);\n  } else if (data.type === \"input_audio_buffer.speech_stopped\") {\n    showProcessingIndicator(data.utterance_index);\n  } else if (data.type === \"conversation.item.input_audio_transcription.completed\") {\n    appendTranscript(data.utterance_index, data.text);\n    hideIndicators(data.utterance_index);\n  }\n};\n","typescript",[245,533,534,564,604,636,643,670,688,720,738,767,795,813,819],{"__ignoreMap":366},[370,535,536,540,542,546,549,552,556,558,561],{"class":372,"line":373},[370,537,539],{"class":538},"sTEyZ","ws",[370,541,321],{"class":376},[370,543,545],{"class":544},"s2Zo4","onmessage",[370,547,548],{"class":376}," =",[370,550,551],{"class":376}," (",[370,553,555],{"class":554},"sHdIc","event",[370,557,252],{"class":376},[370,559,560],{"class":383}," =>",[370,562,563],{"class":376}," {\n",[370,565,567,571,574,577,580,582,585,588,590,593,595,598,601],{"class":372,"line":566},2,[370,568,570],{"class":569},"s7zQu","  if",[370,572,551],{"class":573},"swJcz",[370,575,576],{"class":376},"typeof",[370,578,579],{"class":538}," event",[370,581,321],{"class":376},[370,583,584],{"class":538},"data",[370,586,587],{"class":376}," !==",[370,589,380],{"class":376},[370,591,592],{"class":394},"string",[370,594,386],{"class":376},[370,596,597],{"class":573},") ",[370,599,600],{"class":569},"return",[370,602,603],{"class":376},";\n",[370,605,607,610,613,615,618,620,623,626,628,630,632,634],{"class":372,"line":606},3,[370,608,609],{"class":383},"  const",[370,611,612],{"class":538}," data",[370,614,548],{"class":376},[370,616,617],{"class":538}," JSON",[370,619,321],{"class":376},[370,621,622],{"class":544},"parse",[370,624,625],{"class":573},"(",[370,627,555],{"class":538},[370,629,321],{"class":376},[370,631,584],{"class":538},[370,633,252],{"class":573},[370,635,603],{"class":376},[370,637,639],{"class":372,"line":638},4,[370,640,642],{"emptyLinePlaceholder":641},true,"\n",[370,644,646,648,650,652,654,656,659,661,663,665,667],{"class":372,"line":645},5,[370,647,570],{"class":569},[370,649,551],{"class":573},[370,651,584],{"class":538},[370,653,321],{"class":376},[370,655,279],{"class":538},[370,657,658],{"class":376}," ===",[370,660,380],{"class":376},[370,662,247],{"class":394},[370,664,386],{"class":376},[370,666,597],{"class":573},[370,668,669],{"class":376},"{\n",[370,671,673,676,678,680,682,684,686],{"class":372,"line":672},6,[370,674,675],{"class":544},"    showListeningIndicator",[370,677,625],{"class":573},[370,679,584],{"class":538},[370,681,321],{"class":376},[370,683,513],{"class":538},[370,685,252],{"class":573},[370,687,603],{"class":376},[370,689,691,694,697,700,702,704,706,708,710,712,714,716,718],{"class":372,"line":690},7,[370,692,693],{"class":376},"  }",[370,695,696],{"class":569}," else",[370,698,699],{"class":569}," if",[370,701,551],{"class":573},[370,703,584],{"class":538},[370,705,321],{"class":376},[370,707,279],{"class":538},[370,709,658],{"class":376},[370,711,380],{"class":376},[370,713,261],{"class":394},[370,715,386],{"class":376},[370,717,597],{"class":573},[370,719,669],{"class":376},[370,721,723,726,728,730,732,734,736],{"class":372,"line":722},8,[370,724,725],{"class":544},"    showProcessingIndicator",[370,727,625],{"class":573},[370,729,584],{"class":538},[370,731,321],{"class":376},[370,733,513],{"class":538},[370,735,252],{"class":573},[370,737,603],{"class":376},[370,739,741,743,745,747,749,751,753,755,757,759,761,763,765],{"class":372,"line":740},9,[370,742,693],{"class":376},[370,744,696],{"class":569},[370,746,699],{"class":569},[370,748,551],{"class":573},[370,750,584],{"class":538},[370,752,321],{"class":376},[370,754,279],{"class":538},[370,756,658],{"class":376},[370,758,380],{"class":376},[370,760,270],{"class":394},[370,762,386],{"class":376},[370,764,597],{"class":573},[370,766,669],{"class":376},[370,768,770,773,775,777,779,781,784,786,788,791,793],{"class":372,"line":769},10,[370,771,772],{"class":544},"    appendTranscript",[370,774,625],{"class":573},[370,776,584],{"class":538},[370,778,321],{"class":376},[370,780,513],{"class":538},[370,782,783],{"class":376},",",[370,785,612],{"class":538},[370,787,321],{"class":376},[370,789,790],{"class":538},"text",[370,792,252],{"class":573},[370,794,603],{"class":376},[370,796,798,801,803,805,807,809,811],{"class":372,"line":797},11,[370,799,800],{"class":544},"    hideIndicators",[370,802,625],{"class":573},[370,804,584],{"class":538},[370,806,321],{"class":376},[370,808,513],{"class":538},[370,810,252],{"class":573},[370,812,603],{"class":376},[370,814,816],{"class":372,"line":815},12,[370,817,818],{"class":376},"  }\n",[370,820,822],{"class":372,"line":821},13,[370,823,824],{"class":376},"};\n",[230,826,828],{"id":827},"related","Related",[309,830,831,836,841,846,853],{},[241,832,833,835],{},[282,834,48],{"href":49}," — state transitions",[241,837,838,840],{},[282,839,56],{"href":57}," — VAD parameters",[241,842,843,845],{},[282,844,40],{"href":41}," — idle timeout and reconnect",[241,847,848,850,851],{},[282,849,164],{"href":165}," — ",[245,852,354],{},[241,854,855,857,858,860],{},[282,856,168],{"href":169}," — event schemas and ",[245,859,446],{}," values",[862,863,864],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":366,"searchDepth":373,"depth":566,"links":866},[867,868,872,873,874,878,879],{"id":232,"depth":566,"text":233},{"id":290,"depth":566,"text":291,"children":869},[870,871],{"id":295,"depth":606,"text":296},{"id":306,"depth":606,"text":307},{"id":347,"depth":566,"text":348},{"id":418,"depth":566,"text":419},{"id":467,"depth":566,"text":468,"children":875},[876,877],{"id":471,"depth":606,"text":472},{"id":495,"depth":606,"text":496},{"id":525,"depth":566,"text":526},{"id":827,"depth":566,"text":828},"Silence, pauses, VAD end-of-speech behavior, and connection keepalive.","md",null,{},{"title":60,"description":880},"r3AyyoZYUT6tXVo18hUyMYMG1cWCNJ7_R1yC5dGrB_k",[887,889],{"title":56,"path":57,"stem":58,"description":888,"children":-1},"language, prompt, VAD, and other session-level options.",{"title":70,"path":66,"stem":67,"description":890,"children":-1},"Recorded vs. Realtime; when to use which.",1787340798074]