流式转写 API
通过 WebSocket 将音频流式传输到 Convai 的 ASR 引擎,并接收实时转写。专为与 AI 角色进行低延迟、智能语音体验而设计。
此 API 仅在企业版计划中可用。
此 API 仍在开发中,目前为 Beta 功能。
流式传输实时音频输入并从 Convai 的 ASR(自动语音识别)引擎接收文本转写所需的所有相关 API 细节。
访问此端点以在基于 Convai 的应用程序和支持语音的 AI 角色中启用实时语音识别。 连接建立后,WebSocket 通道会流入音频并流出转写结果,从而实现响应迅速的对话式体验。
概述
基础 URL:
https://transcribe.convai.com
WebSocket 端点:
wss://transcribe.convai.com/stream
协议: 双向 —— 输入流式传输 16 位 PCM 音频,输出接收转写事件。
支持的语言: 英语
身份验证
请提供你的 Convai API 密钥 在初始 WebSocket 握手期间。
请求头
CONVAI-API-KEY
字符串
你的唯一 API 密钥,可在你的 Convai 账户中找到。
替代方式(查询参数)
如果无法使用请求头身份验证:
wss://transcribe.convai.com/stream?convai-api-key=<your-api-key>
如果你的 API 密钥缺失或无效,连接将立即关闭,并返回错误事件。
连接会话
wss://transcribe.convai.com/stream
说明
与 Convai 的转写服务建立实时 WebSocket 连接。
会话激活后,你可以发送二进制音频帧并接收增量(transcript.partial)和最终(transcript.final)转写结果。
会话开始示例
会话关闭示例
响应(服务器事件)主体
尽管使用的是 WebSocket(而非传统的 JSON POST),消息负载仍遵循以下结构:
type
字符串
消息类型,例如 finalize, stop,或 close.
data
对象
根据消息类型而定的可选数据字段。
WebSocket 事件参考
session.started
会话成功初始化后由服务器发送。
{"type": "session.started", "data": {"session_id": "...", "expires_at": "..."}}
session.closed
表示会话已正常结束。
{"type": "session.closed", "data": {}}
transcript.partial
部分转写更新(非最终)。
{"type": "transcript.partial", "data": {"sequence_id": 1, "text": "hel", "is_final": false}}
transcript.final
带格式或不带格式的最终转写。
{"type": "transcript.final", "data": {"sequence_id": 1, "text": "Hello world.", "is_final": true, "is_formatted": true}}
error
当发生无效数据、API 密钥问题或连接问题时返回。
{"type": "error", "data": {"message": "Invalid API key."}}
常见数据字段
sequence_id
整数
用于对转写消息排序的计数器。
text
字符串
到目前为止接收到的转写字符串。
is_final
布尔值
当当前话语的转写已最终确定时为 True。
is_formatted
布尔值
当已应用标点和大小写时为 True。
message_type
字符串
元数据标签,例如: Turn 或 FinalTranscript.
language_code
字符串 / null
检测到的语言。实验性功能,可以为 null。
流式音频要求
编码
PCM 16 位,小端序
声道
单声道
采样率
16 kHz
推荐帧大小
50–150 毫秒
最大帧大小
约 8 MiB
将音频数据作为 二进制 WebSocket 消息.
控制消息
发送基于文本的 JSON 消息来管理流:
Finalize
{"type": "finalize"}
触发服务器发送最终转写。
Close
{"type": "close"}
正常关闭 WebSocket 会话。
Stop
{"type": "stop"}
等同于 close,可能会保留会话上下文。
控制消息必须始终以 UTF-8 编码文本.
错误处理
错误会以结构化 JSON 对象的形式报告。
错误消息示例
状态码
200
OK —— 请求/连接成功。
400
Bad Request —— 负载格式错误或无效。
401
Unauthorized —— API 密钥无效或缺失。
403
Forbidden —— 当前计划未被授权访问 API。
500
内部服务器错误。
故障排查
401 Unauthorized
API 密钥无效或缺失。
请验证你的 CONVAI-API-KEY 请求头或查询参数。
未收到转写结果
音频格式不正确。
确保使用 PCM 16 位、单声道、16 kHz 编码。
频繁断开连接
空闲套接字或数据格式错误。
保持持续流式传输帧;实现重连逻辑。
缺少标点
未格式化的转写。
等待第二个 transcript.final 其带有 "is_formatted": true.
示例进展(单个话语)
当前仅支持英语。
格式化的转写(标点/大小写)是可选的,且可能稍后才出现。
示例(端到端流式客户端)
下面提供了示例实现和命令,演示如何连接到流式转写 API 并执行实时转写。
端到端流式客户端 - Python
此示例使用 Python、WebSockets 和 sounddevice 的实时麦克风输入来创建一个实时转写客户端。
要求:
Python 3.8+
pip install websockets sounddevice
文件: convai_stt_stream.py
运行步骤
输出示例
cURL - 快速连通性检查
curl 并非用于 WebSocket 流式传输。请使用它来验证 HTTPS 端点是否可达,以及你的密钥是否被接受。
预期响应:
结论
该 流式转写 API 通过 WebSocket 提供实时、低延迟的语音识别,实现流畅自然的 AI 交互。 通过集成此 API,你可以在游戏、助手或沉浸式 Convai 支持环境中构建响应迅速的语音体验。
最后更新于
这有帮助吗?