开启音视频推流

开启音视频推流

1. 基本信息

工具名称

开启音频推流

开启音视频推流

工具编码

tQ8fCF.rtc_start_audio_stream

tQ8fCF.rtc_start_video_stream

功能描述

通过眼镜将音频流推送至 RTC 服务,三方可通过 RTC 入会收流获取到实时音频

通过眼镜将音视频流推送至 RTC 服务,三方可通过 RTC 入会收流获取到实时音视频

适用场景

实时对话问答等需要获取眼镜佩戴者音频的场景

巡检等需要获取眼镜佩戴者音视频的场景

返回方式

非流式。工具执行完成时会将推流指令返回给 Agent

当前状态

功能公测中

接入须知:

  1. 眼镜进入音视频推流状态后,采集到的音频流和视频流会实时推送到 RTC 服务器,供三方服务从 RTC 侧接收并处理。因此,接入的三方服务需要具备语音转文字(ASR)、图像识别(如需接入视频流)等能力,才能完成端到端的交互闭环。

  2. 按照详细交互协议(音视频推流完整交互协议)设计交互 API;

2. 请求参数

字段

类型

是否必填

含义

callbackToolCode

string

必填

会话流 API 对应的工具Code。开放平台通过该工具向三方发送 SESSION_START并建立SSE长连接,三方可在SSE流中发送SPEAK / STOP_OUTPUT事件

eventToolCode

string

非必填

会话事件 API 对应的工具Code,开放平台通过该工具向三方下发SESSION_CLOSE

注意,在两个编码都合法、类型都正确且互不相同时,参数校验会通过,具体的连接错误只会在运行时暴露。

3. 使用流程

  1. 按照「交互协议」准备好符合要求的 HTTP API:

    • 会话流 API:接收平台发送的SESSION_START(携带 RTC 凭证),并建立SSE长连接,随后在同一条响应流上以 SSE 持续下发 SPEAKSTOP_OUTPUT

    • 会话事件 API:接收平台发送的 SESSION_CLOSE(用户主动在眼镜端停止推流时平台下发);

  2. 进入开放平台,将上述 API 分别注册为独立的工具(需使用 API 插件)。

    • 按需配置 headers/query/path,body 参数无需配置,平台会按「交互协议」定义API的请求体;

    • 参数来源不能选择模型抽取:这两个 API 由平台在音视频推流过程中直接调用,并不是在 SKILL 编排中由模型作为工具执行,因此模型无法为其抽取参数;

  3. 编写 SKILL,在其中调用音视频推流官方工具,并将上述两个工具的编码作为参数传入,极简示例见下。

  4. 真机测试(详细操作可参考:真机);

  5. 发布(详细操作可参考:发布)。

SKILL 极简示例:

---
name: rtc-stream
description: 当用户提到"进入语音闲聊"或"进入视频闲聊"时使用。
---

一句话控制眼镜进入语音闲聊或视频闲聊:

## 流程

### 意图一:打开语音闲聊

调用 ^^tQ8fCF.rtc_start_audio_stream^^ 发起推流
调用参数:
- `callbackToolCode` 传 ^^xxxxxx.sse^^
- `eventToolCode` 传 ^^xxxxxx.http^^
如果工具调用成功,则回复:"开始闲聊吧"
如果工具调用失败,则基于错误信息组织回复话术,要求将关键信息反馈给用户。

### 意图二:打开视频闲聊

调用 ^^tQ8fCF.rtc_start_video_stream^^ 发起推流
调用参数:
- `callbackToolCode` 传 ^^xxxxxx.sse^^
- `eventToolCode` 传 ^^xxxxxx.http^^
如果工具调用成功,则回复:"开始视频闲聊吧"
如果工具调用失败,则基于错误信息组织回复话术,要求将关键信息反馈给用户。
  • xxxxxx.ssexxxxxx.http 为占位示例,需替换为在第 2 步注册的两个工具

  • 示例中 ^^{工具编码}^^ 是 SKILL 引用工具的内置语法,可在SKILL.md中通过@快速选取工具。

4. 其他

  1. 音视频的具体规格是什么?

  • 音频:16bit / 1 channel / 16kHz

  • 视频:720P @ 2fps,约 320kbps