For the complete documentation index, see llms.txt. This page is also available as Markdown.

流式转写 API

通过 WebSocket 将音频流式传输到 Convai 的 ASR 引擎,并接收实时转写。专为与 AI 角色进行低延迟、智能语音体验而设计。

流式传输实时音频输入并从 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

字符串

元数据标签,例如: TurnFinalTranscript.

language_code

字符串 / null

检测到的语言。实验性功能,可以为 null。


流式音频要求

参数
规格

编码

PCM 16 位,小端序

声道

单声道

采样率

16 kHz

推荐帧大小

50–150 毫秒

最大帧大小

约 8 MiB


控制消息

发送基于文本的 JSON 消息来管理流:

命令
示例
说明

Finalize

{"type": "finalize"}

触发服务器发送最终转写。

Close

{"type": "close"}

正常关闭 WebSocket 会话。

Stop

{"type": "stop"}

等同于 close,可能会保留会话上下文。


错误处理

错误会以结构化 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 支持环境中构建响应迅速的语音体验。

最后更新于

这有帮助吗?