[{"data":1,"prerenderedAt":777},["ShallowReactive",2],{"navigation":3,"\u002Frealtime\u002Faudio-input":224,"\u002Frealtime\u002Faudio-input-surround":772},[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":40,"body":226,"description":764,"draft":765,"extension":766,"links":767,"meta":768,"navigation":769,"path":41,"seo":770,"status":767,"stem":42,"__hash__":771},"docs\u002F2.realtime\u002F4.audio-input.md",{"type":227,"value":228,"toc":750},"minimark",[229,233,238,282,290,294,342,346,351,406,409,413,420,424,505,511,515,522,526,657,661,678,682,685,718,724,728,746],[230,231,232],"p",{},"The realtime API accepts PCM16LE audio. This page covers format requirements, frame size, and latency tradeoffs.",[234,235,237],"h2",{"id":236},"format-requirements","Format requirements",[239,240,241,254],"table",{},[242,243,244],"thead",{},[245,246,247,251],"tr",{},[248,249,250],"th",{},"Property",[248,252,253],{},"Requirement",[255,256,257,266,274],"tbody",{},[245,258,259,263],{},[260,261,262],"td",{},"Encoding",[260,264,265],{},"PCM16LE (16-bit signed little-endian)",[245,267,268,271],{},[260,269,270],{},"Sample rate",[260,272,273],{},"16000 Hz",[245,275,276,279],{},[260,277,278],{},"Channels",[260,280,281],{},"1 (mono)",[283,284,287],"callout",{"color":285,"icon":286},"amber","i-lucide-triangle-alert",[230,288,289],{},"Audio not matching this format will be rejected or produce incorrect results. Convert with ffmpeg first.",[234,291,293],{"id":292},"converting-audio","Converting audio",[295,296,301],"pre",{"className":297,"code":298,"language":299,"meta":300,"style":300},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav\n","bash","",[302,303,304],"code",{"__ignoreMap":300},[305,306,309,313,317,320,323,327,330,333,336,339],"span",{"class":307,"line":308},"line",1,[305,310,312],{"class":311},"sBMFI","ffmpeg",[305,314,316],{"class":315},"sfazB"," -i",[305,318,319],{"class":315}," input.mp3",[305,321,322],{"class":315}," -ar",[305,324,326],{"class":325},"sbssI"," 16000",[305,328,329],{"class":315}," -ac",[305,331,332],{"class":325}," 1",[305,334,335],{"class":315}," -c:a",[305,337,338],{"class":315}," pcm_s16le",[305,340,341],{"class":315}," output.wav\n",[234,343,345],{"id":344},"transport-methods","Transport methods",[347,348,350],"h3",{"id":349},"text-frames-base64","Text frames (base64)",[295,352,356],{"className":353,"code":354,"language":355,"meta":300,"style":300},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ \"type\": \"input_audio_buffer.append\", \"audio\": \"\u003CPCM16LE base64>\" }\n","json",[302,357,358],{"__ignoreMap":300},[305,359,360,364,367,371,374,377,379,382,384,387,389,392,394,396,398,401,403],{"class":307,"line":308},[305,361,363],{"class":362},"sMK4o","{",[305,365,366],{"class":362}," \"",[305,368,370],{"class":369},"spNyl","type",[305,372,373],{"class":362},"\"",[305,375,376],{"class":362},":",[305,378,366],{"class":362},[305,380,381],{"class":315},"input_audio_buffer.append",[305,383,373],{"class":362},[305,385,386],{"class":362},",",[305,388,366],{"class":362},[305,390,391],{"class":369},"audio",[305,393,373],{"class":362},[305,395,376],{"class":362},[305,397,366],{"class":362},[305,399,400],{"class":315},"\u003CPCM16LE base64>",[305,402,373],{"class":362},[305,404,405],{"class":362}," }\n",[230,407,408],{},"Has ~33% base64 overhead. Good for debugging and quick integration.",[347,410,412],{"id":411},"binary-frames-raw-pcm","Binary frames (raw PCM)",[230,414,415,416,419],{},"Send raw ",[302,417,418],{},"ArrayBuffer"," directly. No encoding overhead. Recommended for production.",[234,421,423],{"id":422},"frame-size-and-latency","Frame size and latency",[239,425,426,442],{},[242,427,428],{},[245,429,430,433,436,439],{},[248,431,432],{},"Frame size",[248,434,435],{},"Interval",[248,437,438],{},"Data size",[248,440,441],{},"Latency impact",[255,443,444,457,479,492],{},[245,445,446,449,451,454],{},[260,447,448],{},"50ms",[260,450,448],{},[260,452,453],{},"1600 bytes",[260,455,456],{},"Lowest latency, higher CPU overhead",[245,458,459,465,469,474],{},[260,460,461],{},[462,463,464],"strong",{},"100ms",[260,466,467],{},[462,468,464],{},[260,470,471],{},[462,472,473],{},"3200 bytes",[260,475,476],{},[462,477,478],{},"Recommended balance",[245,480,481,484,486,489],{},[260,482,483],{},"200ms",[260,485,483],{},[260,487,488],{},"6400 bytes",[260,490,491],{},"Increased latency, fewer frames",[245,493,494,497,499,502],{},[260,495,496],{},"500ms",[260,498,496],{},[260,500,501],{},"16000 bytes",[260,503,504],{},"Noticeable latency",[230,506,507,510],{},[462,508,509],{},"100ms frames"," (3200 bytes) is the recommended sweet spot.",[234,512,514],{"id":513},"max-frame-size","Max frame size",[230,516,517,518,521],{},"1 MiB (1,048,576 bytes). Exceeding this returns ",[302,519,520],{},"audio_frame_too_large"," and closes the connection (1009).",[234,523,525],{"id":524},"browser-capture","Browser capture",[295,527,531],{"className":528,"code":529,"language":530,"meta":300,"style":300},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const ctx = new AudioContext({ sampleRate: 16000 });\nconst stream = await navigator.mediaDevices.getUserMedia({ audio: true });\nconst source = ctx.createMediaStreamSource(stream);\n\u002F\u002F Use AudioWorklet or ScriptProcessorNode to convert float samples to PCM16LE\n\u002F\u002F Ensure 16000 Hz sample rate and mono\n","javascript",[302,532,533,574,621,644,651],{"__ignoreMap":300},[305,534,535,538,542,545,548,552,555,557,561,563,565,568,571],{"class":307,"line":308},[305,536,537],{"class":369},"const",[305,539,541],{"class":540},"sTEyZ"," ctx ",[305,543,544],{"class":362},"=",[305,546,547],{"class":362}," new",[305,549,551],{"class":550},"s2Zo4"," AudioContext",[305,553,554],{"class":540},"(",[305,556,363],{"class":362},[305,558,560],{"class":559},"swJcz"," sampleRate",[305,562,376],{"class":362},[305,564,326],{"class":325},[305,566,567],{"class":362}," }",[305,569,570],{"class":540},")",[305,572,573],{"class":362},";\n",[305,575,577,579,582,584,588,591,594,597,599,602,604,606,609,611,615,617,619],{"class":307,"line":576},2,[305,578,537],{"class":369},[305,580,581],{"class":540}," stream ",[305,583,544],{"class":362},[305,585,587],{"class":586},"s7zQu"," await",[305,589,590],{"class":540}," navigator",[305,592,593],{"class":362},".",[305,595,596],{"class":540},"mediaDevices",[305,598,593],{"class":362},[305,600,601],{"class":550},"getUserMedia",[305,603,554],{"class":540},[305,605,363],{"class":362},[305,607,608],{"class":559}," audio",[305,610,376],{"class":362},[305,612,614],{"class":613},"sfNiH"," true",[305,616,567],{"class":362},[305,618,570],{"class":540},[305,620,573],{"class":362},[305,622,624,626,629,631,634,636,639,642],{"class":307,"line":623},3,[305,625,537],{"class":369},[305,627,628],{"class":540}," source ",[305,630,544],{"class":362},[305,632,633],{"class":540}," ctx",[305,635,593],{"class":362},[305,637,638],{"class":550},"createMediaStreamSource",[305,640,641],{"class":540},"(stream)",[305,643,573],{"class":362},[305,645,647],{"class":307,"line":646},4,[305,648,650],{"class":649},"sHwdD","\u002F\u002F Use AudioWorklet or ScriptProcessorNode to convert float samples to PCM16LE\n",[305,652,654],{"class":307,"line":653},5,[305,655,656],{"class":649},"\u002F\u002F Ensure 16000 Hz sample rate and mono\n",[234,658,660],{"id":659},"server-side-capture","Server-side capture",[662,663,664,672,675],"ul",{},[665,666,667,668,671],"li",{},"Use ",[302,669,670],{},"Authorization: Bearer sk-..."," header",[665,673,674],{},"Send binary PCM frames directly (no base64 needed)",[665,676,677],{},"Keep sending to avoid idle timeout",[234,679,681],{"id":680},"backpressure","Backpressure",[230,683,684],{},"When the upstream cannot keep up:",[239,686,687,697],{},[242,688,689],{},[245,690,691,694],{},[248,692,693],{},"Condition",[248,695,696],{},"Behavior",[255,698,699,710],{},[245,700,701,704],{},[260,702,703],{},"Soft threshold (1 MiB in-flight)",[260,705,706,707],{},"Drop frames, send ",[302,708,709],{},"lanson.throttled",[245,711,712,715],{},[260,713,714],{},"Hard threshold (8 MiB in-flight)",[260,716,717],{},"Close connection (1013)",[230,719,720,721,723],{},"Monitor ",[302,722,709],{}," events and reduce send rate accordingly.",[234,725,727],{"id":726},"related","Related",[662,729,730,736,741],{},[665,731,732,735],{},[733,734,168],"a",{"href":169}," — audio message format",[665,737,738,740],{},[733,739,36],{"href":37}," — idle timeout",[665,742,743,745],{},[733,744,32],{"href":33}," — complete example",[747,748,749],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":300,"searchDepth":308,"depth":576,"links":751},[752,753,754,758,759,760,761,762,763],{"id":236,"depth":576,"text":237},{"id":292,"depth":576,"text":293},{"id":344,"depth":576,"text":345,"children":755},[756,757],{"id":349,"depth":623,"text":350},{"id":411,"depth":623,"text":412},{"id":422,"depth":576,"text":423},{"id":513,"depth":576,"text":514},{"id":524,"depth":576,"text":525},{"id":659,"depth":576,"text":660},{"id":680,"depth":576,"text":681},{"id":726,"depth":576,"text":727},"PCM format, sample rate, channels, chunk size, and latency tradeoffs.",false,"md",null,{},true,{"title":40,"description":764},"R2sfSCDzcoOjKqXnYPRFli1r5fi4sB6nre9fteoI6vA",[773,775],{"title":36,"path":37,"stem":38,"description":774,"children":-1},"Connect → configure → stream audio → receive events → close\u002Freconnect.",{"title":44,"path":45,"stem":46,"description":776,"children":-1},"Speech segment states and event transitions.",1789433610615]