全部产品

iOS Idrs Api文档

更新时间:2020-08-17 19:41:16

双录iOS SDK

IdrsSDK功能接口

+initWithUrl

函数说明

IDRSSDK初始化方法。调用此方法,SDK会自动从手机麦克风收集音频数据做激活词识别

函数原型

  1. /**
  2. 构造器
  3. @return IDRSSDK实例
  4. */
  5. + (void)initWithUrl:(NSString *)url
  6. appId:(NSString *)appId
  7. packageName:(NSString *)packageName
  8. AK:(NSString*)ak
  9. SK:(NSString*)sk
  10. success:(void (^)(id responseObject))success
  11. failure:(void (^)(NSError *error))failure;

参数说明

参数 必要性 描述
url 必须 初始化SDK,需要做激活校验。这里输入校验服务地址,例如http://console.idrs.aliyuncs.com
appId 必须 初始化SDK,需要做激活校验,这里是已经在双录质检控制台上注册的application id
packageName 必须 初始化SDK,需要做激活校验,这里是已经在双录质检控制台上注册的package name
ak 必须 初始化SDK,需要做激活校验,这里是智能双录质检平台上用户的AccessKey ID。如果是金融云用户,这里从ram控制台获取。如果是专有云用户,这里从控制台创建用户页面获取。
sk 必须 初始化SDK,需要做激活校验,这里是智能双录质检平台上用户的AccessKey Secret。如果是金融云用户,这里从ram控制台获取。如果是专有云用户,这里从控制台创建用户页面获取。
success 必须 初始化成功后的回调方法,初始化成功的IDRSSDK实例会通过responseObject返回
failure 必须 初始化失败后的回调方法

返回值

IDRSSDK实例。

+initWithAudioCaptureType

函数说明

IDRSSDK初始化方法。调用此方法,可以选择激活词识别的音频数据的获取方式:从设备麦克风中自动获取,或者从外部输入音频数据。如果从外部输入音频数据,需要调用feedAudioFrame方法。此初始化方法用于远程双录场景中。

函数原型

  1. /**
  2. 构造器
  3. @return IDRSSDK实例
  4. */
  5. + (void)initWithAudioCaptureType:(AudioCaptureType)audioCaptureType
  6. url:(NSString *)url
  7. appId:(NSString *)appId
  8. packageName:(NSString *)packageName
  9. AK:(NSString*)ak
  10. SK:(NSString*)sk
  11. success:(void (^)(id responseObject))success
  12. failure:(void (^)(NSError *error))failure;

参数说明

参数 必要性 描述
audioCaptureType 必须 枚举:AUTO_CAPTURE_AUDIO:自动从手机mic获取;FEED_CAPTURE_AUDIO:需调用者从外部提供,调用feedAudioFrame将音频输入传入
url 必须 初始化SDK,需要做激活校验。这里输入校验服务地址,例如http://console.idrs.aliyuncs.com
appId 必须 初始化SDK,需要做激活校验,这里是已经在双录质检控制台上注册的application id
packageName 必须 初始化SDK,需要做激活校验,这里是已经在双录质检控制台上注册的package name
ak 必须 初始化SDK,需要做激活校验,这里是智能双录质检平台上用户的AccessKey ID。如果是金融云用户,这里从ram控制台获取。如果是专有云用户,这里从控制台创建用户页面获取。
sk 必须 初始化SDK,需要做激活校验,这里是智能双录质检平台上用户的AccessKey Secret。如果是金融云用户,这里从ram控制台获取。如果是专有云用户,这里从控制台创建用户页面获取。
success 必须 初始化成功后的回调方法,初始化成功的IDRSSDK实例会通过responseObject返回
failure 必须 初始化失败后的回调方法

返回值

IDRSSDK实例。

-startDialog

函数说明

开启激活词检测。

函数原型

  1. // 开启激活词检测
  2. - (void)startDialog;

参数说明

返回值

-stopDialog

函数说明

结束激活词检测。

函数原型

  1. // 结束激活词检测
  2. - (void)stopDialog;

参数说明

返回值

-feedAudioFrame

函数说明

通过此方法,输入待检测激活词的音频数据。

函数原型

  1. /**
  2. 激活词外部输入数据
  3. @param voiceFrame 音频数据
  4. */
  5. - (void)feedAudioFrame:(NSData*)voiceFrame;

参数说明

参数 必要性 描述
voiceFrame 必须 音频数据

返回值

-setFaceDetectParameter

函数说明

设置人脸检测的参数。可以重置人脸检测输入算法模型的图像大小。人脸检测输入算法模型的图像默认为320,如果人脸在整个图片中占比较小,也就是人离摄像头越远,可以将此值设大一些,最大不能超过1280。值越大,检测越精确,但是耗时越大。推荐的值有: 320, 480, 640, 720, 880, 960, 1280

函数原型

  1. /**
  2. 设置人脸检测的参数
  3. @param value 参数的值。人脸检测输入的图像大小,default: 320 for faster rcnn, recommend set 320 for tiny face detecton. recomand value(tiny->large): 320, 480, 640, 720, 880, 960, 1280
  4. */
  5. - (void)setFaceDetectParameter:(float)value;

参数说明

参数 必要性 描述
value 必须 人脸检测输入算法模型的图像大小

返回值

-detectFace

函数说明

检测人脸特征值。

函数原型

  1. /**
  2. * 检测人脸特征值
  3. */
  4. - (NSArray<FaceDetectionOutput *> *)detectFace:(nonnull IDRSFaceDetectParam *)faceDetectParam;

参数说明

参数 必要性 描述
faceDetectParam 必须 人脸检测参数。IDRSFaceDetectParam详细见下文

返回值

被检测出的人脸数组

-detectIDCard

函数说明

检测身份证OCR。

函数原型

  1. // 检测身份证OCR
  2. - (IDCardDetectionOutput *)detectIDCard:(nonnull IDRSIDCardDetectParam *)idCardParam
  3. roiKey:(nonnull NSArray<NSNumber*>*)roiKey
  4. rotate:(NSNumber*)rotate
  5. isFrontCamera:(BOOL)frontCamera
  6. isDetectFrontIDCard:(BOOL)frontIDCard;

参数说明

参数 必要性 描述
idCardParam 必须 身份证检测参数。IDRSIDCardDetectParam详细见下文
roiKey 必须 身份证检测框的roi,即图像处理中的术语“感兴趣区”。就是在要处理的图像中提取出的要处理的区域。 例如@[@(0.2),@(0.2),@(0.6),@(0.6)];
这个需要和身份证标识框配合使用。如果身份证标识框绘制为:
CGRect rect = self.view.bounds;
// 身份证框位置为0.2 0.2 0.6 0.6;
CGRect scanFrame = CGRectMake(rect.size.height0.2,rect.size.width0.2, rect.size.height0.6, rect.size.width0.6);
则roi的值为@[@(0.2),@(0.2),@(0.6),@(0.6)]。
这四个值分别为标识框左上角x坐标、左上角y坐标、宽、高。
rotate 必须 角度
isFrontCamera 必须 是否是前置摄像头
isDetectFrontIDCard 必须 是否开启身份证背面识别

返回值

IDCardDetectionOutput。参考后面详细介绍。

-setHandDetectConfig

函数说明

设置手势检测参数。需要在调用detectHandGesture之前调用,才能起作用。

函数原型

  1. // 设置手势检测参数。需要在调用detectHandGesture之前调用,才能起作用
  2. -(void)setHandDetectConfig:(nonnull IDRSHandDetectionConfig *)handDetectConfig;

参数说明

参数 必要性 描述
handDetectConfig 必须 手势检测参数设置

返回值

-detectHandGesture

函数说明

手持手机动态手势检测。包括手持手机签名动作和手持手势翻页动作。

函数原型

  1. // 检测手势
  2. - (NSArray<HandDetectionOutput *> *)detectHandGesture:(nonnull IDRSHandDetectParam *)handParam

参数说明

参数 必要性 描述
handParam 必须 动态手势检测参数。IDRSHandDetectParam详细见下文

返回值

手势检测结果数组

-detectHandStaticGesture

函数说明

静态手势检测。比如1,2,3,比心等手势的识别。

函数原型

  1. // 检测静态手势
  2. - (NSArray<HandDetectionOutput *> *)detectHandStaticGesture:(nonnull IDRSHandDetectParam *)handParam;

参数说明

参数 必要性 描述
handParam 必须 静态手势检测参数。IDRSHandDetectParam详细见下文

返回值

手势检测结果数组

-checkSignClassify

函数说明

签名类型检测。检测文本是手写体还是印刷体。

函数原型

  1. // 检测文本类型
  2. -(NSArray <IDRSSignConfidenceCheck *>*)checkSignClassify:(UIImage*)image AndROI:(NSArray<NSNumber*>*)roikey;

参数说明

参数 必要性 描述
image 必须 带检测的图片。 如果是视频帧,先将视频帧转化成图片数据检测
roiKey 必须 身份证检测框的roi,即图像处理中的术语“感兴趣区”。就是在要处理的图像中提取出的要处理的区域。 例如@[@(0.2),@(0.2),@(0.6),@(0.6)];
这个需要和身份证标识框配合使用。如果身份证标识框绘制为:
CGRect rect = self.view.bounds;
// 身份证框位置为0.2 0.2 0.6 0.6;
CGRect scanFrame = CGRectMake(rect.size.height0.2,rect.size.width0.2, rect.size.height0.6, rect.size.width0.6);
则roi的值为@[@(0.2),@(0.2),@(0.6),@(0.6)]。
这四个值分别为标识框左上角x坐标、左上角y坐标、宽、高。

返回值

签名类型检测检测结果IDRSSignConfidenceCheck数组

-faceRecognitionSimilarity

函数说明

人照比对,即检测两张人脸的相似度。其中参数是人脸特征值。这些信息可以从人脸检测结果FaceDetectionOutput中获取。

函数原型

  1. // 人照比对
  2. - (float)faceRecognitionSimilarity:(nonnull NSArray<NSNumber*>*)faceFea1
  3. feature2:(nonnull NSArray<NSNumber*>*)faceFea2;

参数说明

参数 必要性 描述
faceFea1 必须 人脸1的特征值
faceFea2 必须 人脸2的特征值

返回值

相似度结果,为0-1的置信度分数。可以认为大于0.5就是一个人。

-faceTrackFromImage

函数说明

从照片中检测出人脸。

函数原型

  1. // 用图片引擎做人脸追踪
  2. - (void)faceTrackFromImage:(nonnull IDRSFaceDetectParam *)faceDetectParam
  3. faceDetectionCallback:(void(^)(NSError *error, NSArray<FaceDetectionOutput*> *faces))block;

参数说明

参数 必要性 描述
faceDetectParam 必须 待检测值
faceDetectionCallback 必须 检测结果回调

返回值

-faceTrackFromVideo

函数说明

从视频流中检测出人脸。这个视频流可以是本地双录中的摄像头数据,也可以是远程双录中的本地视频流

函数原型

  1. // 用视频引擎做人脸追踪
  2. - (void)faceTrackFromVideo:(nonnull IDRSFaceDetectParam *)faceDetectParam
  3. faceDetectionCallback:(void(^)(NSError *error, NSArray<FaceDetectionOutput*> *faces))block;

参数说明

参数 必要性 描述
faceDetectParam 必须 待检测值
faceDetectionCallback 必须 检测结果回调

返回值

-faceTrackFromRemoteVideo

函数说明

从远程双录远程视频流中检测出人脸。

函数原型

  1. // 用远端视频引擎做人脸追踪
  2. - (void)faceTrackFromRemoteVideo:(nonnull IDRSFaceDetectParam *)faceDetectParam
  3. faceDetectionCallback:(void(^)(NSError *error, NSArray<FaceDetectionOutput*> *faces))block;

参数说明

参数 必要性 描述
faceDetectParam 必须 待检测值
faceDetectionCallback 必须 检测结果回调

返回值

-startRecordWithFileName

函数说明

开始录像。

函数原型

  1. // 开始录像
  2. - (void)startRecordWithFileName:(NSString*)fileName andFilePath:(NSString*)filePath

参数说明

参数 必要性 描述
fileName 必须 录像文件名
filePath 必须 录像文件保存路径

返回值

-stopRecord

函数说明

结束录像。

函数原型

  1. // 结束录像
  2. - (void)stopRecord;

参数说明

返回值

-getLocationVideoPath

函数说明

获取本地录制视频的地址(本地双录中使用)。

函数原型

  1. //获取本地录制视频的地址(本地双录中使用)
  2. -(NSString*)getLocationVideoPath;

参数说明

返回值

本地录制视频的地址

-getAudioVideoForRecord

函数说明

录像数据的输入。sampleBuffer为录像数据,dataType则定义了输入数据的类型:音频或者视频,

函数原型

  1. // 手机摄像头捕捉音视频,为录像提供数据
  2. - (void)getAudioVideoForRecord:(nonnull CMSampleBufferRef)sampleBuffer
  3. dataType:(BufferType)dataType;

参数说明

参数 必要性 描述
sampleBuffer 必须 音频或者视频数据
dataType 必须 所输入数据的类型。枚举定义为:
CAMERA_VIDEO: 相机视频流
CAMERA_AUDIO:相机音频流
RP_Video: 录屏视频流
RP_Audio:录屏音频流
RP_AudioMic:录屏麦克风流

返回值

-startTTS

函数说明

开始TTS合成

函数原型

  1. // 开始TTS合成
  2. - (void)startTTS:(const char *)priority
  3. taskId:(const char *)taskid
  4. text:(const char *)text;

参数说明

参数 必要性 描述
priority 必须 合成优先级
taskid 可选 合成任务id。可以为空串
text 必须 待合成文字

返回值

-stopTTS

函数说明

结束TTS合成。

函数原型

  1. // 结束TTS合成
  2. - (void)stopTTS;

参数说明

返回值

-cancelTTS

函数说明

取消当前TTS合成

函数原型

  1. // 取消TTS合成
  2. - (void)cancelTTS;

参数说明

返回值

-cancelTTS

函数说明

取消当前TTS合成

函数原型

  1. // 取消TTS合成
  2. - (void)cancelTTS;

参数说明

返回值

-pauseTTS

函数说明

暂停TTS播放。

函数原型

  1. // 暂停TTS播放
  2. - (void)pauseTTS;

参数说明

返回值

-resumeTTS

函数说明

恢复TTS播放。

函数原型

  1. // 恢复TTS播放
  2. - (void)resumeTTS;

参数说明

返回值

-setTTSParam

函数说明

设置TTS参数。

函数原型

  1. // 设置TTS参数
  2. /**
  3. param: font_name:语音模型 value: (xiaoyun/xiaogang/siqi/xiaokubao/byn/ruoxi)
  4. param: mode_type:模型地址 value:0:本地模型 /1:可本地可云端/2:云端
  5. param: speed_level:语音速度 value:[0-2],默认1.0
  6. param: volume: 音量
  7. */
  8. - (void)setTTSParam:(const char *)param
  9. value:(const char *)value;

参数说明

参数 必要性 描述
param 必须 参数名
value 必须 参数值

返回值

-getTTSParam

函数说明

获取TTS参数

函数原型

  1. // 获取TTS参数
  2. -(const char *) getTTSParam:(const char *)param;

参数说明

参数 必要性 描述
param 必须 参数名

返回值

参数值

-startInitTime

函数说明

初始化meta文件计时器。

函数原型

  1. /*
  2. *初始化meta文件计时器
  3. */
  4. -(void)startInitTime;

参数说明

返回值

-saveMetaWithfileName

函数说明

保存Meta文件。

函数原型

  1. //保存Meta文件
  2. //fileName 需带后缀 filePath如果为nil或@"",则存在默认路径,
  3. -(NSString*)saveMetaWithfileName:(NSString*)fileName andfilePath:(NSString*)filePath;

参数说明

参数 必要性 描述
fileName 必须 待保存的文件名
filePath 必须 待保存的文件路径

返回值

meta文件地址

-startSegment

函数说明

meta文件配置:开始一个视频分段。

函数原型

  1. // meta文件配置:开始一个视频分段
  2. - (void)startSegment:(NSString *)sequence;

参数说明

参数 必要性 描述
sequence 必须 分段名

返回值

-endSegment

函数说明

meta文件配置:结束一个视频分段。必须先调用相应的startSegment才能调用此方法

函数原型

  1. // meta文件配置:结束一个视频分段
  2. - (void)endSegment:(NSString *)sequence;

参数说明

参数 必要性 描述
sequence 必须 分段名

返回值

-startActionInSegment

函数说明

meta文件配置:开始一个视频分段中的一个检测项。

函数原型

  1. // meta文件配置:开始一个视频分段中的一个检测项
  2. - (void)startActionInSegment:(NSString *)sequence
  3. actionName:(NSString *)actionName;

参数说明

参数 必要性 描述
sequence 必须 分段名
actionName 必须 检测动作名称

返回值

-endActionInSegment

函数说明

meta文件配置:结束一个视频分段中的一个检测项。必须先调用相应的startActionInSegment才能调用此方法。

函数原型

  1. // meta文件配置:结束一个视频分段中的一个检测项
  2. - (void)endActionInSegment:(NSString *)sequence
  3. actionName:(NSString *)actionName;

参数说明

参数 必要性 描述
sequence 必须 分段名
actionName 必须 检测动作名称

返回值

-startAddWord

函数说明

meta文件配置:开始待检测激活词。

函数原型

  1. // meta文件配置:待检测激活词
  2. - (void)startAddWord:(NSString *)word;

参数说明

参数 必要性 描述
word 必须 待检测激活词

返回值

-endAddWord

函数说明

meta文件配置:结束待检测激活词。

函数原型

  1. // meta文件配置:结束待检测激活词
  2. - (void)endAddWord:(NSString *)word;

参数说明

参数 必要性 描述
word 必须 待检测激活词

返回值

-addFace

函数说明

meta文件配置:增加人照对比中所用到的照片信息。

函数原型

  1. // meta文件配置:开始一个视频分段
  2. - (void)addFace:(NSString *)label
  3. image:(NSString *)imageBase64;

参数说明

参数 必要性 描述
label 必须 人名
imageBase64 必须 照片的base64编码

返回值

-addPolicy

函数说明

meta文件配置:增加辅助检测项信息。目前包括:身份证号和待检测文档标题。

函数原型

  1. // meta文件配置:增加一个辅助检测项信息
  2. - (void)addPolicy:(NSString *)holderIdCardNumber
  3. title:(NSString *)title;

参数说明

参数 必要性 描述
holderIdCardNumber 必须 辅助检测项身份证号
title 必须 待检测文档标题

返回值

-addDetection

函数说明

meta文件配置:增加多端检测统一码。用于远程双录中,参与各方需要添加统一码,云端检测根据这个码,将多个参与方的视频关联到一个检测任务中。

函数原型

  1. //多端检测统一码
  2. -(void)addDetection:(NSString*)detection;

参数说明

参数 必要性 描述
detection 必须 统一码

返回值

-releaseResources

函数说明

释放资源。

函数原型

  1. // 释放资源
  2. - (void)releaseResources;

参数说明

返回值

FaceDetectionOutput

参数 类型 说明
rect CGRect 人脸框
faceId NSInteger 每个检测到的人脸拥有唯一的faceID.人脸跟踪丢失以后重新被检测到,会有一个新的faceID
keyPoints CGPoint 人脸106关键点的数组
score CGFloat 人脸置信度
attributes NSDictionary 人脸属性,例如:{@”categoryvalue”:{@”label”:label, @”score”:score}}
feature NSArray 人脸特征值
livenessType int 活体类型。0是真人,1是打印/照片翻拍,2是视频翻拍
livenessScore float 活体置信度,值为0-1。
label NSString 人脸label

HandDetectionOutput

参数 类型 说明
rect CGRect 手区域
face_rect CGRect 动作主体的人脸区域
body_key_points CGPoint 手属于的人体关键点
body_key_points_score CGFloat 手属于的人体关键点的置信度[0,1]
left_or_right int 左手还是右手(左:0/右:1)
handId int 每个检测到的手拥有唯一的handID.手跟踪丢失以后重新被检测到,会有一个新的handID
phone_touched Boolean 是否手持手机
phone_touched_score CGFloat 手持手机置信度
hand_phone_action int 当前动作:0是未检测出,1是签字,2是翻页
hand_action_type int 0是静态手势,1是手机手势
hand_static_action int 静态手势类型,结果是:
enum StaticActionType {
/// 单个手势
IDRS_HAND_UNKNOWN = 0, ///< 未知手势
IDRS_HAND_BLUR = 1,
///< 模糊手势 IDRS_HAND_OK = 2, ///< OK手势
IDRS_HAND_PALM = 3, ///< 数字5/手掌手势
IDRS_HAND_FINGER = 4, ///< 数字1/食指手势
IDRS_HAND_NUM8 = 5, ///< 数字8/手枪手势
IDRS_HAND_HEART = 6, ///< 单手比心手势
IDRS_HAND_FIST = 7, ///< 拳头手势
IDRS_HAND_HOLDUP = 8, ///< 托举手势
IDRS_HAND_CONGRATULATE = 9, ///< 抱拳作揖/拜托手势
IDRS_HAND_YEAH = 10, ///< 数字2/Yeah/剪刀手手势
IDRS_HAND_LOVE = 11, ///< 双手爱心手势
IDRS_HAND_GOOD = 12, ///< 点赞/拇指向上手势
IDRS_HAND_ROCK = 13, ///< 摇滚手势
IDRS_HAND_NUM3 = 14, ///< 数字3手势
IDRS_HAND_NUM4 = 15, ///< 数字4手势
IDRS_HAND_NUM6 = 16, ///< 数字6手势
IDRS_HAND_NUM7 = 17, ///< 数字7手势
IDRS_HAND_NUM9 = 18, ///< 数字9手势
IDRS_HAND_GREETING = 19, ///< 拜年/恭贺手势
IDRS_HAND_PRAY = 20, ///< 祈祷手势
IDRS_HAND_THUMBS_DOWN = 21, ///< 拇指向下手势
IDRS_HAND_THUMBS_LEFT = 22, ///< 拇指向左手势
IDRS_HAND_THUMBS_RIGHT = 23, ///< 拇指向右手势
/// 组合手势
IDRS_HAND_HELLO = 24, ///< 双手Hello手势
/// 人脸手势;
IDRS_HAND_SILENCE = 25, ///< 安静手势};
hand_static_action_score float 静态手势分数[0, 1]

IDCardDetectionOutput

身份证检测结果对象

参数 类型 说明
name NSString 姓名
sex NSString 性别
nationality NSString 民族
birth NSString 出生
address NSString 地址
num NSString 身份证号
issue NSString 身份证背面签发机关
date NSString 身份证背面有效期

IDRSSignConfidenceCheck

签名类型检测结果

参数 类型 说明
label NSString 检测结果类型。other为未检测到;hand为手写体。print为印刷体。
confidence float 置信度。值为0-1之间的浮点数。值越大,识别结果的准确度越高

IDRSFaceDetectParam

人脸检测输入参数。目前支持三种输入类型:

1. 图片

IDRSFaceDetectInputTypeImage
必传参数:image

2. buffer数组

IDRSFaceDetectInputTypeChar
必传参数:data、format、width、height

3. PixelBufferRef

IDRSFaceDetectInputTypePixelBuffer
必传参数:buffer(CVPixelBufferRef)

参数 类型 说明
dataType IDRSFaceDetectInputType 当前输入图像类型:
IDRSFaceDetectInputTypeImage:UIImage图片数据
IDRSFaceDetectInputTypeChar: char *数据,需要同时指定图片的宽、高和图片编码方式
IDRSFaceDetectInputTypePixelBuffer:CVPixelBufferRef视频流数据
inputAngle float 输入角度
outputAngle float 输出角度
output_flip_axis float 结果是否翻转。
0:不翻转
1:沿x轴翻转
2:沿y轴翻转
buffer CVPixelBufferRef 如果dataType为
IDRSFaceDetectInputTypePixelBuffer,
则需要指定此参数
format int 如果dataType为IDRSFaceDetectInputTypeChar,
则需指定数据格式:
0: TB_PIXEL_FORMAT_YUV_NV12
1: TB_PIXEL_FORMAT_RGBA8888
2: TB_PIXEL_FORMAT_BGRA8888
image UIImage 如果dataType为
IDRSFaceDetectInputTypeImage,
则需指定此参数
data char* 如果dataType为
IDRSFaceDetectInputTypeChar,
则需指定此参数
width float 如果dataType为
IDRSFaceDetectInputTypeChar,
则需指定图片的宽
height float 如果dataType为
IDRSFaceDetectInputTypeChar,
则需指定图片的高
supportFaceLiveness BOOL 是否开启活体检测
supportFaceRecognition BOOL 是否开启人脸特征值计算
faceNetType int 所使用的人脸检测模型引擎类型:
0:图片检测引擎
1: 视频流检测引擎
2: 远端视频流检测引擎

IDRSIDCardDetectParam

身份证检测参数

参数 类型 说明
dataType IDRSIDCardInputType 输入数据类型:
IDRSIDCardInputTypePixelBuffer: 视频流CVPixelBufferRef
IDRSIDCardInputTypeRGBData:视频流的RGB数据
buffer CVPixelBufferRef 如果dataType为IDRSIDCardInputTypePixelBuffer,则需指定此参数
baseBuffer char* 如果dataType为IDRSIDCardInputTypeRGBData,则需指定此参数,为NV21的Y数据
uvBuffer char* 如果dataType为IDRSIDCardInputTypeRGBData,则需指定此参数,为NV21的UV数据
width float 如果dataType为IDRSIDCardInputTypeRGBData,则需指定图像的宽
height float 如果dataType为IDRSIDCardInputTypeRGBData,则需指定图像的高

IDRSHandDetectParam

手势检测参数

参数 类型 说明
dataType IDRSHandInputType 输入数据类型:
IDRSHandInputTypeBGRA:BGRA类型数据
IDRSHandInputTypeRGBA:RGBA类型数据
buffer CVImageBufferRef 视频流数据。摄像头采集到的是
IDRSHandInputTypeBGRA,
远程双录中拿到的是
IDRSHandInputTypeRGBA
outAngle float 角度

IDRSHandDetectionConfig

手势检测模型参数设置。通过设置这些参数,可以控制检测结果精度。

参数 类型 说明
isFaceDetect Boolean 是否开启动作主体识别
imgSize NSInteger 手部检测输入的图像大小, 默认值: 480。推荐值也是480。如果被检测人离摄像头越远,可以将此值设大。可以选择的值有:320, 480, 640, 720, 880, 960, 1280
classifyThreshold float 角度手势识别阈值[0,1], 阈值越大, 误识别越少, 但漏识别会增加, 默认值为 0.90
phoneActionIOU float 角度手势识别阈值[0,1], 阈值越大, 误识别越少, 但漏识别会增加, 默认值为 0.90
phoneActionTime float 角度手势识别阈值[0,1], 阈值越大, 误识别越少, 但漏识别会增加, 默认值为 0.90
phoneActionSign float 角度手势识别阈值[0,1], 阈值越大, 误识别越少, 但漏识别会增加, 默认值为 0.90
phoneActionScroll float 手持手机翻页阈值, 范围[0,1], 参数值越大, 手持手机翻页需要划动的范围越大, 默认值为 0.15

回调函数

函数 参数 说明
onNuiCallback NSString *result 识别出激活词后的回调。result是识别出的激活词文字
onNuiEmptyCallback NSString *result 如果是远程双录,音频是外部输入的。如果外部停止输入,所输入的音频已经检测完毕,则会回调此方法。参数可以忽略。
onRecordCallback NSString *result 结束录像后,录像文件保存结果回调。result为录像文件地址
onNuiTTSEventCallback ISDRTtsEvent event TTS语音合成事件回调。
// TTS语音合成事件
enum ISDRTtsEvent {
ISDR_TTS_EVENT_START = 0,
ISDR_TTS_EVENT_END = 1,
ISDR_TTS_EVENT_CANCEL = 2,
ISDR_TTS_EVENT_PAUSE = 3,
ISDR_TTS_EVENT_RESUME = 4,
ISDR_TTS_EVENT_ERROR = 5,
ISDR_TTS_EVENT_CACEH_START = 6,
ISDR_TTS_EVENT_CACEH_END = 7,
ISDR_TTS_EVENT_CACEH_CANCEL = 8,
ISDR_TTS_EVENT_CACEH_DELETE = 9,
ISDR_TTS_EVENT_CACEH_ERROR = 10,
ISDR_TTS_EVENT_FONT_EVENT_START = 11,
ISDR_TTS_EVENT_FONT_DOWNLOAD = 12,
ISDR_TTS_EVENT_FONT_END = 13,
ISDR_TTS_EVENT_FONT_PAUSE = 14,
ISDR_TTS_EVENT_FONT_RESUME = 15,
ISDR_TTS_EVENT_FONT_CANCEL = 16,
ISDR_TTS_EVENT_FONT_ERROR = 17
};
onNuiTTSDataCallback char text, char buffer, int len, char *taskid TTS语音合成数据回调。
text:被合成的文本。
buffer:被合成的音频数据
len:被合成音频数据长度
taskid:合成音频任务id

IDRSUtils

这里面是用于检测的图像转化帮助方法。

+convertYUVToPixelBufferRef

函数说明

将远程视频流中拿到的YUV数据转化成PixelBuffer。

函数原型

  1. + (CVPixelBufferRef)convertYUVToPixelBufferRef:(long) dataPtr
  2. dataYPtr:(long) dataYPtr
  3. dataUPtr:(long) dataUPtr
  4. dataVPtr:(long) dataVPtr
  5. strideY:(int) strideY
  6. strideU:(int) strideU
  7. strideV:(int) strideV
  8. height:(int) height
  9. width:(int) width
  10. rotation:(int) rotation
  11. stride:(int) stride
  12. timeStamp:(long long)timeStamp;

参数说明

参数 必要性 描述
dataPtr 必须 数据句柄
dataYPtr 必须 图像视频Y数据
dataUPtr 必须 图像视频U数据
dataVPtr 必须 图像视频V数据
strideY 必须 strideY
strideU 必须 strideU
strideV 必须 strideV
height 必须 图像高度
width 必须 图像宽度
rotation 必须 图像角度
stride 必须 stride
timeStamp 必须 时间戳

返回值

转化后的CVPixelBufferRef

-convertYUVToRawData

函数说明

将远程视频流中拿到的YUV数据转化成NV12数据

函数原型

  1. + (uint8_t *)convertYUVToRawData:(long) dataPtr
  2. dataYPtr:(long) dataYPtr
  3. dataUPtr:(long) dataUPtr
  4. dataVPtr:(long) dataVPtr
  5. strideY:(int) strideY
  6. strideU:(int) strideU
  7. strideV:(int) strideV
  8. height:(int) height
  9. width:(int) width
  10. rotation:(int) rotation
  11. stride:(int) stride
  12. timeStamp:(long long)timeStamp;

参数说明

参数 必要性 描述
dataPtr 必须 数据句柄
dataYPtr 必须 图像视频Y数据
dataUPtr 必须 图像视频U数据
dataVPtr 必须 图像视频V数据
strideY 必须 strideY
strideU 必须 strideU
strideV 必须 strideV
height 必须 图像高度
width 必须 图像宽度
rotation 必须 图像角度
stride 必须 stride
timeStamp 必须 时间戳

返回值

转化后的NV12数据

-convert420PixelBufferToRawData

函数说明

将远程视频流中的NV12的PixelBuffer数据转化成raw data。

函数原型

  1. + (uint8_t *)convert420PixelBufferToRawData:(CVPixelBufferRef)pixelBuffer;

参数说明

参数 必要性 描述
pixelBuffer 必须 远程视频流中的NV12的PixelBuffer数据

返回值

raw data

TTSPlayer

TTS音频播放器

-write

函数说明

输入TTS合成后的音频

函数原型

  1. + (uint8_t *)convert420PixelBufferToRawData:(CVPixelBufferRef)pixelBuffer;

参数说明

参数 必要性 描述
pixelBuffer 必须 远程视频流中的NV12的PixelBuffer数据

返回值

raw data

-play

函数说明

播放。

函数原型

  1. -(void)play;

参数说明

返回值

-pause

函数说明

暂停播放。

函数原型

  1. -(void)pause;

参数说明

返回值

-resume

函数说明

恢复播放。

函数原型

  1. -(void)resume;

参数说明

返回值

—stop

函数说明

停止播放。

函数原型

  1. -(void)stop;

参数说明

返回值

-cleanup

函数说明

清除播放音频。

函数原型

  1. -(void)cleanup;

参数说明

返回值

-onTTSPlayerEventCallback

函数说明

音频播放事件回调。

函数原型

  1. // 播放事件结果
  2. typedef void(^TTSPlayerEventCallBackBlock) (enum TTSPlayerEvent event);
  3. @property (nonatomic, copy)TTSPlayerEventCallBackBlock onTTSPlayerEventCallback; // 播放事件回调

参数说明

enum TTSPlayerEvent {
TTSPlayer_EVENT_PLAY = 0,
TTSPlayer_EVENT_STOP = 1,
TTSPlayer_EVENT_PAUSE = 2,
TTSPlayer_EVENT_RESUME = 3,
TTSPlayer_EVENT_CLEAN = 5,
};

返回值