浏览文档目录

消息

等 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 的回复。