AIUI在交互过程中依靠AIUIMessage向SDK传递指令,依靠AIUIEvent从SDK内部向外抛出事件回调。下面将罗列这些AIUIMessage与AIUIEvent的具体取值及含义。
# AIUIMessage
注意:CMD_WAKEUP是用于手动唤醒,为了保障识别效果以及服务的稳定性,请勿频繁手动唤醒以延长交互时间。
msgType(消息类型) | 取值 | 返回 | 说明 |
CMD_GET_STATE | 1 | 有 | 获取交互状态 |
CMD_WRITE | 2 | 无 | |
CMD_STOP_WRITE | 3 | 无 | |
CMD_RESET | 4 | 无 | 重置AIUI服务的状态 服务会立即停止并重新启动,进入到待唤醒状态。 注:此命令不能用于休眠操作,休眠请使用CMD_RESET_WAKEUP。 |
CMD_START | 5 | 无 | 启动AIUI服务 当AIUI服务停止后,使用此命令启动服务。 |
CMD_STOP | 6 | 无 | 停止AIUI服务 服务停止之后,将不响应外部输入。 |
CMD_WAKEUP | 7 | 无 | |
CMD_RESET_WAKEUP | 8 | 无 | 休眠消息 AIUI服务重置为待唤醒状态。若当前为唤醒状态,发送该消息重置后会抛出EVENT_SLEEP事件。 |
CMD_SET_PARAMS | 10 | 无 | 设置参数配置 用params携带参数设置JSON字符串,具体格式参照aiui.cfg文件。 目前可以修改如下参数,实时生效
具体使用示例可参考场景切换。 |
CMD_SYNC | 13 | 有 | |
CMD_RESULT_VALIDATION_ACK | 20 | 无 | |
CMD_CLEAN_DIALOG_HISTORY | 21 | 无 | |
CMD_START_RECORD | 22 | 无 | 开始录制数据(暂只支持Android系统) |
CMD_STOP_RECORD | 23 | 无 | 停止录制数据(暂只支持Android系统) |
CMD_QUERY_SYNC_STATUS | 24 | 有 | |
CMD_TTS | 27 | 有 |
注:有返回的含义是在向 AIUI 发送一条 CMD 消息后,AIUI会抛出一个对应的EVENT_CMD_RETURN事件返回 CMD 消息的处理结果。
# AIUIEvent
eventType(事件类型) | 取值 | 说明 |
EVENT_RESULT | 1 | |
EVENT_ERROR | 2 | |
EVENT_STATE | 3 | 服务状态事件 |
EVENT_WAKEUP | 4 | 唤醒事件 arg1字段取值(自1051版本开始支持): 0 => 内部语音唤醒 1 => 外部手动唤醒(外部发送CMD_WAKEUP)。 info字段为唤醒结果JSON字符串。 |
EVENT_SLEEP | 5 | 休眠事件 当出现交互超时,服务会进入休眠状态(待唤醒),或者发送了CMD_RESET_WAKEUP时,抛出该事件。 arg1字段取值: 0 => TYPE_AUTO(自动休眠,即交互超时) 1 => TYPE_COMPEL (外部强制休眠,即发送CMD_RESET_WAKEUP)。 |
EVENT_VAD | 6 | VAD事件 当检测到输入音频的前端点后,会抛出该事件,用arg1标识前后端点或者音量信息:0(前端点)、1(音量)、2(后端点)、3(前端点超时)。 当arg1取值为1时,arg2为音量大小。 |
EVENT_CMD_RETURN | 8 | 某条CMD命令对应的返回事件 对于除CMD_GET_STATE外的有返回的命令,都会返回该事件, 用arg1标识对应的CMD命令,arg2为返回值,0表示成功,info字段为描述信息。 |
EVENT_PRE_SLEEP | 10 | 准备休眠事件 当出现交互超时,服务会先抛出准备休眠事件,用户可在接收到该事件后的10s内继续交互。若10s内存在有效交互,则重新开始交互计时;若10s内不存在有效交互,则10s后进入休眠状态。 |
EVENT_START_RECORD | 11 | 抛出该事件通知外部录音开始,用户可以开始说话 |
EVENT_STOP_RECORD | 12 | 通知外部录音停止 |
EVENT_CONNECTED_TO_SERVER | 13 | 与服务端建立起连接事件 连接建立后,才能进行数据同步等操作。 |
EVENT_SERVER_DISCONNECTED | 14 | 与服务端断开连接事件 连接断开后,将不能进行数据同步等操作。 |
EVENT_TTS | 15 |