[{"data":1,"prerenderedAt":1092},["ShallowReactive",2],{"navigation":3,"\u002Fguides\u002Fserver-side-streaming":224,"\u002Fguides\u002Fserver-side-streaming-surround":1087},[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":128,"body":226,"description":1080,"draft":1081,"extension":1082,"links":1083,"meta":1084,"navigation":409,"path":129,"seo":1085,"status":1083,"stem":130,"__hash__":1086},"docs\u002F5.guides\u002F2.server-side-streaming.md",{"type":227,"value":228,"toc":1071},"minimark",[229,233,238,249,252,255,349,352,356,970,974,1014,1018,1034,1038,1045,1049,1067],[230,231,232],"p",{},"Connect your backend to LansonAI to stream audio from server-side sources (files, pipelines, telephony).",[234,235,237],"h2",{"id":236},"architecture","Architecture",[239,240,245],"pre",{"className":241,"code":243,"language":244},[242],"language-text","Your backend                     LansonAI                    Upstream STT\n  │                                │                            │\n  ├── WS connect (Bearer sk-...) ─→ session.created              │\n  │                                │                            │\n  ├── read audio file ───────────│                            │\n  ├── convert to PCM16LE\u002F16k ─────│                            │\n  ├── send binary frames ─────────→ gateway relay ────────────→ VAD + STT\n  │←── conversation.item.input_audio_transcription.completed ─│←──────────│\n  │                                │                            │\n  ├── close ──────────────────────→ meter flush                 │\n","text",[246,247,243],"code",{"__ignoreMap":248},"",[234,250,16],{"id":251},"authentication",[230,253,254],{},"Server-side connections use the API key directly:",[239,256,260],{"className":257,"code":258,"language":259,"meta":248,"style":248},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const ws = new WebSocket(\n  \"wss:\u002F\u002Faudio.lansonai.com\u002Fv1\u002Faudio\u002Ftranscriptions\u002Fstream\",\n  { headers: { Authorization: \"Bearer sk-...\" } }\n);\n","typescript",[246,261,262,289,305,340],{"__ignoreMap":248},[263,264,267,271,275,279,282,286],"span",{"class":265,"line":266},"line",1,[263,268,270],{"class":269},"spNyl","const",[263,272,274],{"class":273},"sTEyZ"," ws ",[263,276,278],{"class":277},"sMK4o","=",[263,280,281],{"class":277}," new",[263,283,285],{"class":284},"s2Zo4"," WebSocket",[263,287,288],{"class":273},"(\n",[263,290,292,295,299,302],{"class":265,"line":291},2,[263,293,294],{"class":277},"  \"",[263,296,298],{"class":297},"sfazB","wss:\u002F\u002Faudio.lansonai.com\u002Fv1\u002Faudio\u002Ftranscriptions\u002Fstream",[263,300,301],{"class":277},"\"",[263,303,304],{"class":277},",\n",[263,306,308,311,315,318,321,324,326,329,332,334,337],{"class":265,"line":307},3,[263,309,310],{"class":277},"  {",[263,312,314],{"class":313},"swJcz"," headers",[263,316,317],{"class":277},":",[263,319,320],{"class":277}," {",[263,322,323],{"class":313}," Authorization",[263,325,317],{"class":277},[263,327,328],{"class":277}," \"",[263,330,331],{"class":297},"Bearer sk-...",[263,333,301],{"class":277},[263,335,336],{"class":277}," }",[263,338,339],{"class":277}," }\n",[263,341,343,346],{"class":265,"line":342},4,[263,344,345],{"class":273},")",[263,347,348],{"class":277},";\n",[230,350,351],{},"No session token needed — the key never leaves your server.",[234,353,355],{"id":354},"streaming-a-file","Streaming a file",[239,357,359],{"className":257,"code":358,"language":259,"meta":248,"style":248},"import { readFileSync } from \"fs\";\nimport WebSocket from \"ws\";\n\nconst ws = new WebSocket(\n  \"wss:\u002F\u002Faudio.lansonai.com\u002Fv1\u002Faudio\u002Ftranscriptions\u002Fstream\",\n  { headers: { Authorization: \"Bearer sk-...\" } }\n);\n\n  ws.on(\"open\", () => {\n    \u002F\u002F Read pre-converted PCM16LE 16kHz mono audio\n    const audio = readFileSync(\"audio.pcm\");\n    const FRAME_BYTES = 3200; \u002F\u002F 100ms at 16kHz 16-bit mono\n    let offset = 0;\n\n    const sendFrame = () => {\n      if (offset >= audio.length) {\n        ws.send(JSON.stringify({ type: \"input_audio_buffer.flush\" }));\n        return;\n      }\n      const frame = audio.slice(offset, offset + FRAME_BYTES);\n      ws.send(frame); \u002F\u002F binary frame\n      offset += FRAME_BYTES;\n      setTimeout(sendFrame, 100); \u002F\u002F simulate real-time\n    };\n    sendFrame();\n  });\n\nws.on(\"message\", (data) => {\n  const event = JSON.parse(data.toString());\n  if (event.type === \"conversation.item.input_audio_transcription.completed\") {\n    console.log(`[${event.utterance_index}] ${event.text}`);\n  }\n});\n",[246,360,361,386,405,411,425,436,461,468,473,507,514,541,561,577,582,598,626,671,679,685,720,742,755,778,784,795,805,810,842,875,905,955,961],{"__ignoreMap":248},[263,362,363,367,369,372,374,377,379,382,384],{"class":265,"line":266},[263,364,366],{"class":365},"s7zQu","import",[263,368,320],{"class":277},[263,370,371],{"class":273}," readFileSync",[263,373,336],{"class":277},[263,375,376],{"class":365}," from",[263,378,328],{"class":277},[263,380,381],{"class":297},"fs",[263,383,301],{"class":277},[263,385,348],{"class":277},[263,387,388,390,393,396,398,401,403],{"class":265,"line":291},[263,389,366],{"class":365},[263,391,392],{"class":273}," WebSocket ",[263,394,395],{"class":365},"from",[263,397,328],{"class":277},[263,399,400],{"class":297},"ws",[263,402,301],{"class":277},[263,404,348],{"class":277},[263,406,407],{"class":265,"line":307},[263,408,410],{"emptyLinePlaceholder":409},true,"\n",[263,412,413,415,417,419,421,423],{"class":265,"line":342},[263,414,270],{"class":269},[263,416,274],{"class":273},[263,418,278],{"class":277},[263,420,281],{"class":277},[263,422,285],{"class":284},[263,424,288],{"class":273},[263,426,428,430,432,434],{"class":265,"line":427},5,[263,429,294],{"class":277},[263,431,298],{"class":297},[263,433,301],{"class":277},[263,435,304],{"class":277},[263,437,439,441,443,445,447,449,451,453,455,457,459],{"class":265,"line":438},6,[263,440,310],{"class":277},[263,442,314],{"class":313},[263,444,317],{"class":277},[263,446,320],{"class":277},[263,448,323],{"class":313},[263,450,317],{"class":277},[263,452,328],{"class":277},[263,454,331],{"class":297},[263,456,301],{"class":277},[263,458,336],{"class":277},[263,460,339],{"class":277},[263,462,464,466],{"class":265,"line":463},7,[263,465,345],{"class":273},[263,467,348],{"class":277},[263,469,471],{"class":265,"line":470},8,[263,472,410],{"emptyLinePlaceholder":409},[263,474,476,479,482,485,488,490,493,495,498,501,504],{"class":265,"line":475},9,[263,477,478],{"class":273},"  ws",[263,480,481],{"class":277},".",[263,483,484],{"class":284},"on",[263,486,487],{"class":273},"(",[263,489,301],{"class":277},[263,491,492],{"class":297},"open",[263,494,301],{"class":277},[263,496,497],{"class":277},",",[263,499,500],{"class":277}," ()",[263,502,503],{"class":269}," =>",[263,505,506],{"class":277}," {\n",[263,508,510],{"class":265,"line":509},10,[263,511,513],{"class":512},"sHwdD","    \u002F\u002F Read pre-converted PCM16LE 16kHz mono audio\n",[263,515,517,520,523,526,528,530,532,535,537,539],{"class":265,"line":516},11,[263,518,519],{"class":269},"    const",[263,521,522],{"class":273}," audio",[263,524,525],{"class":277}," =",[263,527,371],{"class":284},[263,529,487],{"class":313},[263,531,301],{"class":277},[263,533,534],{"class":297},"audio.pcm",[263,536,301],{"class":277},[263,538,345],{"class":313},[263,540,348],{"class":277},[263,542,544,546,549,551,555,558],{"class":265,"line":543},12,[263,545,519],{"class":269},[263,547,548],{"class":273}," FRAME_BYTES",[263,550,525],{"class":277},[263,552,554],{"class":553},"sbssI"," 3200",[263,556,557],{"class":277},";",[263,559,560],{"class":512}," \u002F\u002F 100ms at 16kHz 16-bit mono\n",[263,562,564,567,570,572,575],{"class":265,"line":563},13,[263,565,566],{"class":269},"    let",[263,568,569],{"class":273}," offset",[263,571,525],{"class":277},[263,573,574],{"class":553}," 0",[263,576,348],{"class":277},[263,578,580],{"class":265,"line":579},14,[263,581,410],{"emptyLinePlaceholder":409},[263,583,585,587,590,592,594,596],{"class":265,"line":584},15,[263,586,519],{"class":269},[263,588,589],{"class":273}," sendFrame",[263,591,525],{"class":277},[263,593,500],{"class":277},[263,595,503],{"class":269},[263,597,506],{"class":277},[263,599,601,604,607,610,613,615,617,620,623],{"class":265,"line":600},16,[263,602,603],{"class":365},"      if",[263,605,606],{"class":313}," (",[263,608,609],{"class":273},"offset",[263,611,612],{"class":277}," >=",[263,614,522],{"class":273},[263,616,481],{"class":277},[263,618,619],{"class":273},"length",[263,621,622],{"class":313},") ",[263,624,625],{"class":277},"{\n",[263,627,629,632,634,637,639,642,644,647,649,652,655,657,659,662,664,666,669],{"class":265,"line":628},17,[263,630,631],{"class":273},"        ws",[263,633,481],{"class":277},[263,635,636],{"class":284},"send",[263,638,487],{"class":313},[263,640,641],{"class":273},"JSON",[263,643,481],{"class":277},[263,645,646],{"class":284},"stringify",[263,648,487],{"class":313},[263,650,651],{"class":277},"{",[263,653,654],{"class":313}," type",[263,656,317],{"class":277},[263,658,328],{"class":277},[263,660,661],{"class":297},"input_audio_buffer.flush",[263,663,301],{"class":277},[263,665,336],{"class":277},[263,667,668],{"class":313},"))",[263,670,348],{"class":277},[263,672,674,677],{"class":265,"line":673},18,[263,675,676],{"class":365},"        return",[263,678,348],{"class":277},[263,680,682],{"class":265,"line":681},19,[263,683,684],{"class":277},"      }\n",[263,686,688,691,694,696,698,700,703,705,707,709,711,714,716,718],{"class":265,"line":687},20,[263,689,690],{"class":269},"      const",[263,692,693],{"class":273}," frame",[263,695,525],{"class":277},[263,697,522],{"class":273},[263,699,481],{"class":277},[263,701,702],{"class":284},"slice",[263,704,487],{"class":313},[263,706,609],{"class":273},[263,708,497],{"class":277},[263,710,569],{"class":273},[263,712,713],{"class":277}," +",[263,715,548],{"class":273},[263,717,345],{"class":313},[263,719,348],{"class":277},[263,721,723,726,728,730,732,735,737,739],{"class":265,"line":722},21,[263,724,725],{"class":273},"      ws",[263,727,481],{"class":277},[263,729,636],{"class":284},[263,731,487],{"class":313},[263,733,734],{"class":273},"frame",[263,736,345],{"class":313},[263,738,557],{"class":277},[263,740,741],{"class":512}," \u002F\u002F binary frame\n",[263,743,745,748,751,753],{"class":265,"line":744},22,[263,746,747],{"class":273},"      offset",[263,749,750],{"class":277}," +=",[263,752,548],{"class":273},[263,754,348],{"class":277},[263,756,758,761,763,766,768,771,773,775],{"class":265,"line":757},23,[263,759,760],{"class":284},"      setTimeout",[263,762,487],{"class":313},[263,764,765],{"class":273},"sendFrame",[263,767,497],{"class":277},[263,769,770],{"class":553}," 100",[263,772,345],{"class":313},[263,774,557],{"class":277},[263,776,777],{"class":512}," \u002F\u002F simulate real-time\n",[263,779,781],{"class":265,"line":780},24,[263,782,783],{"class":277},"    };\n",[263,785,787,790,793],{"class":265,"line":786},25,[263,788,789],{"class":284},"    sendFrame",[263,791,792],{"class":313},"()",[263,794,348],{"class":277},[263,796,798,801,803],{"class":265,"line":797},26,[263,799,800],{"class":277},"  }",[263,802,345],{"class":273},[263,804,348],{"class":277},[263,806,808],{"class":265,"line":807},27,[263,809,410],{"emptyLinePlaceholder":409},[263,811,813,815,817,819,821,823,826,828,830,832,836,838,840],{"class":265,"line":812},28,[263,814,400],{"class":273},[263,816,481],{"class":277},[263,818,484],{"class":284},[263,820,487],{"class":273},[263,822,301],{"class":277},[263,824,825],{"class":297},"message",[263,827,301],{"class":277},[263,829,497],{"class":277},[263,831,606],{"class":277},[263,833,835],{"class":834},"sHdIc","data",[263,837,345],{"class":277},[263,839,503],{"class":269},[263,841,506],{"class":277},[263,843,845,848,851,853,856,858,861,863,865,867,870,873],{"class":265,"line":844},29,[263,846,847],{"class":269},"  const",[263,849,850],{"class":273}," event",[263,852,525],{"class":277},[263,854,855],{"class":273}," JSON",[263,857,481],{"class":277},[263,859,860],{"class":284},"parse",[263,862,487],{"class":313},[263,864,835],{"class":273},[263,866,481],{"class":277},[263,868,869],{"class":284},"toString",[263,871,872],{"class":313},"())",[263,874,348],{"class":277},[263,876,878,881,883,886,888,891,894,896,899,901,903],{"class":265,"line":877},30,[263,879,880],{"class":365},"  if",[263,882,606],{"class":313},[263,884,885],{"class":273},"event",[263,887,481],{"class":277},[263,889,890],{"class":273},"type",[263,892,893],{"class":277}," ===",[263,895,328],{"class":277},[263,897,898],{"class":297},"conversation.item.input_audio_transcription.completed",[263,900,301],{"class":277},[263,902,622],{"class":313},[263,904,625],{"class":277},[263,906,908,911,913,916,918,921,924,927,929,931,934,937,940,942,944,946,948,951,953],{"class":265,"line":907},31,[263,909,910],{"class":273},"    console",[263,912,481],{"class":277},[263,914,915],{"class":284},"log",[263,917,487],{"class":313},[263,919,920],{"class":277},"`",[263,922,923],{"class":297},"[",[263,925,926],{"class":277},"${",[263,928,885],{"class":273},[263,930,481],{"class":277},[263,932,933],{"class":273},"utterance_index",[263,935,936],{"class":277},"}",[263,938,939],{"class":297},"] ",[263,941,926],{"class":277},[263,943,885],{"class":273},[263,945,481],{"class":277},[263,947,244],{"class":273},[263,949,950],{"class":277},"}`",[263,952,345],{"class":313},[263,954,348],{"class":277},[263,956,958],{"class":265,"line":957},32,[263,959,960],{"class":277},"  }\n",[263,962,964,966,968],{"class":265,"line":963},33,[263,965,936],{"class":277},[263,967,345],{"class":273},[263,969,348],{"class":277},[234,971,973],{"id":972},"converting-audio-server-side","Converting audio server-side",[239,975,979],{"className":976,"code":977,"language":978,"meta":248,"style":248},"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.pcm\n","bash",[246,980,981],{"__ignoreMap":248},[263,982,983,987,990,993,996,999,1002,1005,1008,1011],{"class":265,"line":266},[263,984,986],{"class":985},"sBMFI","ffmpeg",[263,988,989],{"class":297}," -i",[263,991,992],{"class":297}," input.mp3",[263,994,995],{"class":297}," -ar",[263,997,998],{"class":553}," 16000",[263,1000,1001],{"class":297}," -ac",[263,1003,1004],{"class":553}," 1",[263,1006,1007],{"class":297}," -c:a",[263,1009,1010],{"class":297}," pcm_s16le",[263,1012,1013],{"class":297}," output.pcm\n",[234,1015,1017],{"id":1016},"connection-management","Connection management",[1019,1020,1021,1025,1028,1031],"ul",{},[1022,1023,1024],"li",{},"Keep the connection alive by sending frames at a steady rate",[1022,1026,1027],{},"If audio source pauses, send silent frames to avoid idle timeout",[1022,1029,1030],{},"Close explicitly when done to flush meter data",[1022,1032,1033],{},"For long-running streams, monitor session duration limits",[234,1035,1037],{"id":1036},"token-management","Token management",[230,1039,1040,1041,1044],{},"Server-side connections do not need session tokens. Use ",[246,1042,1043],{},"Authorization: Bearer sk-..."," in the WebSocket upgrade headers.",[234,1046,1048],{"id":1047},"related","Related",[1019,1050,1051,1057,1062],{},[1022,1052,1053,1056],{},[1054,1055,32],"a",{"href":33}," — basic examples",[1022,1058,1059,1061],{},[1054,1060,40],{"href":41}," — format requirements",[1022,1063,1064,1066],{},[1054,1065,36],{"href":37}," — timeouts",[1068,1069,1070],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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 .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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":248,"searchDepth":266,"depth":291,"links":1072},[1073,1074,1075,1076,1077,1078,1079],{"id":236,"depth":291,"text":237},{"id":251,"depth":291,"text":16},{"id":354,"depth":291,"text":355},{"id":972,"depth":291,"text":973},{"id":1016,"depth":291,"text":1017},{"id":1036,"depth":291,"text":1037},{"id":1047,"depth":291,"text":1048},"Backend pushes an audio stream to LansonAI.",false,"md",null,{},{"title":128,"description":1080},"cln2OeVoCW_HAm95Kp1F6s8Z3NUIXHEofiZtjtEG4ZU",[1088,1090],{"title":126,"path":122,"stem":123,"description":1089,"children":-1},"Browser microphone → Lanson → caption UI.",{"title":132,"path":133,"stem":134,"description":1091,"children":-1},"Consume StableStream events without manufacturing caption jitter.",1789433611936]