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_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"
}
}
1.1.2. 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”:””, “content”:”张三\n李四\n” }注:只有在刚刚成功构建语法(即发送了CMD_BUILD_GRAMMAR消息并返回成功事件)之后才能更新本地词表。 | 有 |
注:“有返回”的含义是在向AIUI发送一条CMD消息后,AIUI会抛出一个对应的EVENT事件返回CMD消息的处理结果。
1.1.3. 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字段为描述信息。 |