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_START | 5 | 无 | 启动AIUI服务 当AIUI服务停止后,使用此命令启动服务。 |
CMD_STOP | 6 | 无 | 停止AIUI服务 服务停止之后,将不响应外部输入。 |
CMD_WAKEUP | 7 | 无 | |
CMD_RESET_WAKEUP | 8 | 无 | 重置唤醒状态 AIUI服务重置为待唤醒状态。若当前为唤醒状态, 发送该消息重置后会抛出EVENT_SLEEP事件。 |
CMD_SET_BEAM | 9 | 无 | |
CMD_SET_PARAMS | 10 | 无 |
具体使用示例可参考场景切换。 |
CMD_SEND_LOG | 12 | 无 | 发送应用日志到云端,可以帮助分析应用问题 需要将JSON格式的字符串放在params字段中携带。 |
CMD_SYNC | 13 | 有 | |
CMD_BUILD_GRAMMAR | 16 | 有 | |
CMD_UPDATE_LOCAL_LEXICON | 17 | 有 | 更新本地词表 当构建好本地语法之后, 可以动态更新某个槽(声明为slot,实质上为词表)的内容 以动态变更支持的说法。将需要更新的槽名称和内容组成JSON字符串, 用params字段携带。
注:只有在成功构建语法之后才能调用。 |
CMD_START_THROW_AUDIO | 18 | 无 | 开始抛出识别音频 调用之后,抛出 EVENT_AUDIO 事件。arg1为拾音波束编号设置,若当前未唤醒则会使用该波束拾音, 若已经处于唤醒状态则arg1不起作用。 |
CMD_STOP_THROW_AUDIO | 19 | 无 | 停止抛出识别音频 调用之后,停止抛出 EVENT_AUDIO 事件 |
CMD_RESULT_VALIDATION_ACK | 20 | 无 | |
CMD_CLEAN_DIALOG_HISTORY | 21 | 无 | |
CMD_START_RECORD | 22 | 无 | 开始录制数据 |
CMD_STOP_RECORD | 23 | 无 | 停止录制数据 |
CMD_QUERY_SYNC_STATUS | 24 | 有 |
注:有返回的含义是在向 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_AUDIO | 9 | 音频抛出事件 16k音频数据在data中,通过键”audio”获取,示例: byte[] audio = event.date.getByteArray(“audio”); |
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 | 与服务端断开连接事件 连接断开后,将不能进行数据同步等各种操作 |