语音唤醒Android SDK
功能简介
唤醒引擎模块包括提取特征和解码两个部分,通过对输入特定帧长的音频提取特征,在进行解码网络处理判断唤醒状态并返回。本文主要描述唤醒算法相关接口及调用流程,用于指导开发人员快速进行唤醒算法集成。
#名词解析
名词 | 说明 |
---|---|
语音唤醒 | 将待唤醒的机器(低功耗状态)或应用,用带唤醒词的语音进行唤醒。 |
#授权说明
唤醒SDK基于科大讯飞MorfeiCore AIOT架构构建,支持云端授权和本地加密芯片授权两种方式,客户可以根据实际情况选择其中一种授权方式。
云端授权方式:使用云端授权方式,设备需要具备联网能力。在启动唤醒服务前设备需要联网,否则SDK无法通过网络获取授权,SDK能力将无法使用。在购买SDK开发包后,科大讯飞为每台设备分配productid (每个产品唯一)和deviceid(每台设备唯一),开发者在启动麦克风阵列服务时通过相应接口将productid和deviceid传入SDK。
本地加密芯片授权方式:加密芯片授权方式的软硬件设计请参考《科大讯飞加密芯片ATSHA204A集成指导手册》。
#准备工作
#导入SDK
(1) 将SDK里libs目录下的所有文件复制到目标工程相对应的目录中。若目录不存在,请用户自行创建。
(2) 资源文件(.irf后缀)放置在SD卡ivw文件夹(默认)。
#配置安卓权限
#唤醒SDK接口说明
#接口调用流程
唤醒引擎工作流程包括以下几个步骤:
(1) 开启MorfeiCore服务
(2) 创建声纹引擎对象
(3) 设置状态监听
(4) 写入音频
(5) 销毁声纹引擎对象
(6) 停止MorfeiCore 服务
图3-1唤醒引擎工作流程
#接口函数列表
函数名称 | 功能简介 |
---|---|
morfeiCoreStart | 开启MorfeiCore 服务 |
morfeiCoreStop | 停止MorfeiCore 服务 |
createInstance | 创建IVW引擎对象 |
destoryInstance | 销毁IVW引擎对象 |
setListener | 设置状态监听 |
writeAudio | 写入音频 |
#返回值说明
对于开发接口,如果调用成功,返回值为int型的接口都会返回0,否则返回错误码,错误码详见aiot_errors.h。
#函数调用
#morfeiCoreStart
函数原型
public int morfeiCoreStart(String param);
功能说明
开启MorfeiCore服务,若同时使用基于MorfeiCore服务的其他SDK,则此函数只需调用一次。
返回值
如果函数调用成功返回0,失败返回错误码。
参数说明
参数名 | 参数解释 |
---|---|
param | 用户数据 |
#morfeiCoreStop
函数原型
public int morfeiCoreStop();
功能说明
停止MorfeiCore服务。
返回值
如果函数调用成功返回0,失败返回错误码。
参数说明
无
#createInstance
函数原型
public static IvwAgent createInstance(String resPath, String param1, String param2, int cbtype);
功能说明
创建引擎对象。
返回值
如果函数调用成功返回引擎对象。
参数说明
参数名 | 参数解释 |
---|---|
resPath | 加载资源的地址 |
param1 | 保留使用的参数 |
param2 | 唤醒引擎初始化参数(ivw_type:low/high,ivw_num:yyy,appid:zzz) |
cbtype | 唤醒回调接口类型,用于区分回调函数类型(0:唤醒信息回调接口) |
#destoryInstance
函数原型
public void destoryInstance();
功能说明
销毁IVW引擎对象。
返回值
如果函数调用失败,则通过状态监听接口回调返回错误码。
参数说明
无。
#setListener
函数原型
IvwListener ivwListener = new IvwListener() {
@Override
public void onWakeup(String param) {} //唤醒结果回调
@Override
public void onError(IVWError error) {} //出错回调
};
pubic void setListener(IvwListener ivwListener);
功能说明
设置状态监听。
返回值
无。
参数说明
参数名 | 参数解释 |
---|---|
param | 唤醒结果 |
error | 错误类 |
#writeAudio
函数原型
public void writeAudio(byte[] data, int dataLen);
功能说明
写入音频。
返回值
如果函数调用失败,则通过状态监听接口回调返回错误码。
参数说明
参数名 | 参数解释 |
---|---|
data | 音频数据(16k、16bit、单通道、pcm格式音频) |
dataLen | 传入音频长度,单位为字节 |