双录iOS SDK
IdrsSDK功能接口
+initWithUrl
函数说明
IDRSSDK初始化方法。调用此方法,SDK会自动从手机麦克风收集音频数据做激活词识别
函数原型
/**
构造器
@return IDRSSDK实例
*/
+ (void)initWithUrl:(NSString *)url
appId:(NSString *)appId
packageName:(NSString *)packageName
AK:(NSString*)ak
SK:(NSString*)sk
success:(void (^)(id responseObject))success
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方法。此初始化方法用于远程双录场景中。
函数原型
/**
构造器
@return IDRSSDK实例
*/
+ (void)initWithAudioCaptureType:(AudioCaptureType)audioCaptureType
url:(NSString *)url
appId:(NSString *)appId
packageName:(NSString *)packageName
AK:(NSString*)ak
SK:(NSString*)sk
success:(void (^)(id responseObject))success
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
函数说明
开启激活词检测。
函数原型
// 开启激活词检测
- (void)startDialog;
参数说明
无
返回值
无
-stopDialog
函数说明
结束激活词检测。
函数原型
// 结束激活词检测
- (void)stopDialog;
参数说明
无
返回值
无
-feedAudioFrame
函数说明
通过此方法,输入待检测激活词的音频数据。
函数原型
/**
激活词外部输入数据
@param voiceFrame 音频数据
*/
- (void)feedAudioFrame:(NSData*)voiceFrame;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
voiceFrame | 必须 | 音频数据 |
返回值
无
-setFaceDetectParameter
函数说明
设置人脸检测的参数。可以重置人脸检测输入算法模型的图像大小。人脸检测输入算法模型的图像默认为320,如果人脸在整个图片中占比较小,也就是人离摄像头越远,可以将此值设大一些,最大不能超过1280。值越大,检测越精确,但是耗时越大。推荐的值有: 320, 480, 640, 720, 880, 960, 1280
函数原型
/**
设置人脸检测的参数
@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
*/
- (void)setFaceDetectParameter:(float)value;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
value | 必须 | 人脸检测输入算法模型的图像大小 |
返回值
无
-detectFace
函数说明
检测人脸特征值。
函数原型
/**
* 检测人脸特征值
*/
- (NSArray<FaceDetectionOutput *> *)detectFace:(nonnull IDRSFaceDetectParam *)faceDetectParam;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
faceDetectParam | 必须 | 人脸检测参数。IDRSFaceDetectParam详细见下文 |
返回值
被检测出的人脸数组
-detectIDCard
函数说明
检测身份证OCR。
函数原型
// 检测身份证OCR
- (IDCardDetectionOutput *)detectIDCard:(nonnull IDRSIDCardDetectParam *)idCardParam
roiKey:(nonnull NSArray<NSNumber*>*)roiKey
rotate:(NSNumber*)rotate
isFrontCamera:(BOOL)frontCamera
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之前调用,才能起作用。
函数原型
// 设置手势检测参数。需要在调用detectHandGesture之前调用,才能起作用
-(void)setHandDetectConfig:(nonnull IDRSHandDetectionConfig *)handDetectConfig;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
handDetectConfig | 必须 | 手势检测参数设置 |
返回值
无
-detectHandGesture
函数说明
手持手机动态手势检测。包括手持手机签名动作和手持手势翻页动作。
函数原型
// 检测手势
- (NSArray<HandDetectionOutput *> *)detectHandGesture:(nonnull IDRSHandDetectParam *)handParam
参数说明
参数 | 必要性 | 描述 |
---|---|---|
handParam | 必须 | 动态手势检测参数。IDRSHandDetectParam详细见下文 |
返回值
手势检测结果数组
-detectHandStaticGesture
函数说明
静态手势检测。比如1,2,3,比心等手势的识别。
函数原型
// 检测静态手势
- (NSArray<HandDetectionOutput *> *)detectHandStaticGesture:(nonnull IDRSHandDetectParam *)handParam;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
handParam | 必须 | 静态手势检测参数。IDRSHandDetectParam详细见下文 |
返回值
手势检测结果数组
-checkSignClassify
函数说明
签名类型检测。检测文本是手写体还是印刷体。
函数原型
// 检测文本类型
-(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中获取。
函数原型
// 人照比对
- (float)faceRecognitionSimilarity:(nonnull NSArray<NSNumber*>*)faceFea1
feature2:(nonnull NSArray<NSNumber*>*)faceFea2;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
faceFea1 | 必须 | 人脸1的特征值 |
faceFea2 | 必须 | 人脸2的特征值 |
返回值
相似度结果,为0-1的置信度分数。可以认为大于0.5就是一个人。
-faceTrackFromImage
函数说明
从照片中检测出人脸。
函数原型
// 用图片引擎做人脸追踪
- (void)faceTrackFromImage:(nonnull IDRSFaceDetectParam *)faceDetectParam
faceDetectionCallback:(void(^)(NSError *error, NSArray<FaceDetectionOutput*> *faces))block;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
faceDetectParam | 必须 | 待检测值 |
faceDetectionCallback | 必须 | 检测结果回调 |
返回值
无
-faceTrackFromVideo
函数说明
从视频流中检测出人脸。这个视频流可以是本地双录中的摄像头数据,也可以是远程双录中的本地视频流
函数原型
// 用视频引擎做人脸追踪
- (void)faceTrackFromVideo:(nonnull IDRSFaceDetectParam *)faceDetectParam
faceDetectionCallback:(void(^)(NSError *error, NSArray<FaceDetectionOutput*> *faces))block;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
faceDetectParam | 必须 | 待检测值 |
faceDetectionCallback | 必须 | 检测结果回调 |
返回值
无
-faceTrackFromRemoteVideo
函数说明
从远程双录远程视频流中检测出人脸。
函数原型
// 用远端视频引擎做人脸追踪
- (void)faceTrackFromRemoteVideo:(nonnull IDRSFaceDetectParam *)faceDetectParam
faceDetectionCallback:(void(^)(NSError *error, NSArray<FaceDetectionOutput*> *faces))block;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
faceDetectParam | 必须 | 待检测值 |
faceDetectionCallback | 必须 | 检测结果回调 |
返回值
无
-startRecordWithFileName
函数说明
开始录像。
函数原型
// 开始录像
- (void)startRecordWithFileName:(NSString*)fileName andFilePath:(NSString*)filePath
参数说明
参数 | 必要性 | 描述 |
---|---|---|
fileName | 必须 | 录像文件名 |
filePath | 必须 | 录像文件保存路径 |
返回值
无
-stopRecord
函数说明
结束录像。
函数原型
// 结束录像
- (void)stopRecord;
参数说明
无
返回值
无
-getLocationVideoPath
函数说明
获取本地录制视频的地址(本地双录中使用)。
函数原型
//获取本地录制视频的地址(本地双录中使用)
-(NSString*)getLocationVideoPath;
参数说明
无
返回值
本地录制视频的地址
-getAudioVideoForRecord
函数说明
录像数据的输入。sampleBuffer为录像数据,dataType则定义了输入数据的类型:音频或者视频,
函数原型
// 手机摄像头捕捉音视频,为录像提供数据
- (void)getAudioVideoForRecord:(nonnull CMSampleBufferRef)sampleBuffer
dataType:(BufferType)dataType;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
sampleBuffer | 必须 | 音频或者视频数据 |
dataType | 必须 | 所输入数据的类型。枚举定义为: CAMERA_VIDEO: 相机视频流 CAMERA_AUDIO:相机音频流 RP_Video: 录屏视频流 RP_Audio:录屏音频流 RP_AudioMic:录屏麦克风流 |
返回值
无
-startTTS
函数说明
开始TTS合成
函数原型
// 开始TTS合成
- (void)startTTS:(const char *)priority
taskId:(const char *)taskid
text:(const char *)text;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
priority | 必须 | 合成优先级 |
taskid | 可选 | 合成任务id。可以为空串 |
text | 必须 | 待合成文字 |
返回值
无
-stopTTS
函数说明
结束TTS合成。
函数原型
// 结束TTS合成
- (void)stopTTS;
参数说明
无
返回值
无
-cancelTTS
函数说明
取消当前TTS合成
函数原型
// 取消TTS合成
- (void)cancelTTS;
参数说明
无
返回值
无
-cancelTTS
函数说明
取消当前TTS合成
函数原型
// 取消TTS合成
- (void)cancelTTS;
参数说明
无
返回值
无
-pauseTTS
函数说明
暂停TTS播放。
函数原型
// 暂停TTS播放
- (void)pauseTTS;
参数说明
无
返回值
无
-resumeTTS
函数说明
恢复TTS播放。
函数原型
// 恢复TTS播放
- (void)resumeTTS;
参数说明
无
返回值
无
-setTTSParam
函数说明
设置TTS参数。
函数原型
// 设置TTS参数
/**
param: font_name:语音模型 value: (xiaoyun/xiaogang/siqi/xiaokubao/byn/ruoxi)
param: mode_type:模型地址 value:0:本地模型 /1:可本地可云端/2:云端
param: speed_level:语音速度 value:[0-2],默认1.0
param: volume: 音量
*/
- (void)setTTSParam:(const char *)param
value:(const char *)value;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
param | 必须 | 参数名 |
value | 必须 | 参数值 |
返回值
无
-getTTSParam
函数说明
获取TTS参数
函数原型
// 获取TTS参数
-(const char *) getTTSParam:(const char *)param;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
param | 必须 | 参数名 |
返回值
参数值
-startInitTime
函数说明
初始化meta文件计时器。
函数原型
/*
*初始化meta文件计时器
*/
-(void)startInitTime;
参数说明
无
返回值
无
-saveMetaWithfileName
函数说明
保存Meta文件。
函数原型
//保存Meta文件
//fileName 需带后缀 filePath如果为nil或@"",则存在默认路径,
-(NSString*)saveMetaWithfileName:(NSString*)fileName andfilePath:(NSString*)filePath;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
fileName | 必须 | 待保存的文件名 |
filePath | 必须 | 待保存的文件路径 |
返回值
meta文件地址
-startSegment
函数说明
meta文件配置:开始一个视频分段。
函数原型
// meta文件配置:开始一个视频分段
- (void)startSegment:(NSString *)sequence;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
sequence | 必须 | 分段名 |
返回值
无
-endSegment
函数说明
meta文件配置:结束一个视频分段。必须先调用相应的startSegment才能调用此方法
函数原型
// meta文件配置:结束一个视频分段
- (void)endSegment:(NSString *)sequence;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
sequence | 必须 | 分段名 |
返回值
无
-startActionInSegment
函数说明
meta文件配置:开始一个视频分段中的一个检测项。
函数原型
// meta文件配置:开始一个视频分段中的一个检测项
- (void)startActionInSegment:(NSString *)sequence
actionName:(NSString *)actionName;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
sequence | 必须 | 分段名 |
actionName | 必须 | 检测动作名称 |
返回值
无
-endActionInSegment
函数说明
meta文件配置:结束一个视频分段中的一个检测项。必须先调用相应的startActionInSegment才能调用此方法。
函数原型
// meta文件配置:结束一个视频分段中的一个检测项
- (void)endActionInSegment:(NSString *)sequence
actionName:(NSString *)actionName;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
sequence | 必须 | 分段名 |
actionName | 必须 | 检测动作名称 |
返回值
无
-startAddWord
函数说明
meta文件配置:开始待检测激活词。
函数原型
// meta文件配置:待检测激活词
- (void)startAddWord:(NSString *)word;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
word | 必须 | 待检测激活词 |
返回值
无
-endAddWord
函数说明
meta文件配置:结束待检测激活词。
函数原型
// meta文件配置:结束待检测激活词
- (void)endAddWord:(NSString *)word;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
word | 必须 | 待检测激活词 |
返回值
无
-addFace
函数说明
meta文件配置:增加人照对比中所用到的照片信息。
函数原型
// meta文件配置:开始一个视频分段
- (void)addFace:(NSString *)label
image:(NSString *)imageBase64;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
label | 必须 | 人名 |
imageBase64 | 必须 | 照片的base64编码 |
返回值
无
-addPolicy
函数说明
meta文件配置:增加辅助检测项信息。目前包括:身份证号和待检测文档标题。
函数原型
// meta文件配置:增加一个辅助检测项信息
- (void)addPolicy:(NSString *)holderIdCardNumber
title:(NSString *)title;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
holderIdCardNumber | 必须 | 辅助检测项身份证号 |
title | 必须 | 待检测文档标题 |
返回值
无
-addDetection
函数说明
meta文件配置:增加多端检测统一码。用于远程双录中,参与各方需要添加统一码,云端检测根据这个码,将多个参与方的视频关联到一个检测任务中。
函数原型
//多端检测统一码
-(void)addDetection:(NSString*)detection;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
detection | 必须 | 统一码 |
返回值
无
-releaseResources
函数说明
释放资源。
函数原型
// 释放资源
- (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。
函数原型
+ (CVPixelBufferRef)convertYUVToPixelBufferRef:(long) dataPtr
dataYPtr:(long) dataYPtr
dataUPtr:(long) dataUPtr
dataVPtr:(long) dataVPtr
strideY:(int) strideY
strideU:(int) strideU
strideV:(int) strideV
height:(int) height
width:(int) width
rotation:(int) rotation
stride:(int) stride
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数据
函数原型
+ (uint8_t *)convertYUVToRawData:(long) dataPtr
dataYPtr:(long) dataYPtr
dataUPtr:(long) dataUPtr
dataVPtr:(long) dataVPtr
strideY:(int) strideY
strideU:(int) strideU
strideV:(int) strideV
height:(int) height
width:(int) width
rotation:(int) rotation
stride:(int) stride
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。
函数原型
+ (uint8_t *)convert420PixelBufferToRawData:(CVPixelBufferRef)pixelBuffer;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
pixelBuffer | 必须 | 远程视频流中的NV12的PixelBuffer数据 |
返回值
raw data
TTSPlayer
TTS音频播放器
-write
函数说明
输入TTS合成后的音频
函数原型
+ (uint8_t *)convert420PixelBufferToRawData:(CVPixelBufferRef)pixelBuffer;
参数说明
参数 | 必要性 | 描述 |
---|---|---|
pixelBuffer | 必须 | 远程视频流中的NV12的PixelBuffer数据 |
返回值
raw data
-play
函数说明
播放。
函数原型
-(void)play;
参数说明
无
返回值
无
-pause
函数说明
暂停播放。
函数原型
-(void)pause;
参数说明
无
返回值
无
-resume
函数说明
恢复播放。
函数原型
-(void)resume;
参数说明
无
返回值
无
—stop
函数说明
停止播放。
函数原型
-(void)stop;
参数说明
无
返回值
无
-cleanup
函数说明
清除播放音频。
函数原型
-(void)cleanup;
参数说明
无
返回值
无
-onTTSPlayerEventCallback
函数说明
音频播放事件回调。
函数原型
// 播放事件结果
typedef void(^TTSPlayerEventCallBackBlock) (enum TTSPlayerEvent event);
@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,
};
返回值
无