本文将为您介绍如何通过AICallKit SDK通过截帧实现质检功能。
使用说明
本示例主要旨在帮助您在不含UI集成的情况下,如何利用API实现该功能。
您需要提前集成AICallkit SDK。如何集成,请参见Android集成SDK、iOS集成SDK、Web集成SDK。
截帧质检支持的最低 AICallKit SDK 版本为 v2.1.0。
功能描述
在视觉理解通话场景中,如果您有质检类的需求,您可以通过调用截帧接口来实现。AICallKit SDK提供两种不同类型的策略,自动抓取用户摄像头实时画面,并推送至大模型进行分析处理,以此满足工业巡检、AI 智能眼镜应用等场景的质检需求。
功能实现
通过AICallKit SDK实现截帧质检功能,您需要调用startVisionCustomCapture
接口。AICallKit SDK提供了两种模式来满足您的质检需求:
单次截帧送检:事件触发(例如用户点击按钮),将当前的用户摄像头画面推送给大模型处理。
参数名
参数类型
参数描述
isSingle
Boolean
截帧模式,单次截帧为true、持续截帧为false。参数默认为false。
text
String
请求多模态大模型时的文本参数。
eachDuration
Int
单次截帧时长。单位:秒。
num
Int
每次截帧的图片数量。
userData
String
自定义业务信息,跟随text和图片帧一同传给大模型,用于企业做业务处理。
示例:当设置单次截帧时长为1秒,且每次截帧图片数量为2时,系统会从接口调用的起始瞬间开始计时,针对往后1秒内的视频数据进行处理。在这1秒的时间跨度中,系统将按照均匀分布的原则,精准截取2帧图片,随后将这2帧图片输送至大模型进行检测分析 。
持续截帧送检: 在指定的时间范围内,将当前的用户摄像头画面按照一定的频率自动、持续输入给大模型处理。
参数名
参数类型
参数描述
isSingle
Boolean
截帧模式,单次截帧为true、持续截帧为false。参数默认为false。
text
String
请求多模态大模型时的文本参数。
duration
Int
持续截帧的时长。单位:秒。
eachDuration
Int
单次截帧时长。单位:秒。
num
Int
每次截帧的图片数量。
userData
String
自定义业务信息,跟随text和图片帧一同传给大模型,用于企业做业务处理。
enableASR
Boolean
是否把人声的ASR结果作为大模型的输入(默认为false):
true:使用人声asr结果与截帧一起送给大模型
false:使用text字段与截帧一起送给大模型
说明该字段仅在AICallKit SDK v2.2.0以上版本支持。
示例:当设定持续截帧时长为100秒,每次截帧时长为2秒,每次截帧图片数量为2时,从接口调用启动的那一刻起,在后续连续的100秒时间内,系统将按照每2秒为一个周期,自动执行截帧操作。每个周期内,系统会均匀截取2帧图片,并将其输送至大模型进行检测分析。在此过程中,送检所采用的模式以及携带的userData始终保持不变,确保数据传输与模型处理的一致性 。
说明当前开启持续送审模式后,默认是不处理用户的说话声音的。
示例代码
请确保您的ARTCAICallKit SDK版本至少为v2.1.0。
Android
// 接通后的调用startVisionCustomCapture
// 下面实例可以在onCallBegin回调里启动自定义截帧
// 截帧参数参考ARTCAICallVisionCustomCaptureRequest的说明
public void onCallBegin() {
//参数调用示例(文本参数,截帧模式,截帧间隔时长,每秒截帧的图片数量,持续截帧的时长,自定义业务信息)
mARTCAICallEngine.startVisionCustomCapture(new ARTCAICallEngine.ARTCAICallVisionCustomCaptureRequest("XXX", false, 5, 2, 100, ""))
}
//结束截帧,根据需要调用
mARTCAICallEngine.stopVisionCustomCapture()
iOS
// 接通后的调用startVisionCustomCapture
// 下面实例可以在onCallBegin回调里启动自定义截帧
// 截帧参数参考ARTCAICallVisionCustomCaptureRequest的说明
public func onCallBegin() {
// 通话开始
let req = ARTCAICallVisionCustomCaptureRequest()
req.isSingle = false
req.text = "xxx"
req.userData = "{}"
req.duration = 100
req.eachDuration = 5
req.num = 2
_ = self.engine.startVisionCustomCapture(req: req)
}
//结束截帧,根据需要调用
_ = self.engine.stopVisionCustomCapture()
Web
// 接通后调用startVisionCustomCapture
// 截帧参数参考AICallVisionCustomCaptureRequest的说明
engine.startVisionCustomCapture({
isSingle: false,
text: 'xxx',
userData: '{}',
duration: 100,
eachDuration: 5,
num: 2,
});
//结束截帧,按需调用
engine.stopVisionCustomCapture();