[TOC]

声纹识别,主要是提供基于用户声纹特征的注册、验证服务。讯飞开放平台支持2种类型的声纹密码类型,即文本密码和数字密码,在注册时需要指定声纹类型。

~~~

//创建声纹对象

isvRec=[IFlyISVRecognizer sharedInstance];

isvRec.delegate=self;

//设置声纹工作参数

//设置密码类型,pwdt的取值为1、3,分别表示文本密码和数字密码

[isvRec setParameter:[NSString stringWithFormat:@"%d",pwdt] forKey:@"pwdt"];

~~~

pwdt的取值说明如下表所示:

|值 |说明 |

| :---: | --- |

| 1 | 文本密码。用户通过读出指定的文本内容来进行声纹注册和验证,现阶段支持的文本只有“芝麻开门”一种。 |

| 3 | 数字密码。从云端拉取一组特定的数字串(共分5组,每组8位数字),用户依次读出这5组数字进行注册,在验证过程中会生成一串特定的数字,用户通过朗读这串数字进行验证。 |

密码内容需调用接口从云端获取:

~~~

//通过调用getPasswordList方法来获取密码。

//获取密码的时候需指定声纹密码类型,pwdt为1表示固定文本密码,pwdt为3表示数字密码。

//getPasswordList可以参照demo所示。

NSArray *tmpArray=[isvRec getPasswordList:ivppwdt];

~~~

获取到密码后,接下来进行声纹注册,即要求用户朗读若干次指定的内容,这一过程也称为声纹模型的训练。

~~~

// 设置业务类型为训练

[isvRec setParameter:@"train" forKey:@"sst"];

// 设置密码类型

[isvRec setParameter:[NSString stringWithFormat:@"%d",pwdt] forKey:@"pwdt"];

// 对于文本密码和数字密码,必须设置密码的文本内容.

// ptxt的取值为“我的地盘我做主”、“移动改变生活”、“芝麻开门”或者是从云端拉取的数字密码(每8位用“-”隔开)。

[isvRec setParameter:ptxt forKey:@"ptxt"];

// 设置声纹对应的auth_id,它用于标识声纹对应的用户

[isvRec setParameter:auth_id forKey:@"auth_id"];

// 设置有效录音时间

[isvRec setParameter:@"3000" forKey:@"vad_timeout"];

// 末端静音检测时间,用于检测到静音自动停止录音

[isvRec setParameter:@"700" forKey:@"vad_speech_tail"];

// 启动训练服务

// 开始注册,当得到注册结果时,SDK会将其封装成NSDictionary对象,回调onResult方法进行处理,处理方法详见Demo示例

[isvRec startListening];

// 声纹协议IFlyISVDelegate实现

//会话结果返回回调

-(void) onResult:(NSDictionary *)dic;

//会话结束回调

-(void) onError:(IFlySpeechError *) errorCode;

//结果处理中回调

-(void) onRecognition;

//录音音量改变回调

-(void) onVolumeChanged: (int)volume;

~~~

推荐在注册声纹模型时每个用户都指定一个唯一的auth_id。auth_id的格式为:6-18个字符,为字母、数字和下划线的组合且必须以字母开头,不支持中文字符,不能包含空格。

开发者通过重写onResult方法来处理注册和验证结果。在结果result中携带错误码,用来判别注册是否成功以及出错原因,部分错误码的含义如下表所示:

| 错误码 |说明 |

| :---: | --- |

| 10106 | 缺少某个必要参数 |

| 10107 | 某个必要参数存在但无效 |

| 10110 | 引擎授权不足或者说授权客户端用户数达到上限 |

| 10114 | 操作超时 |

|10116 | 数据库中模型不存在 |

| 10212 |数据库中模型已经存在 |

| 10400 | 数据库中一般性错误,此时此ssb已经登录超过3次且均失败 |

| 10407 |APPID非法 |

|10606 |音频太短 |

## 声纹验证

声纹验证过程与声纹注册类似,不同之处仅在于“sst”参数需要设置为“verify”,其他参数的设置、验证结果的处理过程可参考上一节。

另外,为了达到较好的效果,请在声纹注册与验证过程中尽量与麦克风保持同样的距离(建议的最佳距离是15厘米左右)。若距离较远,可能会对验证通过率产生较大影响。

## 声纹模型操作

声纹注册成功后,在云端会生成一个对应的模型来存储声纹信息,声纹模型的操作即对模型进行查询和删除。

~~~

//开发者调用sendRequest方法查询或者删除模型,该函数的定义如下:

//cmd: @”query”表示查询,@”del”表示删除

//auth_id表示用户名;

//pwdt表示声纹类型;

//ptxt表示查询或者删除的密码文本;

//vid是用户注册成功后服务器返回的32位标识,查询和删除时,vid可以设置位nil;

//err是查询的错误码。 通常查询或者删除成功,该函数会返回YES,否则返回NO;

-(BOOL) sendRequest:(NSString*)cmd authid:(NSString *)auth_id pwdt:(int)pwdt ptxt:(NSString *)ptxt vid:(NSString *)vid err:(int *)err;

~~~

## 声纹业务返回结果格式和参数说明

请参见 [附录](附录.md) 声纹业务

声纹识别demo_声纹识别 · 科大讯飞MSC开发指南-iOS · 看云相关推荐

  1. 声纹识别demo_声纹识别 iOS SDK 文档

    # 声纹识别 iOS SDK 文档 # 1.简介 声纹识别(Voiceprint Recognition),是一项提取说话人声音特征和说话内容信息,自动核验说话人身份的技术.MSC SDK 声纹识别( ...

  2. 声纹识别demo_声纹识别 · JD NeuHub API Documents

    声纹识别 一.接口描述 1. 功能描述 声纹识别基于说话人的声音提供说话人确认功能. 2. 能力说明 声纹识别API提供说话人注册以及说话人确认的功能.用户可以先用声音进行注册,再根据声音进行说话人确 ...

  3. 声纹识别demo_语音识别、声纹识别的区别及测试

    姓名:李沂配 19021210904 转载自:https://blog.csdn.net/alice_tl/article/details/82319781 [嵌牛导读]:声纹识别和语音识别在原理上一 ...

  4. 声音内容识别 linux,语音支付,银行的声纹识别与声纹鉴定

    原标题:语音支付,银行的声纹识别与声纹鉴定 近日,人民网官方微博表示:声纹识别已用于部分银行.开启声纹验证,只要说出随机动态码,就能进行转账.支付等交易.专家:每个人说话时的短时频谱.声源等都有差异. ...

  5. 宠物识别api接口全开放:狗脸识别、猫脸识别、鼻纹识别、品种识别、相似度比对、图片质量检测

    依据宠物识别的各类应用场景,悦保科技全面升级宠物AI识别的API接口服务,为用户提供更全面.更具针对性的接口选择,满足宠物身份建档.品种信息鉴别.个体身份比对等需求,推动宠物产业链的智能化升级. 宠物 ...

  6. DeepKey:科学家提出一种基于脑纹独特性的多模态生物识别系统可以防范身份欺骗...

    ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 生物识别认证则包括利用个体独特的.可测量的生理和行为特征识别个体的各种技术. 传统的生物识别系统如人脸识别.虹膜.视网膜.声音和指纹技术当前被广泛应用,然而由 ...

  7. 专业的面相识别的企业|人脸识别离线SDK |人证比对API

    基本上国内每家公司都会说自己的算法牛,实际上有几家有人脸核心算法呢?国内在完全从事算法研究的总工程师人数到目前(2016年)总计不到100人,不过也没有现在问题也不大,中科院计算所山世光教授已经开源了 ...

  8. 视频图像处理平台对比_情绪管理考勤机人脸识别原理与指纹识别性能对比-微幼科技...

    随着AI人工智能技术发展越来越成熟,生物识别技术也越来越成熟.包括指纹识别.眼纹识别.虹膜识别.视网膜识别.声纹识别和人脸识别等,这些识别方式一般用于确认身份信息.考勤和支付等.那么,情绪管理考勤机人 ...

  9. 国税局发票查验中英文验证码识别最新版,识别率99.9%

    采用深度学习进行发票查验验证码模型的训练,在我电脑上模型训练的环境如下: 显卡:RTX 2080TI tensorflow-gpu:2.5.3 1 训练集和测试集的准备 发票查验的验证码分为4种类型, ...

最新文章

  1. Linux Performance
  2. 大学计算机专业副修课,计算机学院举行本科课程教学大纲修订工作研讨会
  3. PHP 实现随机字符串,可作为随机密码
  4. mysql 行列转换 动态_mysql 行列动态转换的实现(列联表,交叉表)
  5. 【Java】编写Java程序,完成从键盘输入两个运算数据,计算两数之和并输出结果...
  6. Dijkstra算法 简易理解(原创)
  7. vue学习笔记-9-tab选项卡小案例
  8. 华众 mysql_华众6.5虚拟主机管理系统SQL注入漏洞利用
  9. 在MinGW中构建GCC交叉编译器和GDB交叉调试器
  10. 访问小米路由器内置硬盘
  11. iOS开发中配置开发者中心证书
  12. 跟我一起学MiniOA:第一章 1.4 Richfaces控件(连载)
  13. explain的使用
  14. 【Java基础知识】JDBC基本操作
  15. 要用什么态度去面对生活?
  16. SELECT... FOR UPDATE 排他锁
  17. (27)STM32——光敏传感器实验笔记
  18. 企业会计准则应用事务【1】
  19. Pandas 对数值进行分箱操作的4种方法总结对比
  20. MindManager2020官方免费版下载激活版思维导图

热门文章

  1. bns服务器不可用怎么修复,DNS服务器可能不可用怎么办
  2. Youtube 视频下载
  3. 【方法】Chrome如何下载视频
  4. 大写汉字(大写汉字又称什么数码)
  5. 从冯诺伊曼结构看AI
  6. python中批量将矩形图片转化为正方形图片,并且缩放
  7. emacs下使用google-cpplint
  8. u盘内存怎么测试软件,U盘下的内存检测软件
  9. 运行删除指定文件库rimraf
  10. 【AP/AR】借项通知单和贷项通知单的区别