多生物特征融合验证(Multi-biometrics Fusion Verification,简称MFV)平台是科大讯飞推出的新一代个人身份验证平台。功能上支持1:1单一验证,1:1 融合验证,1:N鉴别。生物特征上支持人脸、声纹,并将在未来支持指纹、虹膜等其他特征信息。
1.1. 基本介绍
MFV目前提供的功能组合如下表所示:
1:1单一验证 | 1:1融合验证 | 1:N鉴别 | |
---|---|---|---|
人脸 | 人脸验证 | 人脸声纹融合验证 | 人脸鉴别 |
声纹 | 声纹验证 | 人脸声纹融合验证 | 声纹鉴别 |
MFV相关的概念如下表所示:
概念 | 英文标识 | 说明 | |
---|---|---|---|
用户id | auth_id | 用户身份的唯一标识。 | |
组id | group_id | 组的唯一标识。组被用来限定1:N鉴别的用户范围。 | |
特征注册 | enroll | 上传用户特征数据,在云端生成特征模型。其中,人脸图像数据的大小应控制在200K以下。 | |
特征验证 | verify | 上传用户特征数据,云端将其与已注册的特征模型进行比对,返回结果(相似度、是否通过验证等)。 | |
融合验证 | mixed verify | 上传用户多项特征数据,云端将其与已注册的多项特征模型进行比对,返回结果(综合相似度、是否通过验证等)。 | |
特征鉴别 | identify | 上传用户特征数据,并指定鉴别组id,云端将上传数据与组内用户对应的已注册的特征模型进行比对,返回结果(相似度排行、用户名称)。 | |
业务场景 | scenes | 会话的场景。包括:人脸(ifr),声纹(ivp),人脸声纹融合(ifr \ | ivp),组管理(ipt)。 |
业务类型 | sst | 会话的业务类型。在不同的会话场景(scenes)下有不同的业务类型。 | |
子业务类型 | ssub | 子业务类型。包括:人脸(ifr),声纹(ivp),组管理(ipt)。 |
MFV业务场景与业务类型组合:
场景类型 | 人脸(ifr) | 声纹(ivp) | 人脸声纹融合 | 组管理(ipt) |
---|---|---|---|---|
注册 | √ | √ | - | - |
验证 | √ | √ | √ | - |
鉴别 | √ | √ | - | - |
子业务操作组合:
人脸(ifr) | 声纹(ivp) | 组管理(ipt) | |
---|---|---|---|
创建 | - | - | √ |
加入 | - | - | √ |
查询 | - | √ | √ |
删除 | √ | √ | √ |
密码下载 | - | √ | - |
1.2. 功能使用
1:1验证:
- 首次使用需先进行特征注册。
- 开始验证。设定各项参数,接着开启会话,上传待验证的生物特征数据,最后获取验证结果并解析。
1:N鉴别:
- 首次使用需先进行特征注册。
- 创建组。
- 将相关的用户id加入到组中。
- 开始鉴别。指定鉴别组id及各项参数,接着开启会话,上传待鉴别的生物特征数据,最后获取鉴别结果并解析。
1.2.1. 特征注册
人脸注册流程:
- 设置参数:业务场景“人脸(ifr)”,业务类型“注册(enroll)”,用户id(auth_id)。
- 设置监听,开启会话。
- 指定子业务类型“人脸(ifr)”、人脸数据内容及数据长度,然后上传数据。
- 待会话监听器返回结果,此次注册操作结束。
人脸注册示例代码:
// 人脸参数
// 设置sub 参数请求业务类型
[self.identityVerifier setParameter:@"mfv" forKey:[IFlySpeechConstant MFV_SUB]];
// 设置scenes,
// 有“ifr(人脸)”,“ivp(声纹)”,“ifr|ivp(人脸和声纹)”三种取值,
// 指明注册的特征种类
[self.identityVerifier setParameter:@"ifr" forKey:[IFlySpeechConstant MFV_SCENES]];
NSString* auth_id=self.authIdLabel.text;
[self.identityVerifier setParameter:@"enroll" forKey:[IFlySpeechConstant MFV_SST]];
// 设置delegate ,auth_id,开始会话
[self.identityVerifier setParameter:auth_id forKey:[IFlySpeechConstant MFV_AUTH_ID]];
[self.identityVerifier startWorking];
// 人脸数据参数
NSString* dwtParams=[NSString stringWithFormat:@"%@=%@,",[IFlySpeechConstant MFV_SST],@"enroll"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_AUTH_ID],auth_id];
// 压缩人脸数据并写入
NSData* data=[self.face compressedData];
[self.identityVerifier write:@"ifr" data:data offset:0 length:(int)[data length] withParams:dwtParams];
[self.identityVerifier stopWrite:@"ifr"];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error{}
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
声纹注册:
- 从云端下载声纹注册所用的数字密码文本。
- 设置参数:业务场景“声纹(ivp)”,业务类型“注册(enroll)”,用户id(auth_id)。
- 设置监听,开启会话。
- 指定子业务类型“声纹(ifr)”,设定声纹注册相关参数“训练次数(rgn)、密码内容(ptxt)、密码类型(pwdt)”,并指定声纹数据内容及长度,然后上传数据。
- 待会话监听器返回结果,此次注册操作结束。
声纹注册示例代码:
// 下载声纹密码
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant
PARAMS]];
// 设置scenes 为“ivp(声纹)”
[self.identityVerifier setParameter:@"ivp" forKey:[IFlySpeechConstant MFV_SCENES]];
// 设置密码参数
NSString* params=[NSString stringWithFormat:@"%@=%d,%@=%d,",[IFlySpeechConstant MFV_PWDT],3,[IFlySpeechConstant MFV_RGN],TOTAL_TIMES];
// 执行获取密码操作
[self.identityVerifier execute:@"ivp" cmd:@"download" params:params];
// 声纹注册
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置sub 参数请求业务类型,可选值:
// mfv(默认,融合验证),ivp(声纹),ifr(人脸)
[self.identityVerifier setParameter:@"mfv" forKey:[IFlySpeechConstant MFV_SUB]];
// 设置scenes,
// 有“ifr(人脸)”,“ivp(声纹)”,“ifr|ivp(人脸和声纹)”三种取值,
// 指明注册的特征种类
[self.identityVerifier setParameter:@"ivp" forKey:[IFlySpeechConstant MFV_SCENES]];
// 设置delegate ,auth_id,开始会话
self.identityVerifier.delegate=self;
[self.identityVerifier setParameter:auth_id forKey:[IFlySpeechConstant MFV_AUTH_ID]];
[self.identityVerifier startWorking];
// 准备声纹注册相关参数,如训练次数、密码内容和密码类型等
// 注意:注册时使用的源码需要先从语音云下载再使用,详情参见demo源码;
NSString* dwtParams=nil;
dwtParams=[NSString stringWithFormat:@"%@=%@,",[IFlySpeechConstant MFV_SST],@"enroll"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_RGN],[NSNumber numberWithInt:TOTAL_TIMES]];
NSString* dlPtxt=[numberPasswords componentsJoinedByString:@"-"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_PTXT],dlPtxt];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_PWDT],@"3"];
// 开启VAD 功能 设置VAD_BOS(前端点) VAD_EOS(后端点) 设置采样率
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant VAD_ENABLE],@"1"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant VAD_BOS],@"10000"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant VAD_EOS],@"2000"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_DATA_FORMAT],@"16000"];
// 写入音频数据,data为音频数据
// 需要开发者自行从外部录音机IFlyPcmRecorder获取,获取方法详
// 见demo源码。
// writeData可以连续多次调用,调用的时候要指定子业务类型、子业务参数、写入
// 数据及长度
NSData *audioBuffer = [NSData dataWithBytes:buffer length:size];
[self.identityVerifier write:@"ivp" data:audioBuffer offset:0 length:(int)[audioBuffer length] withParams:dwtParams];
// 写入完成后,需要调用stopWrite停止写入,在停止的时候同样需要指定子业务类型。
// 只有stopWrite之后,才会触发delegate的回调接口,返回结果或者错误。
[self.identityVerifier stopWrite:@"ivp"];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error{}
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
1.2.2. 特征验证
根据场景不同,特征验证又分为**人脸验证、声纹验证以及人脸声纹融合验证**。验证的过程和注册的过程很相似,以下是**融合验证**的示例代码。
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置sst为verify
[self.identityVerifier setParameter:@"verify" forKey:[IFlySpeechConstant MFV_SST]];
// 设置scenes,有“ifr(人脸)”,“ivp(声纹)”,“ifr|ivp(人脸和声纹)”三种取值,指明验证的// 特征种类,这里设置为“人脸+声纹”融合验证
[self.identityVerifier setParameter:@"ivp|ifr" forKey:[IFlySpeechConstant MFV_SCENES]];
[self.identityVerifier setParameter:@"mix" forKey:[IFlySpeechConstant MFV_VCM]];
// 设置delegate 、auth_id,开始会话
self.identityVerifier.delegate=self;
[self.identityVerifier setParameter:auth_id forKey:[IFlySpeechConstant MFV_AUTH_ID]];
[self.identityVerifier startWorking];
// 准备人脸参数
NSString* dwtParams=[NSString stringWithFormat:@"%@=%@,",[IFlySpeechConstant MFV_AUTH_ID],auth_id];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_SST],@"verify"];
// 写入人脸照片数据,imageData为bitmap格式
NSData* data=[self.face compressedData];
[self.identityVerifier write:@"ifr" data:data offset:0 length:(int)[data length] withParams:dwtParams];
[self.identityVerifier stopWrite:@"ifr"];
// 准备声纹验证相关参数,如密码内容和密码类型等
NSString* dwtParams=nil;
dwtParams=[NSString stringWithFormat:@"%@=%@,",[IFlySpeechConstant MFV_SST],@"verify"];
NSString* ptxt=self.numberLabel.text;
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_PTXT],ptxt];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_PWDT],@"3"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant VAD_ENABLE],@"1"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant VAD_BOS],@"10000"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant VAD_EOS],@"2000"];
dwtParams=[dwtParams stringByAppendingFormat:@"%@=%@,",[IFlySpeechConstant MFV_DATA_FORMAT],@"16000"];
// 写入音频数据,data为音频数据,需要开发者自行从外部录音机PcmRecorder获取,
// 获取方法详见demo源码。writeData可以连续多次调用。
// 调用的时候要指定子业务类型、子业务参数、写入数据及长度
NSData *audioBuffer = [NSData dataWithBytes:buffer length:size];
[self.identityVerifier write:@"ivp" data:audioBuffer offset:0 length:(int)[audioBuffer length] withParams:dwtParams];
// 音频数据写入完成
[self.identityVerifier stopWrite:@"ivp"];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error{}
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
1.2.3. 特征鉴别
根据场景不同,特征鉴别分为**人脸鉴别和声纹鉴别**。两种鉴别流程相同,以**人脸鉴别**为例。
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置业务场景
[self.identityVerifier setParameter:@"ifr" forKey:[IFlySpeechConstant MFV_SCENES]];
// 设置业务类型
[self.identityVerifier setParameter:@"identify" forKey:[IFlySpeechConstant MFV_SST]];
// 设置写入数据参数
NSString* dwtParams=[NSString stringWithFormat:@"%@=%@,group_id=%@,topc=3",[IFlySpeechConstant MFV_SST],@"identify",self.groupID];
// 开始会话
[self.identityVerifier startWorking];
// 向子业务写入数据,人脸数据可以一次写入
NSData* data=[self.face compressedData];
[self.identityVerifier write:@"ifr" data:data offset:0 length:(int)[data length] withParams:dwtParams];
// 写入完毕
[self.identityVerifier stopWrite:@"ifr"];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error{}
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
1.2.4. 模型操作
声纹模型目前支持的操作有**查询(query)、删除(delete)、密码下载(download)**三种。人脸模型目前支持**删除(delete)**操作。
声纹密码下载(download),已经在声纹模型注册的过程中展示,此处不再赘述。
以**声纹模型查询**为例:
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置场景为声纹
[self.identityVerifier setParameter:@"ivp" forKey:[IFlySpeechConstant MFV_SCENES]];
// 准备声纹验证相关参数,即密码内容和密码类型
[self.identityVerifier setParameter:[NSString stringWithFormat:@"%d",TOTAL_TIMES] forKey:[IFlySpeechConstant MFV_RGN]];
NSString* params=[NSString stringWithFormat:@"%@=%d,",[IFlySpeechConstant MFV_PWDT],3];
[self.identityVerifier setParameter:auth_id forKey:[IFlySpeechConstant MFV_AUTH_ID]];
// 调用execute方法执行操作。第一个参数为子业务类型,取值为“ivp”、“ifr”,// 第二个参数为操作类型,支持“query”(查询)、“delete”(删除)和
//“download”(密码下载)三种。
// 声纹密码下载也是通过调用execute方法,具体实现见IFlyMFVDemo源码。
[self.identityVerifier execute:@"ivp" cmd:@"query" params:params];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error{}
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
1.2.5. 组管理
组管理目前支持的操作有:**创建组、删除组、查询组用户、用户加入组以及用户退出组**。
**创建组**示例代码:
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置会话场景
[self.identityVerifier setParameter:@"ipt" forKey:[IFlySpeechConstant MFV_SCENES]];
// 用户id
NSString* authId=self.authIdLabel.text;
[self.identityVerifier setParameter:authId forKey:[IFlySpeechConstant MFV_AUTH_ID]];
// 设置模型参数,若无可以传空字符串
NSString* params =[NSString stringWithFormat:@"auth_id=%@,scope=group,group_name=%@",authId,self.groupNameText.text];
// 执行模型操作
[self.identityVerifier execute:@"ipt" cmd:@"add" params:params];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error;
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
**删除组**示例代码:
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置会话场景
[self.identityVerifier setParameter:@"ipt" forKey:[IFlySpeechConstant MFV_SCENES]];
// 用户id
NSString* authId=self.authIdLabel.text;
[self.identityVerifier setParameter:authId forKey:[IFlySpeechConstant MFV_AUTH_ID]];
// 设置模型参数,若无可以传空字符传
NSString* params =[NSString stringWithFormat:@"scope=group,group_id=%@",self.groupIdText.text];
// 执行模型操作
[self.identityVerifier execute:@"ipt" cmd:@"delete" params:params];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error{}
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
**用户加入组**示例代码:
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置会话场景
[self.identityVerifier setParameter:@"ipt" forKey:[IFlySpeechConstant MFV_SCENES]];
// 用户id
NSString* authId=self.authIdLabel.text;
[self.identityVerifier setParameter:authId forKey:[IFlySpeechConstant MFV_AUTH_ID]];
// 设置模型参数,若无可以传空字符传
NSString* params =[NSString stringWithFormat:@"auth_id=%@,scope=person,group_id=%@",authId,self.groupIdText.text];
// 执行模型操作
[self.identityVerifier execute:@"ipt" cmd:@"add" params:params];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error;
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast;
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj;
**用户退出组**示例代码:
// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 设置会话场景
[self.identityVerifier setParameter:@"ipt" forKey:[IFlySpeechConstant MFV_SCENES]];
// 用户id
NSString* authId=self.authIdLabel.text;
[self.identityVerifier setParameter:authId forKey:[IFlySpeechConstant MFV_AUTH_ID]];
// 设置模型参数,若无可以传空字符传
NSString* params =[NSString stringWithFormat:@"auth_id=%@,scope=person,group_id=%@",authId,self.groupIdText.text];
// 执行模型操作
[self.identityVerifier execute:@"ipt" cmd:@"delete" params:params];
// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onCompleted:(IFlySpeechError *)error[]
// 结果回调,results中包含有json格式结果,字段说明参考附录身份验证结果说明。
- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast{}
// 扩展接口,用于抛出音量和vad_eos消息
- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj{}
1.3. 参数设置
多生物特征融合验证平台的参数分为两种,分别为MFV主参数和子业务参数。
MFV主参数通过IFlyIdentityVerifier 的- (BOOL)setParameter:(NSString )value forKey:(NSString )key方法进行设置,参数如下表所示:
名称 | 说明 | 取值范围 | 默认值 | |
---|---|---|---|---|
auth_id | 用户id,用户身份的唯一标识 | 自拟,长度6-18位,仅包括英文、数字 | 无 | |
group_id | 通过组管理功能创建的鉴别组的唯一标识 | 长度20以内的字符串,由组管理功能创建得到,或由他人告知 | 无,在鉴别场景下必须指定 | |
scenes | 会话场景 | ifr(人脸),ivp(声纹),ifr \ | ivp(人脸+声纹),组管理(ipt) | 无,必须指定 |
sst | 会话的业务类型 | enroll(注册),verify(验证),identify(鉴别) | 无,必须指定 | |
vcm | 验证模式,仅在验证场景下使用 | sin(单一特征),mix(融合),agi(灵活) | 无,在验证场景下必须指定 | |
afc | 灵活验证保留结果时间 | 0-43200s | 无,只在vcm设置成agi时生效 | |
prot_type | 联网协议 | ssl | 非ssl协议 | |
sslcert | 证书内容 | 证书内容 | 赛门铁克安全证书(仅在prot_type=ssl时生效) |
注意:
- scenes和vcm必须组合使用:例如指定vcm为sin 则scenes只可以选择ifr 或者 ivp单独业务,vcm选择mix则scenes只可以选择ifr|ivp。另:agi(灵活)模式可以设置sences=ifr|ivp,在当次会话只发送一种业务数据,服务端保留验证结果,如在设置的时间间隔内再传入另外的业务数据即可做到混合验证。
- prot_type、sslcert参数也可在IFlySpeechUtility. createUtility时传入,之后每次会话都会生效。
- 支持服务端回调通知业务。当用户进行了注册、验证操作后,讯飞服务端发送结果消息给开发者的业务服务器,如需此服务请联系:msp_support@iflytek.com
1.3.1. 子业务参数
//以String格式的键-值对在调用
IflyIdentityVerifier的-(void)write:(NSString*)ssub data:(NSData*)data offset:(int)offset length:(int)length withParams:(NSString*)params;
//写入子业务特征数据或者调用
-(void)execute:(NSString*)ssub cmd:(NSString*)cmd params:(NSString*)params;
//执行模型操作时传入,对应于params参数。详见IFlyMFVDemo。
ivp(声纹)子业务参数:
名称 | 说明 | 取值 | 默认值 |
---|---|---|---|
rgn | 注册次数。 | 2-9 | 5(建议使用默认值,效果最好) |
ptxt | 密码文本,指定声纹密码注册时使用的声纹密码内容。 | 由服务端下发,比如数字密码所需的数字串。 | 无,必须指定 |
pwdt | 密码类型,指定声纹密码注册时使用的声纹密码类型。 | 3(数字密码)注:其他类型暂不支持。 | 无,必须指定 |
ipt(组管理)子业务参数:
名称 | 说明 | 取值 | 默认值 |
---|---|---|---|
auth_id | 用户id | 设备id,必须指定 | |
scope | 操作对象 | group(组)person(成员) | 无,必须指定 |
group_name | 创建的组名称 | 无,必须指定 | |
group_id | 加入的组id | 无,必须指定 |
结果格式说明详见 附录 中身份验证结果说明。