离线声纹Android SDK

功能简介

声纹识别SDK基于科大讯飞MorfeiCore AIOT架构构建,通过说话人特定的语音片段,利用声纹识别技术,对说话人的身份进行判断。本文主要描述声纹识别相关接口及调用流程,用于指导开发人员快速进行声纹识别集成。

名词解释

表 1-1 名词解释
名词 说明
声纹识别 根据语音中反映的说话人生理和行为特征,自动识别说话人身份的生物识别技术。
VPR Voiceprint Recognition

授权说明

授权方式目前只支持云端授权方式。

云端授权方式:使用云端授权方式,设备需要具备联网能力。在启动声纹识别服务前设备需要联网,否则SDK无法通过网络获取授权,SDK能力将无法使用。在购买SDK开发包后,科大讯飞为每台设备分配productid (每个产品唯一)和deviceid(每台设备唯一),开发者在启动声纹识别服务时通过相应接口将productid和deviceid传入SDK。

准备工作

导入SDK

(1) 将SDK里libs目录下的所有文件复制到目标工程相对应的目录中。若目录不存在,请用户自行创建。

(2) 资源文件(.bin后缀)放置在SD卡vpr文件夹(默认)。

配置安卓权限

图2-1 配置安卓权限

声纹识别SDK接口说明

接口调用流程

声纹识别接口基本功能使用,调用流程包括以下几个步骤(图3-1):

(1)开启MorfeiCore服务

(2)创建声纹引擎对象

(3)设置状态监听

(4)设置引擎参数

(5)注册声纹信息

(6)写入音频,回调抛出识别结果

(7)删除声纹信息

(8)销毁声纹引擎对象

(9)停止MorfeiCore 服务

图3-1 声纹引擎工作流程

接口函数列表

表 3-1 函数列表
函数名称 功能简介
morfeiCoreStart 开启MorfeiCore服务
morfeiCoreStop 停止MorfeiCore服务
createInstance 创建VPR引擎对象
destoryInstance 销毁VPR引擎对象
setListener 设置状态监听
setParam 设置引擎参数
registerRes 注册声纹信息
writeAudio 写入音频
deleteRes 删除声纹信息

返回值说明

对于开发接口,如果调用失败,状态监听接口会返回错误代码,错误代码参见aiot_errors.h。

函数调用

morfeiCoreStart

函数原型

public int morfeiCoreStart(String param);

功能说明

开启MorfeiCore服务,若同时使用基于MorfeiCore服务的其他SDK,则此函数只需调用一次。

返回值

如果函数调用成功返回0,失败返回错误码。

参数说明

参数名 参数解释
params 用户数据

morfeiCoreStop

函数原型

public int morfeiCoreStop();

功能说明

停止MorfeiCore服务。

返回值

如果函数调用成功返回0,失败返回错误码。

参数说明

无。

createInstance

函数原型

public static VprAgent createInstance();

功能说明

创建引擎对象。

返回值

如果函数调用成功,返回引擎对象。

参数说明

无。

destoryInstance

函数原型

public void destoryInstance();

功能说明

销毁VPR引擎对象。

返回值

如果函数调用失败,则通过状态监听接口回调返回错误码。

参数说明

无。

setListener

函数原型

VprListener vprListener = new VprListener() {

  @Override

​     public void onResult(String param) {}  //声纹识别结果回调

 

  @Override

​     public void onError(VPRError error) {}  //出错回调

};

pubic void setListener(VprListener vprListener);

功能说明

设置状态监听。

参数说明

参数名 参数解释
param 声纹识别结果
error 错误类

setParam

函数原型

public void setParam(int paramtype, int paramvalue, int paramsize);

功能说明

设置引擎参数。

返回值

如果函数调用失败,则通过状态监听接口回调返回错误码。

参数说明

参数名 参数解释
paramtype 参数类型:VPR_PARAM_ENGINE_MODE
说 明 : 设置引擎模式
paramvalue 参数值
paramsize 参数长度

registerRes

函数原型

public void registerRes(String resPath, String regPath, String tarPath, int cbtype);

功能说明

注册声纹信息。

返回值

如果函数调用失败,则通过状态监听接口回调返回错误码。

参数说明

参数名 参数解释
resPath 加载资源的地址
regPath 注册音频数据的地址(16k、16bit、单通道、pcm音频)
tarPath 存储资源的地址
cbtype 参数类型:VPR_PARAM_RESULTCALLBACK 注册声纹回调函数
参数类型:IVW_PARAM_WAKEUPCALLBACK 注册唤醒回调函数

writeAudio

函数原型

public void writeAudio(String recordPath);

功能说明

写入音频。

返回值

如果函数调用失败,则通过状态监听接口回调返回错误码。

参数说明

参数名 参数解释
recordPath 音频数据地址(16k、16bit、单通道、pcm音频)

deleteRes

函数原型

public void deleteRes(int restype, int resid);

功能说明

删除声纹信息。

返回值

如果函数调用失败则通过状态监听接口回调返回错误码。

参数说明

参数名 参数解释
restype 资源类型
resid 资源id