本文介绍如何基于设备端C SDK实现视觉相关能力,如视频对话、拍照问答。
1. 开发准备
1.1. 前置说明
- 本文依赖前置文档 “基于设备端C SDK实现聊天能力” ,请在阅读本文前先完成相关内容的学习与环境准备。
- 默认开发者已完成SDK接入,并可正常运行语音交互流程。
- 此最佳实践将会使用基于设备端C SDK实现聊天能力中的部分伪代码和交互流程。
1.2. 配置启用视觉模块
-
在百炼控制台创建多模态应用,创建完成后如下所述
创建完成后,应用卡片中显示应用 ID(以
mm_开头)和License 用量状态。若 License 显示"未购买",可单击购买获取许可。单击配置应用进入应用配置页面。 -
点击
配置应用开启视频通话或/和拍照问答或/和拍照翻译或/和极速视频通话的Agent 操作位置为技能页签下Agent区域的百炼应用列表。
2. 端侧视觉模块功能开发
视觉模块功能包括拍照问答、视频通话、拍照翻译、极速视频通话。
未进入视频通话时或未进入极速视频通话时,所有类似“我前面有什么”的问答都会触发VQA
未进入视频通话时或未进入极速视频通话时,所有类似“翻译下面前的路牌”的带翻译意图的问答都会触发拍照翻译
一旦进入视频通话或进入极速视频通话,所有图片问答逻辑由视频通话或极速视频通话处理。
2.1. SDK目录及文件结构说明
获取的SDK包解压后,与本文相关的文件及目录结构如下
获取SDK包可以参考文档:设备端C SDK
c_visual.h头文件和libc_visual.a静态库文件。
2.2. c_visual初始化
示例代码
c_visual_config 仅保存配置并注册指令回调,不分配图像缓冲区;PSRAM 图像缓冲区由 SDK 在收到云端视觉启动指令时自动分配,也可在会话前调用 c_visual_malloc 显式预分配。分配完成前,c_visual_task_handle、c_visual_image_get_buffer 等接口返回 UTIL_ERR_NO_INIT 或 NULL。此外,c_visual_config 必须在 c_mmi_init 之前调用,否则返回错误。