1.1. AIUIAgent参数和消息

1.1.1. AIUI参数字段说明

参数类型说明参数名称说明
global全局参数设置scene用户定制的场景参数,不同的场景可对应不同的云端处理流程。
clean_dialog_history清除语义对话历史方式,取值:auto(默认),user(用户自己控制)。设置为auto时,在首次唤醒时消除对话历史,设置为user则需要用户发送CMD_CLEAN_DIALOG_HISTORY命令清除历史。
interact人机交互参数interact_timeout交互超时(单位:ms),即唤醒之后,如果在这段时间内无有效交互(无有效语义结果返回),则重新进入待唤醒状态,取值:[10000,180000),默认为1min。
result_timeout结果超时(单位:ms),即检测到语音后端点后一段时间内无结果返回则抛出超时错误,默认值:5000。
vad音频端点检测参数engine_typevad引擎类型,取值:meta(模型vad),fixfront(能量vad),默认值:meta。
res_type资源类型,取值:assets资源(apk工程的assets文件),res资源(apk工程的res文件),path资源(sdcard文件)。使用模型vad时必须设置。
res_path资源文件路径,使用模型vad时必须设置。
iat语音识别参数sample_rate音频采样率(单位:Hz),取值:8000,16000,默认值:16000。
speech语音业务相关参数data_source数据源,取值:user(由用户从外部写入),sdk(SDK内部录音机采集)。
interact_mode交互模式,取值:oneshot(唤醒后一次交互后即休眠),continuous(默认,唤醒后可以持续交互)。

对于有默认值的参数,若参数中不存在对应的key-value设置,即表示取默认值。若某类型参数全部使用默认值,可以将该类型从配置文件中删除。

  1. {
  2. /* login相关参数 */
  3. "login":{
  4. "appid":"XXXXXXXX"
  5. },
  6. /* 交互参数 */
  7. "interact":{
  8. "interact_timeout":"60000",
  9. "result_timeout":"5000"
  10. },
  11. /* 全局设置 */
  12. "global":{
  13. "scene":"main",
  14. "clean_dialog_history":"auto"
  15. },
  16. /* 业务相关参数 */
  17. // 本地vad参数
  18. "vad":{
  19. "vad_enable":"1",
  20. "engine_type":"meta",
  21. "res_type":"assets",
  22. "res_path":"vad/meta_vad_16k.jet"
  23. },
  24. // 识别(音频输入)参数
  25. "iat":{
  26. "sample_rate":"16000"
  27. },
  28. /* 业务流程相关参数 */
  29. // 语音业务流程控制
  30. "speech":{
  31. "data_source":"sdk"
  32. }
  33. }

1.1.2. AIUIMessage类型说明

msgType(消息类型)取值说明返回
CMD_GET_STATE1获取服务状态。
CMD_WRITE2向AIUI服务写入数据。需要在params中指定数据类型、调用的业务等,例如:”data_type=audio,sample_rate=16000”,data为待写入的二进制数据(如音频、图像、文本等)。
CMD_STOP_WRITE3停止写入数据。需要在params中指定要停止写入的数据类型,如“data_type=audio,sample_rate=16000”即停止写入音频。
CMD_RESET4重置AIUI服务的状态。服务会立即停止并重新启动,进入到待唤醒状态。
CMD_START5启动AIUI服务。当AIUI服务停止后,使用此命令启动服务。
CMD_STOP6停止AIUI服务。服务停止之后,将不响应外部输入。
CMD_WAKEUP7唤醒消息。用于手动唤醒AIUI服务,arg1为唤醒后拾音的波束号,默认为0。关于波束的定义参见《麦克风设计参考V0.7》。
CMD_RESET_WAKEUP8重置唤醒状态。AIUI服务重置为待唤醒状态。若当前为唤醒状态,发送该消息重置后会抛出EVENT_SLEEP事件。
CMD_SET_BEAM9设置麦克风阵列的拾音波束。用arg1携带拾音波束号。
CMD_SET_PARAMS10设置参数配置。用params携带参数设置JSON字符串,具体格式参照aiui.cfg文件。暂时只可以用来修改scene参数,实时生效。示例:{“global”:{“scene”:”nlp31”} } 该示例将scene修改为nlp31。修改其他参数方法也是如此,即发送一条params字段为JSON字符串(指明待修改的参数类型、名称和取值,格式参照aiui.cfg)的CMD_SET_PARAMS消息。
CMD_UPLOAD_LEXICON11上传用户词表。将用户词表按格式组成JSON字符串,放在params字段传入SDK,具体格式:{“name”:”userword”, // 词表名称“content”:”XXXX” // 词表内容},其中XXXX也为一个JSON字符串,示例:{"userword":[{"name":"我的常用词","words":["佳晨实业","蜀南庭苑","高兰路","复联二"]},{"name":"我的好友","words":["李馨琪","鹿晓雷","张集栋","周家莉","叶震珂","熊泽萌"]}]}
CMD_SEND_LOG12发送应用日志到云端,可以帮助分析应用问题。需要将JSON格式的字符串放在params字段中携带。
CMD_SYNC13同步操作。arg1字段为待同步的数据类型,取值:SYNC_DATA_STATUS(状态同步,params字段为状态JSON字符串),SYNC_DATA_INDIVIDUAL(个性化数据同步,如联系人),SYNC_DATA_ACCOUNT(第三方账号关系同步),SYNC_DATA_ATHENA_INDIVIDUAL(雅典娜个性化数据同步)。
CMD_START_SAVE14开始保存数据。params字段为待保存的数据属性,如“data_type=raw_audio”则保存阵列原始音频。
CMD_BUILD_GRAMMAR16构建本地语法。用params字段携带bnf语法内容,bnf语法规则请参见《BNF语法开发指南》。
CMD_UPDATE_LOCAL_LEXICON17更新本地词表。当构建好本地语法之后,可以动态更新某个槽(声明为slot,实质上为词表)的内容,以动态变更支持的说法。将需要更新的槽名称和内容组成JSON字符串,用params字段携带。示例:{“name”:””, “content”:”张三\n李四\n” }注:只有在刚刚成功构建语法(即发送了CMD_BUILD_GRAMMAR消息并返回成功事件)之后才能更新本地词表。

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

1.1.3. AIUIEvent 类型说明

eventType(事件类型)取值说明
EVENT_RESULT1结果事件。data字段携带结果数据,info字段为描述数据的JSON字符串。
EVENT_ERROR2出错事件。arg1字段为错误码,info字段为错误描述信息。
EVENT_STATE3服务状态事件。当向AIUI发送CMD_GET_STATE命令时抛出该事件,arg1字段取值为STATE_IDLE(空闲状态)、STATE_READY(就绪状态,待唤醒)、STATE_WORKING(工作状态,已唤醒)状态之一。
EVENT_WAKEUP4唤醒事件。info字段为唤醒结果JSON字符串。
EVENT_SLEEP5休眠事件。当出现交互超时,服务会进入休眠状态(待唤醒),或者发送了CMD_RESET_WAKEUP时,抛出该事件。arg1字段取值:TYPE_AUTO(自动休眠,即交互超时)、TYPE_COMPEL(外部强制休眠,即发送CMD_RESET_WAKEUP)。
EVENT_VAD6VAD事件。当检测到输入音频的前端点后,会抛出该事件,用arg1标识前后端点或者音量信息:0(前端点)、1(音量)、2(后端点)。当arg1取值为1时,arg2为音量大小。
EVENT_CMD_RETURN8某条CMD命令对应的返回事件。对于除CMD_GET_STATE外的有返回的命令,都会返回该事件,用arg1标识对应的CMD命令,arg2为返回值,0表示成功,info字段为描述信息。