瀏覽文件目錄

訊息

等 session.ready 後再推裸 PCM。控制訊息只有 finalize / stop / ping。

用戶端 → 伺服器

訊息載荷說明
session.finalize—把正在說的這一段立刻收尾,並推出 final。
session.stop—正常結束這條串流。
session.ping—保活。伺服器回 session.pong。

音訊框架是裸 pcm_s16le、16 kHz、單聲道,單框不超過 64 KB。沒有框頭、沒有序號、不用記帳位移——按順序送位元組,剩下的伺服器處理。

伺服器 → 用戶端

所有伺服器訊息都是帶 type 的 JSON 文字框架。sessionId 只在 session.ready 上,不會出現在每條轉錄或譯文裡。segmentId 是不透明 id,不要解析前綴。

訊息載荷說明
session.readysessionId, audio, limits, store, region串流已經開始。可以送音訊了。
transcript.partialtext, language?, pending?, tail?, paragraphs?, tailTranslation?預覽快照。逐句模式的 paragraphs 為 {speaker?, pieces: [{text, confirmed}], translation?},tail/tailTranslation 為未完句;pending 為平鋪相容欄位。每次替換快照,按段顯示譯文,不疊加彙總的 translation.partial;僅 transcript.final 可作為最終結果儲存。
transcript.finalsegmentId, text, startMs?, endMs?, speaker?, language?已落定的段落,時間在有效音訊時鐘上。
translation.partialtext, sourceText還不穩定的譯文預覽。
translation.finalsegmentId, text, sourceText, sourceLanguage, targetLanguage, enhanced?已落定的譯文。開了 aiEnhance 時,同一個 segmentId 會再推一次,並帶 enhanced: true。
digest.updatesections[]滾動紀要:{ title, points[], confirmed }。每次推送替換上一份。
usage.updateeffectiveSamples, discardedSamples, effectiveSeconds, discardedSeconds, priceCentsPerHour, accruedCents, collectedCents, uncollectedCents, balanceCents每 15 秒一次,結束時再來一次。
session.errorcode, message, retryable, scope可恢復或致命的錯誤。
session.endedreason, enhancement, storage, billing伺服器結束了這條串流。儲存和精修各自有狀態。
session.pong—對 session.ping 的回覆。