🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## AIUIAgent参数和消息 ### 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_type|vad引擎类型,取值: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设置,即表示取默认值。若某类型参数全部使用默认值,可以将该类型从配置文件中删除。 ~~~ { /* login相关参数 */ "login":{ "appid":"XXXXXXXX" }, /* 交互参数 */ "interact":{ "interact_timeout":"60000", "result_timeout":"5000" }, /* 全局设置 */ "global":{ "scene":"main", "clean_dialog_history":"auto" }, /* 业务相关参数 */ // 本地vad参数 "vad":{ "vad_enable":"1", "engine_type":"meta", "res_type":"assets", "res_path":"vad/meta_vad_16k.jet" }, // 识别(音频输入)参数 "iat":{ "sample_rate":"16000" }, /* 业务流程相关参数 */ // 语音业务流程控制 "speech":{ "data_source":"sdk" } } ~~~ ### AIUIMessage类型说明 |msgType(消息类型)|取值|说明|返回| | --- | --- | --- | --- | |CMD_GET_STATE|1|获取服务状态。|有| |CMD_WRITE|2|向AIUI服务写入数据。需要在params中指定数据类型、调用的业务等,例如:”data_type=audio,sample_rate=16000”,data为待写入的二进制数据(如音频、图像、文本等)。|无| |CMD_STOP_WRITE|3|停止写入数据。需要在params中指定要停止写入的数据类型,如“data_type=audio,sample_rate=16000”即停止写入音频。|无| |CMD_RESET|4|重置AIUI服务的状态。服务会立即停止并重新启动,进入到待唤醒状态。|无| |CMD_START|5|启动AIUI服务。当AIUI服务停止后,使用此命令启动服务。|无| |CMD_STOP|6|停止AIUI服务。服务停止之后,将不响应外部输入。|无| |CMD_WAKEUP|7|唤醒消息。用于手动唤醒AIUI服务,arg1为唤醒后拾音的波束号,默认为0。关于波束的定义参见《麦克风设计参考V0.7》。|无| |CMD_RESET_WAKEUP|8|重置唤醒状态。AIUI服务重置为待唤醒状态。若当前为唤醒状态,发送该消息重置后会抛出EVENT_SLEEP事件。|无| |CMD_SET_BEAM|9|设置麦克风阵列的拾音波束。用arg1携带拾音波束号。|无| |CMD_SET_PARAMS|10|设置参数配置。用params携带参数设置JSON字符串,具体格式参照aiui.cfg文件。暂时只可以用来修改scene参数,实时生效。示例:{“global”:{“scene”:”nlp31”} } 该示例将scene修改为nlp31。修改其他参数方法也是如此,即发送一条params字段为JSON字符串(指明待修改的参数类型、名称和取值,格式参照aiui.cfg)的CMD_SET_PARAMS消息。|无| |CMD_UPLOAD_LEXICON|11|上传用户词表。将用户词表按格式组成JSON字符串,放在params字段传入SDK,具体格式:{“name”:”userword”, // 词表名称“content”:”XXXX” // 词表内容},其中XXXX也为一个JSON字符串,示例:{"userword":[{"name":"我的常用词","words":["佳晨实业","蜀南庭苑","高兰路","复联二"]},{"name":"我的好友","words":["李馨琪","鹿晓雷","张集栋","周家莉","叶震珂","熊泽萌"]}]}|有| |CMD_SEND_LOG|12|发送应用日志到云端,可以帮助分析应用问题。需要将JSON格式的字符串放在params字段中携带。|无| |CMD_SYNC|13|同步操作。arg1字段为待同步的数据类型,取值:SYNC_DATA_STATUS(状态同步,params字段为状态JSON字符串),SYNC_DATA_INDIVIDUAL(个性化数据同步,如联系人),SYNC_DATA_ACCOUNT(第三方账号关系同步),SYNC_DATA_ATHENA_INDIVIDUAL(雅典娜个性化数据同步)。|有| |CMD_START_SAVE|14|开始保存数据。params字段为待保存的数据属性,如“data_type=raw_audio”则保存阵列原始音频。|无| |CMD_BUILD_GRAMMAR|16|构建本地语法。用params字段携带bnf语法内容,bnf语法规则请参见《BNF语法开发指南》。|有| |CMD_UPDATE_LOCAL_LEXICON|17|更新本地词表。当构建好本地语法之后,可以动态更新某个槽(声明为slot,实质上为词表)的内容,以动态变更支持的说法。将需要更新的槽名称和内容组成JSON字符串,用params字段携带。示例:{“name”:”<contact>”, “content”:”张三\\n李四\\n” }注:只有在刚刚成功构建语法(即发送了CMD_BUILD_GRAMMAR消息并返回成功事件)之后才能更新本地词表。|有| 注:“有返回”的含义是在向AIUI发送一条CMD消息后,AIUI会抛出一个对应的EVENT事件返回CMD消息的处理结果。 ### AIUIEvent 类型说明 |eventType(事件类型)|取值|说明| | --- | --- | --- | |EVENT_RESULT|1|结果事件。data字段携带结果数据,info字段为描述数据的JSON字符串。| |EVENT_ERROR|2|出错事件。arg1字段为错误码,info字段为错误描述信息。| |EVENT_STATE|3|服务状态事件。当向AIUI发送CMD_GET_STATE命令时抛出该事件,arg1字段取值为STATE_IDLE(空闲状态)、STATE_READY(就绪状态,待唤醒)、STATE_WORKING(工作状态,已唤醒)状态之一。| |EVENT_WAKEUP|4|唤醒事件。info字段为唤醒结果JSON字符串。| |EVENT_SLEEP|5|休眠事件。当出现交互超时,服务会进入休眠状态(待唤醒),或者发送了CMD_RESET_WAKEUP时,抛出该事件。arg1字段取值:TYPE_AUTO(自动休眠,即交互超时)、TYPE_COMPEL(外部强制休眠,即发送CMD_RESET_WAKEUP)。| |EVENT_VAD|6|VAD事件。当检测到输入音频的前端点后,会抛出该事件,用arg1标识前后端点或者音量信息:0(前端点)、1(音量)、2(后端点)。当arg1取值为1时,arg2为音量大小。| |EVENT_CMD_RETURN|8|某条CMD命令对应的返回事件。对于除CMD_GET_STATE外的有返回的命令,都会返回该事件,用arg1标识对应的CMD命令,arg2为返回值,0表示成功,info字段为描述信息。|