You need to enable JavaScript to run this app.
导航
视觉理解能力
最近更新时间:2025.01.23 17:31:13首次发布时间:2025.01.06 15:26:36

在与 AI 进行实时交互时,除了语音互动外,还可以通过视觉理解让智能体能够感知用户周围的环境以及用户的行为,让实时互动更具沉浸感。RTC一站式方案结合火山引擎视觉理解模型,只需在服务端调用 StartVoiceChat 接口进行配置,即可实现 AI 实时视频互动能力。

热门应用场景

场景描述
社交陪伴识别用户的场景以及表情动作,进行实时分析并回应,让社交陪伴更有沉浸感。
游戏陪玩实时捕捉游戏画面,识别游戏人物动作,提供及时的游戏信息、打法建议等。
学习教育图像识物问答、看图解题实时问答和批改、文字识别和理解、根据图片文案创作等应用,提供更专业的陪伴。
事件检测清扫、玩手机、接打电话、闲聊等基础场景和事件检测。

使用方法

1. 构建对话式 AI 场景

参考场景搭建 Web 已实现场景搭建,且你已实现视频采集相关的功能,视频采集相关 API 说明参看startVideoCapture

如需构建Android 等其他平台对话式 AI 场景,可参看客户端 API 参考

2. 开通视觉模型。

前往火山方舟创建模型为 doubao-vision-prodoubao-vision-lite 的推理点,并填入StartVoiceChat.Config.LLMConfig.EndPointId

3. 配置 StartVoiceChat 视觉模型参数

StartVoiceChat接口配置 Config.LLMConfig.VisionConfig开启智能体视频理解能力。RTC 会根据配置对采集的视频流进行抽帧截图,将多张截图发送到视频理解模型获取回答。

  1. VisionConfig.Enable 设为 true开启大模型视觉理解能力。
  2. 填写 SnapshotConfig,配置截图流的类型、截图图片质量和尺寸、单次截图的间隔和送入大模型的数量。为达到最佳效果根据使用场景的不同,该结构的参数取值不同。可参看场景参数配置示例
  3. 填写 StorageConfig,选择将截图存储的位置。
  • 你可以选择在服务端进行缓存,会话结束后自动删除。
  • 你也可选择存储在 TOS 平台,方便后续查看。此种存储方法需要你进行以下操作:
    1. 前往 TOS 平台开通该服务,并创建存储截图的存储桶,选择存储桶所在区域。
    2. 使用主账号登陆 RTC 控制台,点击TOS 跨服务授权,以便 RTC 将抽帧截图结果上传到 TOS 平台。

4. 配置完成后,打开摄像头即可体验与视觉模型互动。

场景参数配置


针对不同的热门应用,RTC 为你推荐不同场景下视觉理解能力参数配置,比如社交陪伴场景对于识别的频次要求不高,可以降低抽帧频次和送大模型识别的图片数量,而游戏陪玩场景画面变化较快,依赖更高频次的抽帧和更多送图片数量来有更好的体验效果。你可参考以下示例代码实现更好的场景体验效果。

AI 社交

此处仅包含 LLMConfig.VisionConfig 结构,StartVoiceChat 包含其他结构的完整示例参看请求示例

POST https://rtc.volcengineapi.com?Action=StartVoiceChat&Version=2024-12-01
{
    ...
    "Config": {
        "ASRConfig": {
            ...
        },
        "TTSConfig": {
            ...
        },
        "LLMConfig": {
            ...
            "VisionConfig": {
                "Enable": true, // 开启视觉理解功能。
                "SnapshotConfig": {   
                    "StreamType": 0, // 截图流类型设置为主流。
                    "ImageDetail": "low", // 图片处理模式为低细节模式。
                    "Height": 480, //送入大模型视频帧高度为 480。
                    "Interval": 1000, // 相邻截图之间的间隔时间为 1000 毫秒。
                    "ImagesLimit": 2 // 最大发送图片数量为 2。
                },
                "StorageConfig": {
                    "Type": 1, // 存储类型设置为 TOS。
                    "TosConfig": {
                        "AccountId": "200000000", // 火山引擎账号 ID。
                        "Region": 0, // 存储区域设置为华北 2(北京)。
                        "Bucket": "visionbucket" // 你设置的存储桶名称。
                    }
                }
            }
        }
    },
    "AgentConfig": {
        ...
    }
}

游戏陪玩

POST https://rtc.volcengineapi.com?Action=StartVoiceChat&Version=2024-12-01
{
    ...
    "Config": {
        "ASRConfig": {
            ...
        },
        "TTSConfig": {
            ...
        },
        "LLMConfig": {
            ...
            "VisionConfig": {
                "Enable": true, // 开启视觉理解功能。
                "SnapshotConfig": {
                    "StreamType": 1, // 截图流类型设置为屏幕流。
                    "ImageDetail": "high", // 图片处理模式为高细节模式。
                    "Height": 720, // 送入大模型视频帧高度为 720。
                    "Interval": 200, // 相邻截图之间的间隔时间为 200 毫秒。
                    "ImagesLimit": 10 // 最大发送图片数量为 10。
                },
                "StorageConfig": {
                    "Type": 1, // 存储类型设置为 TOS。
                    "TosConfig": {
                        "AccountId": "200000000", // 火山引擎账号 ID。
                        "Region": 0, // 存储区域设置为华北 2(北京)。
                        "Bucket": "visionbucket" // 你设置的存储桶名称。
                    }
                }
            }
        }
    },
    "AgentConfig": {
        ...
    }
}

进阶玩法

很多场景希望实现用户手动标注区域来重点关注和识别区域内容,你可以使用 RTC 自定义视频处理功能 功能,在编码传输前,对视频帧进行自定义标注处理,再通过 RTC SDK进行本地预览和编码发送,实现重点关注区域的识别