AIUI文档中心
AIUI平台说明
什么是AIUI
AIUI平台能力介绍
AIUI交互流程说明
AIUI快速入门
AIUI应用管理说明
应用接入和配置
应用后处理
敏感词
AIUI开发接入
AIUI接入概述
声学接入
交互接入
SDK接入
SDK介绍
参数配置
消息事件
交互状态
结果解析
WebSocketAPI接入
精简协议接入
常用功能
交互控制
语音唤醒
语音合成
用户个性化
自定义参数
离线命令词
翻译模式
流式识别
语义VAD
发音人列表
关键词过滤
情景模式
错误码
星火交互认知大模型说明
大模型概述
开发接入
SDK接入
API接入
大模型API服务鉴权
特色能力
超拟人合成
声音复刻
大模型功能
大模型错误码
软硬件产品接入
RK3328 降噪板
RK3328降噪板白皮书
RK3328降噪板使用手册
RK3328降噪板规格书
RK3328降噪板协议手册
RK3328 AIUI评估板开发套件
RK3328评估板白皮书
RK3328评估板使用手册
RK3328评估板规格书
RK3328评估板开发手册
RK3588 AIUI多模态开发套件
RK3588一体机多模态产品规格书
RK3588多模态套件使用手册
视频传输协议
串口通信协议
音频传输协议
ZG803 离线语音识别套件
ZG803 产品白皮书
USB声卡套件
USB声卡产品白皮书
USB声卡使用指南
AC7911 AIUI语音开发套件
AC7911-产品白皮书
AC7911-快速体验指南
AC7911-开发指南
AC7911-协议手册
AC7911-硬件参数
AIUI评估板接入
集成方式
软件包说明
AIUIServiceKitSDK
串口SDK
评估板参数配置
调试升级
技能工作室
技能概述
名词解析
技能
意图和语料
实体
动态实体
模糊匹配
填槽对话
技能设计规范
语音技能设计规范
开放技能接入审核规范
开放技能图标图片规范
技能开发
创建技能和意图
意图配置
技能测试
技能发布
技能后处理
技能导入导出
云函数APIv2.1
云函数APIv2.0
问答库开发
语句问答
关键词问答
文档问答
设备人设开发
技能协议
语义协议:重要字段和通用字段
技能后处理协议:标准请求
技能后处理协议:请求校验
技能后处理协议:Request_v2.1协议
技能后处理协议:Response_v2.1协议
技能资源限制
硬件设计参考
常见问题
AIUI常见问题
评估板常见问题
动态实体常见问题
联系方式
服务条款
AIUI开放平台服务协议
AIUI开放平台隐私政策
小飞在家用户协议
小飞在家隐私政策
小飞在家开源软件使用许可
讯飞账号隐私政策
讯飞账号用户协议
讯飞带屏音箱用户协议
讯飞带屏音箱隐私政策
AIUI SDK隐私政策
AIUI SDK合规使用说明
本文档使用 MrDoc 发布
-
+
首页
交互控制
## 概览 AIUI支持发送AIUIMessage和修改配置来控制交互方式。 ### 录音来源 aiui.cfg的`data_source`可以指定AIUI录音来源。 **sdk**:sdk内部录音(只支持Andorid)。用`CMD_START_RECORD、CMD_STOP_RECORD`控制录音开关,录音开始抛出 `EVENT_START_RECORD`事件,录音结束抛出`EVENT_STOP_RECORD`事件 **user**:开发者自己录音后送音频给sdk,使用`CMD_WRITE、CMD_STOP_WRITE`通知AIUI数据写入和写入结束 ### 数据写入 通过`CMD_WRITE`向AIUI写入数据,字段说明: <table class="docutils"> <tbody valign="top"> <tr class="row-odd"><td>参数名称</td> <td><div class="first last line-block"> <div class="line">说明</div> </div> </td> </tr> <tr class="row-even"><td>data_type</td> <td><div class="first last line-block"> <div class="line">数据类型,取值:</div> <div class="line">audio(音频)、text(文本)、image(图像,暂不支持)。</div> </div> </td> </tr> <tr class="row-odd"><td>sample_rate</td> <td><div class="first last line-block"> <div class="line">音频采样率,固定16000</div> </div> </td> </tr> <tr class="row-even"><td>msc.lng和msc.lat</td> <td><div class="first last line-block"> <div class="line">GPS经纬度信息。</div> <div class="line">当使用天气等需要位置信息的语义服务时可以传GPS坐标</div> </div> </td> </tr> <tr class="row-odd"><td>rec_user_data</td> <td><div class="first last line-block"> <div class="line">识别热词,提高特定词的识别效果。</div> <div class="line">示例:rec_user_data=”{“recHotWords”: “播报内容|地图显示|</div> <div class="line">路径优先”, “sceneInfo”: {}}”。</div> </div> </td> </tr> </tbody> </table> data\_type为text时发送文本请求语义,与正常交互一样,返回对应的[语义结果](https://aiui-doc.xf-yun.com/project-1/doc-16/#语义结果格式)。 **Android 示例代码:** ~~~ java //写入音频 byte[] audio = xxx; //初始化 String params = "data_type=audio,sample_rate=16000"; AIUIMessage msg = new AIUIMessage(AIUIConstant.CMD_WRITE, 0, 0, params, audio); mAIUIAgent.sendMessage(msg); //停止写入 AIUIMessage msg = new AIUIMessage(AIUIConstant.CMD_STOP_WRITE, 0, 0, params, null); mAIUIAgent.sendMessage(msg); //写入文本 byte[] content= "确定预定".getBytes(); String params = "data_type=text"; AIUIMessage msg = new AIUIMessage(AIUIConstant.CMD_WRITE, 0, 0, params, content); mAIUIAgent.sendMessage(msg); ~~~ **iOS/Linux/Windows 示例代码:** ~~~ swift //写入音频 char audio[length] ; Buffer* buffer = Buffer::alloc(length); memcpy(buffer->data, audio, length); IAIUIMessage* writeMsg=IAIUIMessage::create(AIUIConstant::CMD_WRITE, 0, 0, "data_type=audio,sample_rate=16000", buffer); m_angent->sendMessage(writeMsg); writeMsg->destroy(); //写入文本 string text ="确定预定"; Buffer* textData = Buffer::alloc(text.length()); text.copy((char*) textData->data(), text.length()); IAIUIMessage* writeMsg=IAIUIMessage::create(AIUIConstant::CMD_WRITE, 0, 0, "data_type=text", textData); m_angent->sendMessage(writeMsg); writeMsg->destroy(); //停止写入 IAIUIMessage* writeMsg=IAIUIMessage::create(AIUIConstant::CMD_STOP_WRITE, 0, 0, "data_type=audio,sample_rate=16000", buffer); m_angent->sendMessage(writeMsg); writeMsg->destroy(); ~~~ 同时写入多个文本,用tag将结果与请求一一对应。示例: ~~~ java //写入文本 byte[] content= "你好".getBytes(); String params = "data_type=text"; AIUIMessage msg = new AIUIMessage(AIUIConstant.CMD_WRITE, 0, 0, "tag=write_data_1", content); mAIUIAgent.sendMessage(msg); //结果回调 private void processResult(AIUIEvent event) { String tag = event.data.getString("tag"); } ~~~ ## 延迟休眠 持续一段时间无**有效交互**,AIUI就会休眠([配置文件](https://aiui-doc.xf-yun.com/project-1/doc-13/)的`interact_timeout`可配置)。 **有效交互**:交互的结果有语义结果,`rc`字段的值为0或3。 1.AIUI平台关闭语义理解就没有语义结果,是无效交互。 2.第三方后处理结果中的语义难以辨别,是无效交互。 收到语义结果后5秒内发送`CMD_RESULT_VALIDATION_ACK`,设置这次结果为有效交互。 ## 清除历史 AIUI可以自动补充历史信息,例:先问`合肥今天的天气`,再问`明天呢`,结合交互历史,AIUI会回答合肥明天的天气。 清除历史[配置](https://aiui-doc.xf-yun.com/project-1/doc-13/) `auto:`休眠后自动清除历史。 `user:`用户发送`CMD_CLEAN_DIALOG_HISTORY`手动清除历史。 服务端只保存最新的5次交互历史。 <IflyHeader />
admin
2024年7月5日 11:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码