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 发布
-
+
首页
RK3328降噪板协议手册
# 协议手册 **目 录** 1. 协议描述 1.1. 简介 1.2. 串口参数 1.3. 数据端序 2. 协议格式 2.1. 消息格式 2.2. 通信规则 2.3. 通信格式 2.4. 消息类型 3. 术语 3.1. 唤醒 3.2. 波束 4. 协议内容 4.1. 主控消息 4.1.1. 唤醒词更换(浅定制) 4.1.2. 手动唤醒 4.1.3. 麦克风阵列切换 4.1.4. 配置更改 4.1.5. 获取版本信息 4.2. 设备消息 4.2.1. 唤醒结果事件 # 1. 协议描述 ## 1.1 简介 本协议是模块与用户上位机串口之间的通讯协议。模块接口为TTL接口。 ## 1.2 串口参数 |波特率 |数据位 |奇偶校验 |停止位 |流控 | | :---- | :---- |:---- |:---- |:---- | |11520 |8 |无 |1 |无 | 表1 串口参数配置 ## 1.3 数据端序 本协议所有数据都为大端序。 # 2. 协议格式 ## 2.1 消息格式 |字节 |值 |含义 | | :---- | :---- |:---- | |0 |0xA5 |同步头 | |1 |0x01 |用户ID | |2 |0xXX |消息类型 | |3~4 |0xXXXX |消息数据长度 | |5~6 |0xXXXX |消息ID | |7~n |消息数据 |消息数据 | |n+1 |0xXX |内部校验码 | 表2 串口消息格式 ## 2.2 通信规则 * 双向通信,进行一问一答式通信; * 不分主从机,双方都可向对方发送请求信息; * 降噪模块通电启动后,会向上位机发送握手信号,确定与对方串口通信是否正常。在未接收到响应时,会每隔500ms发送一次握手请求信号; * 接收方接到请求后需在50ms内发送响应。 ## 2.3 通信格式 通信格式定义了握手消息、设备消息、主控消息和确认消息。下面将分类详述: ![](/media/202303/2023-03-23_182749_6466220.8630595743503263.png) <center>表3 通信格式消息分类</center> **消息长度:** 数据格式中`3~4字节`为消息数据长度,消息长度编码为小端模式,即第3字节存储低字节,第4字节存储高字节。如握手请求消息中消息数据有4字节,则消息长度为4,编码到3~4字节就是0x04 0x00。 **消息ID:** 数据格式中5~6字节为消息ID,与消息长度类似,也是小端模式编码。可以使用消息ID过滤因超时重发导致的重复消息。两字节长度的消息ID取值0-65535,所以在实际使用中需要循环使用。 **校检码:** 数据格式中每种数据类型的最后一个字节都是校检码,用于检验串口传输的正确性。其计算方式为除校检码字节外所有字节求和取反并加1。公式如下: checkcode = ~sum(字节0+字节2+...+字节n) + 1 **编码格式:** 消息中字符串类型的数据编码格式为UTF-8。 ## 2.4 消息类型 上位机与RK3328降噪模块的通信见下图: ![1676880953799](/media/202303//1679566020.1007516.png) <center>图1 上位机跟RK3288通信图示</center> 通信消息类型包括握手消息、主控消息、设备消息和确认消息: * **握手消息** 握手消息是用来判断上位机与降噪模块间串口通信检测的。降噪模块与上位机完成硬件连接并通电后,降噪模块会不断构造握手消息发送到上位机,上位机按要求返回确认消息,降噪模块收到确认消息后确认串口通信正常,开始后续交互。 * **主控消息** 主控消息是上位机发送给RK3328降噪模块的消息,格式为JSON。内容为上位机发送给降噪模块的控制指令,如更换唤醒词、设置固定波束等。 * **设备消息** 设备消息是降噪模块主动上报给上位机的消息,格式为JSON,内容为降噪模块上报的事件信息,如唤醒事件,唤醒词内容等。 * **确认消息** 确认消息是一个特殊的消息类型,它是对其他类型消息的确认,它的消息ID与其要确认的消息的ID相同。 如一个消息的消息ID为0x9527,那对应的确认消息的消息ID也应该是0x9527。 # 3. 术语 ## 3.1 唤醒 用户通过指定唤醒词的语音信号可以唤醒模块,也可设置模块开机自动唤醒。模块唤醒会上报唤醒信息,该信息包括唤醒角度、唤醒得分、所属波束、唤醒词等。模块唤醒前处于待机状态,无音频输出。模块唤醒后开始进入正常运行状态,输出音频。 ## 3.2 波束 本文中的波束是指模块通过阵列麦克风的不同拾音差异,通过算法滤波输出的某个特定方向音频,该音频拾取指定角度范围内的声源,抑制其它角度声源的影响。 本模块有三种配套麦克风阵列。对应波束号与角度关系如下: * **环形六麦波束** ![](/media/202303//1679566020.1070185.png) <center>图2 环形六麦波束图示</center> * **线性四麦波束** ![](/media/202303//1679566020.1119301.png) <center>图3 线性四麦波束图示</center> * **线性六麦波束** ![](/media/202303//1679566020.136437.png) <center>图4 线性六麦波束图示</center> 注:波束指向方向仅为拾音方向, 并不会影响和改变唤醒时的角度等任何信息。 # 4. 协议内容 ## 4.1 主控消息 主控消息是上位机发送给RK3328降噪模块的消息,格式为JSON。 主控消息根据内部字段type的不同,控制RK3328降噪模块的不同功能。 ### 4.1.1 唤醒词更换(浅定制) type为wakeup_keywords ```java { "type": "wakeup_keywords", "content": { "keyword": "xiao3 fei1 xiao3 fei1", // 唤醒词 "threshold": "900" // 阈值 } } ``` PS:如需深定制,则通过更新固件方式加载。 ### 4.1.2 手动唤醒 type为 manual_wakeup ```java { "type": "manual_wakeup", "content": { "beam": 1 //波束序号,见第三章波束说明 } } ``` PS:如需实现固定波束功能,则在每次设备唤醒后发送手动唤醒指令。 ### 4.1.3 麦克风阵列切换 type为 switch_mic ```java { "type": "switch_mic", "content": { "mic": "mic4" // 麦克风阵列类型 } } ``` mic:麦克风阵列类型,mic4:线性4麦,mic6:线性6麦, mic6\_circle:环形6麦。 ### 4.1.4 配置更改 type为 setting,该操作有风险,请熟知参数意义下执行。 ```java { "type": "setting", "content": [{ "group": "common", // ini文件中section "key": "debug", // ini文件中section下的key "value": "0" // key对应的value }] } ``` 具体有哪些可配,请参考 user\_cfg.ini。 ### 4.1.5 获取版本信息 type为version。 ```java { "type": "verison" } ``` ## 4.2 设备消息 ### 4.2.1 唤醒结果事件 type为aiui_event,代表AIUI结果返回,总体结构示例: ```java { "type": "aiui_event", "content": { "eventType":4, // 事件类型 4 => 唤醒 "arg1":0, // 唤醒波束 "arg2":0, // 未启用 "info":{}, // {"keyword":"xiao3 wei1 xiao3 wei1", .... } 唤醒信息 "result":{} //唤醒词 } } eventType:事件类型,4-唤醒 arg1:参数1,唤醒波束,具体取值参见3.2波束章节说明 arg2:参数2,未启用,忽略 info:唤醒结果,包括唤醒词和唤醒角度。如 {"keyword":"xiao3 wei1 xiao3 wei1", }
admin
2024年4月28日 10:31
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码