截帧质检

本文将为您介绍如何通过AICallKit SDK通过截帧实现质检功能。

使用说明

  • 本示例主要旨在帮助您在不含UI集成的情况下,如何利用API实现该功能。

  • 您需要提前集成AICallkit SDK。如何集成,请参见Android集成SDKiOS集成SDKWeb集成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();