离线声纹Linux SDK

功能简介

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

名词解释

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

授权说明

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

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

相关约定说明

文档中使用的符号约定:

表 1-2 约定说明
符号 含义
[in] 表明该参数是调用时赋值的参数——输入参数
[out] 该参数在函数返回时被赋值——输出参数
[in/out] 该参数在函数调用时作为输入、函数返回时作为输出参数

声纹唤醒SDK接口说明

接口调用流程

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

(1) MorfeiCore服务初始化

(2) 声纹引擎初始化

(3) 声纹资源加载

(4) 引擎参数设置

(5) 声纹信息注册

(6) 声纹实例创建

(7) VPR回调函数注册

(8) 启动声纹实例

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

(10) 停止声纹实例

(11) 销毁声纹实例

(12) 卸载声纹资源

(13) 声纹引擎逆初始化

(14) MorfeiCore 服务逆初始化

图2-1 声纹唤醒引擎工作流程

MorfeiCore 接口函数列表

表 2-1 MorfeiCore 函数列表
函数名称 功能简介
morfeicore_start 初始化MorfeiCore 服务
morfeicore_stop 逆初始化MorfeiCore 服务
morfeicore_getversion 获取MorfeiCore版本号

VPR接口函数列表

表 2-2 VPR 函数列表
函数名称 功能简介
VPRInit 初始化VPR引擎
VPRUninit 逆初始化VPR引擎
VPRGetVersion 获取VPR引擎版本号
VPRLoadResource 加载VPR资源
VPRUnloadResource 删除VPR资源
VPRRegister 注册VPR资源
VPRCreateInst 创建VPR引擎实例
VPRDestoryInst 销毁VPR引擎实例
VPRSetListener 设置VPR回调接口
VPRGetParam 获取VPR实例参数
VPRSetParam 设置VPR实例参数
VPRStartInst 启动一个VPR实例
VPRWriteAudio 写入音频
VPRStopInst 停止一个VPR实例
VPRResetInst 重置一个VPR实例

返回值说明

对于开发接口,如果调用成功,返回值为int型的接口都会返回0,否则返回错误代码,错误代码参见aiot_errors.h。

MorfeiCore函数调用

morfeicore_start

函数原型

int morfeicore_start(const char *params, morfeicore_status_cb_t status_cb, void *user_data);

功能说明

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

返回值

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

参数说明

参数名 参数解释
params[in] 参数字符串
status_cb[in] 回调函数
user_data[in] 用户数据

status回调接口声明

typedef int ( *morfeicore_status_cb_t)( int type, int status, int param1, const void *param2, void *user_data);

回调参数说明

参数名 参数解释
type[out] 数据类型
status[out] 状态信息
param1[out] 保留参数
param2[out] 保留参数
user_data[out] 用户数据

morfeicore_stop

函数原型

int morfeicore_stop(void);

功能说明

逆初始化MorfeiCore服务。

返回值

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

morfeicore_ getversion

函数原型

const char* morfeicore_getversion(void);

功能说明

获取MorFeiCore 版本号。

返回值

如果函数调用成功返回引擎版本号。

VPR函数调用

VPRInit

函数原型

int VPRInit(struct aiotOS * param, void* reserved);

功能说明

初始化VPR引擎。

返回值

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

参数说明

参数名 参数解释
param[in] 保留使用的结构体参数
reserved[in] 接口保留参数

VPRUnInit

函数原型

int VPRUninit(void* reserved);

功能说明

逆初始化VPR引擎。

返回值

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

参数说明

参数名 参数解释
reserved[in] 接口保留参数

VPRGetVersion

函数原型

char* VPRGetVersion(void);

功能说明

获取VPR引擎版本号。

返回值

如果函数调用成功返回引擎版本号,例如:2.0.1001。

VPRLoadResource

函数原型

int VPRLoadResource(const char* res, int ressize, void* reserved);

功能说明

加载VPR资源。

返回值

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

参数说明

参数名 参数解释
res[in] 加载资源的首地址
resize[in] 资源长度
reserved[in] 接口保留参数

VPRUnloadResource

函数原型

int VPRUnloadResource(int restype, int resid);

功能说明

卸载VPR资源。

返回值

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

参数说明

参数名 参数解释
restype[in] 资源类型
resid[in] 资源ID

VPRRegister

函数原型

int VPRRegister(const char* srcres, int srcressize, const char* registerbuf, int registertype, int registerid, int registersize, char* targetres, int* targetsize);

功能说明

注册VPR资源。

返回值

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

参数说明

参数名 参数解释
srcres[in] 原始资源地址
srcressize[in] 原始资源大小
registerbuf[in] 注册音频数据地址(16k、16bit、单通道、pcm音频)
registertype[in] 注册资源类型
registered[in] 注册资源ID
registersize[in] 注册资源大小
targetres[in] 存储资源地址
targetsize[in/out] 存储资源大小

VPRCreateInst

函数原型

int VPRCreateInst(VPR_HANDLE* pvprinst);

功能说明

创建VPR引擎实例。

返回值

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

参数说明

参数名 参数解释
pvprinst[out] 实例对象句柄二级指针

VPRDestoryInst

函数原型

int VPRDestoryInst(VPR_HANDLE vprinst);

功能说明

销毁VPR引擎实例。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针

VPRSetListener

函数原型

int VPRSetListener(VPR_HANDLE  vprinst, const int cbtype, const void* listener, void* userdata);

功能说明

设置VPR回调接口。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针
cbtype[in] 参数类型:VPR_PARAM_RESULTCALLBACK 注册声纹回调函数
参数类型:IVW_PARAM_WAKEUPCALLBACK 注册唤醒回调函数
listener[in] 回调函数指针
userdata[in] 用户数据

声纹信息回调接口声明

typedef int (*VprCallBack)(void *pUserParam, const char* pVprParam);

回调参数说明

参数名 参数解释
pUserParam[out] 用户数据
pVprParam[out] 声纹信息

唤醒信息回调接口声明

typedef int (*IvwCallBack)(void *pUserParam, const char* pVprParam);

回调参数说明

参数名 参数解释
pUserParam[out] 用户数据
pVprParam[out] 唤醒信息

VPRGetParam

函数原型

int VPRGetParam(VPR_HANDLE vprinst, int paramtype, void* paramvalue, int* paramsize);

功能说明

获取VPR实例参数。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针
paramtype[in] 参数类型: VPR_PARAM_ENGINE_MODE
说 明 :获取引擎工作模式
paramvalue[out] 参数值
paramsize[in/out] 参数长度

VPRSetParam

函数原型

int VPRSetParam(VPR_HANDLE vprinst, int paramtype, void* paramvalue, int paramsize);

功能说明

设置VPR实例参数。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针
paramtype[in] 参数类型: VPR_PARAM_ENGINE_MODE
说 明 : 设置引擎模式
paramvalue[in] 参数值
paramsize[in] 参数长度

VPRStartInst

函数原型

int VPRStartInst(VPR_HANDLE vprinst);

功能说明

启动一个声纹实例。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针

VPRWriteAudio

函数原型

int VPRWriteAudio(VPR_HANDLE vprinst, const char* buf, int bufsize, int writestatus);

功能说明

写入音频。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针
buf[in] 音频数据地址(16k、16bit、单通道、pcm音频)
bufsize[in] 传入音频长度,字节为单位
writestatus[in] 当前数据状态标志

VPRStopInst

函数原型

int VPRStopInst(VPR_HANDLE vprinst);

功能说明

停止一个声纹实例。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针

VPRResetInst

函数原型

int VPRResetInst(VPR_HANDLE vprinst);

功能说明

重置一个声纹实例。

返回值

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

参数说明

参数名 参数解释
vprinst[in] 实例对象句柄指针