AIUI在交互过程中依靠AIUIMessage向SDK传递指令,依靠AIUIEvent从SDK内部向外抛出事件回调。下面将罗列这些AIUIMessage与AIUIEvent的具体取值及含义。

# AIUIMessage

注意:CMD_WAKEUP是用于手动唤醒,为了保障识别效果以及服务的稳定性,请勿频繁手动唤醒以延长交互时间。

msgType(消息类型) 取值 返回
说明
CMD_GET_STATE 1
CMD_WRITE 2
向AIUI服务写入数据

具体使用可参考数据写入
CMD_STOP_WRITE 3
停止写入数据

具体使用可参考数据写入
CMD_RESET 4
重置AIUI服务的状态

服务会立即停止并重新启动,进入到待唤醒状态。

注:此命令不能用于休眠操作,休眠请使用CMD_RESET_WAKEUP。
CMD_START 5
启动AIUI服务

当AIUI服务停止后,使用此命令启动服务。
CMD_STOP 6
停止AIUI服务

服务停止之后,将不响应外部输入。
CMD_WAKEUP 7
唤醒消息

用于手动唤醒AIUI服务,arg1为唤醒后拾音的波束号,默认为0。
关于波束的定义参见麦克风设计参考
CMD_RESET_WAKEUP 8
休眠消息

AIUI服务重置为待唤醒状态。若当前为唤醒状态,发送该消息重置后会抛出EVENT_SLEEP事件。
CMD_SET_PARAMS 10
设置参数配置

用params携带参数设置JSON字符串,具体格式参照aiui.cfg文件。
目前可以修改如下参数,实时生效

  • global
  • speech
  • userparams
  • tts

示例:

{
  "global":{
     "scene":"main"
   }
}

具体使用示例可参考场景切换
CMD_SYNC 13
同步个性化数据

arg1表示同步的数据类型
data表示同步的数据内容

具体使用请参考用户个性化使用文档
CMD_RESULT_VALIDATION_ACK 20
结果确认
在接收到语义、听写、后处理的结果后5s内可发送该指令对结果进行确认,AIUI会认为该条结果有效,并重新开始AIUI交互超时的计时。

关于交互超时的机制参看AIUI配置interact_timeout的解释。

具体描述与使用可参考延迟休眠
CMD_CLEAN_DIALOG_HISTORY 21
清空交互历史

具体描述与使用可参考清除历史
CMD_START_RECORD 22
开始录制数据(暂只支持Android系统)
CMD_STOP_RECORD 23
停止录制数据(暂只支持Android系统)
CMD_QUERY_SYNC_STATUS 24
查询数据同步状态

arg1表示状态查询的类型
params包含查询条件

具体使用可参考查询打包状态
CMD_TTS 27
进行语音合成

arg1表示控制语音合成命令
    params包含合成参数

    具体使用可参考云端TTS

    注:有返回的含义是在向 AIUI 发送一条 CMD 消息后,AIUI会抛出一个对应的EVENT_CMD_RETURN事件返回 CMD 消息的处理结果。

    # AIUIEvent

    eventType(事件类型) 取值
    说明
    EVENT_RESULT 1
    结果事件

    data字段携带结果数据,info字段为描述数据的JSON字符串。

    解析数据请参考结果解析
    EVENT_ERROR 2
    出错事件

    arg1字段为错误码,info字段为错误描述信息。
    错误码参考附录中错误码说明。
    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
    语音合成事件

    通知用户合成状态以及合成进度等信息,具体使用请参考云端TTS