离线声纹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 |