[TOC]

多生物特征融合验证(Multi-biometrics Fusion Verification,简称MFV)平台是科大讯飞推出的新一代个人身份验证平台。功能上支持1:1单一验证,1:1 融合验证,1:N鉴别。生物特征上支持人脸、声纹,并将在未来支持指纹、虹膜等其他特征信息。

基本介绍

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) 人脸声纹融合
(ifr \
ivp) 组管理(ipt)
注册 - -
验证 -
鉴别 - -

子业务操作组合:

人脸(ifr) 声纹(ivp) 组管理(ipt)
创建 - -
加入 - -
查询 -
删除
密码下载 - -

功能使用

1:1验证:

  1. 首次使用需先进行特征注册。
  2. 开始验证。设定各项参数,接着开启会话,上传待验证的生物特征数据,最后获取验证结果并解析。

1:N鉴别:

  1. 首次使用需先进行特征注册。
  2. 创建组。
  3. 将相关的用户id加入到组中。
  4. 开始鉴别。指定鉴别组id及各项参数,接着开启会话,上传待鉴别的生物特征数据,最后获取鉴别结果并解析。

特征注册

人脸注册流程:

  1. 设置参数:业务场景“人脸(ifr)”,业务类型“注册(enroll)”,用户id(auth_id)。
  2. 设置监听,开启会话。
  3. 指定子业务类型“人脸(ifr)”、人脸数据内容及数据长度,然后上传数据。
  4. 待会话监听器返回结果,此次注册操作结束。

人脸注册示例代码:

// 取消上次会话、清空参数
[self.identityVerifier cancel];
[self.identityVerifier setParameter:nil forKey:[IFlySpeechConstant PARAMS]];
// 人脸参数
// 设置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)onError:(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. 设置参数:业务场景“声纹(ivp)”,业务类型“注册(enroll)”,用户id(auth_id)。
  3. 设置监听,开启会话。
  4. 指定子业务类型“声纹(ifr)”,设定声纹注册相关参数“训练次数(rgn)、密码内容(ptxt)、密码类型(pwdt)”,并指定声纹数据内容及长度,然后上传数据。
  5. 待会话监听器返回结果,此次注册操作结束。

声纹注册示例代码:

// 下载声纹密码
// 取消上次会话、清空参数
[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],@"5"];
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)onError:(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]];
// 设置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= UIImageJPEGRepresentation(self.face, 1.0);
[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)onError:(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:@"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)onError:(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{}

模型操作

声纹模型目前支持的操作有查询(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)onError:(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=group,group_name=%@",authId,self.groupNameText.text];
// 执行模型操作
[self.identityVerifier execute:@"ipt" cmd:@"add" params:params];

// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onError:(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)onError:(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=group,group_id=%@",authId,self.groupIdText.text];
// 执行模型操作
[self.identityVerifier execute:@"ipt" cmd:@"query" params:params];

// 回调接口定义如下, 使用方法参考demo源码;
// 错误回调
- (void)onError:(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)onError:(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)onError:(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{}

参数设置

多生物特征融合验证平台的参数分为两种,分别为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时生效)

注意:

  1. scenes和vcm必须组合使用:例如指定vcm为sin 则scenes只可以选择ifr 或者 ivp单独业务,vcm选择mix则scenes只可以选择ifr|ivp。另:agi(灵活)模式可以设置sences=ifr|ivp,在当次会话只发送一种业务数据,服务端保留验证结果,如在设置的时间间隔内再传入另外的业务数据即可做到混合验证。
  2. prot_type、sslcert参数也可在IFlySpeechUtility. createUtility时传入,之后每次会话都会生效。
  3. 支持服务端回调通知业务。当用户进行了注册、验证操作后,讯飞服务端发送结果消息给开发者的业务服务器,如需此服务请联系:msp_support@iflytek.com

子业务参数以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 无,必须指定

结果格式说明详见 附录 中身份验证结果说明。

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-04-24 10:01:27

results matching ""

    No results matching ""