实时语音接口是什么
它做的是双向语音到语音对话:客户端持续把麦克风音频推进长连接,模型边听边生成,用户插话时可以打断当前回复,同时支持工具调用。相比「录音转写、生成回复、再合成语音」的串行链路,实时接口省掉中间环节,端到端延迟明显更低,也保留了语调与停顿。代价是长连接管理、打断语义与音频计费口径都比文本接口复杂得多。
基本信息
| 传输方式 | WebSocket 或 WebRTC,移动端弱网环境优先 WebRTC |
|---|---|
| 核心能力 | 流式音频双向传输、用户打断、实时转写、工具调用 |
| 代表实现 | OpenAI Realtime 接口、Google Gemini Live 接口 |
| 计费口径 | 按音频输入输出 token 或按连接时长,单价通常高于文本 |
| 会话管理 | 会话时长上限、静音裁剪、打断策略都需要在业务层设计 |
| 密钥安全 | 密钥不放在客户端,通常由服务端签发临时凭证再建连 |
典型使用场景
- 语音助手与口语陪练:要求低延迟并能随时打断,串行链路体验无法接受
- 电话客服:与语音网关打通后替代传统按键菜单,需要处理电话侧中断
- 实时会议记录与字幕:边说话边出文本,延迟要求高于离线转写
- 车载、智能音箱等端侧设备:交互以语音为主,需要稳定的长连接重连
- 边说边执行的操作类场景:语音中触发工具调用,例如查订单、改日程
连接与交互流程
连接与交互流程
# 服务端 WebSocket 连接(示例形态,事件名与字段以当前版本文档为准)
wss://api.openai.com/v1/realtime
# 1) 建连时携带服务端签发的临时凭证,或使用标准密钥在服务端建连
# 2) 发送会话配置:模型、语音音色、输出模态、工具定义
# 3) 客户端持续推入音频分片,服务端回传音频增量与转写事件
# 4) 检测到用户插话:取消当前响应,清空待播音频,随即开始新一轮
# 5) 会话结束或超时:关闭连接并结算,移动端按退避策略重连交互环节与要点
| 环节 | 方向 | 要点 |
|---|---|---|
| 会话配置 | 客户端到服务端 | 模型、音色、输出模态在开场一次性设定 |
| 音频推流 | 客户端到服务端 | 分片大小影响延迟,过小增加事件开销 |
| 音频回传 | 服务端到客户端 | 边收边播,需本地缓冲以避免抖动断续 |
| 打断 | 双向 | 取消当前响应并丢弃未播音频,否则会出现答非所问 |
| 转写 | 服务端到客户端 | 用于展示与留档,注意与音频的时间对齐 |
实时语音的成本与在线时长强相关:静音检测裁剪、会话最长时长限制、离开页面自动挂断,这三项业务层设计对账单的影响往往比模型选型更大。
不要把长期密钥下发到浏览器或端侧:客户端代码可被反编译,凭证一旦泄露等于把账号额度对外开放,正确做法是服务端签发短时效凭证或由服务端代理建连。