当前位置: 首页 > news >正文

离在线SDK配置

image

参数选项与协议命令关联表

 
参数类别 参数选项 配置值/说明 关联的命令 (cmd_type) 命令说明/参数
识别参数 识别灵敏度 SET_VAD_SENSITIVITY (0x010A) 设置VAD灵敏度
算法参数 AEC打断类型 唤醒词和命令打断 (协议层面默认行为) 由芯片逻辑实现,协议无直接对应命令
硬件参数 内核1.1V供电 内部 (无) 硬件设计,协议无关
  晶振源 外部晶振 (无) 硬件设计,协议无关
  麦克数量 单麦 (无) 硬件设计,协议无关
功能参数 双网络切换 双网络 (协议层面支持) 由芯片逻辑实现,协议无直接对应命令
  唤醒时长 15s SET_WAKE_UP_CONTINUE_TIME (0x0113) 设置持续唤醒时间,带参数(2字节)
  播报音量 5 SET_AUDIO_VOLUME (0x0117) 设置语音芯片音量,带参数1字节(1-7)
  单多轮对话 多轮 SET_INTERACTION_NULTI_ROUND_ENABLE (0x0115) 设置单/多轮,带参数1字节(0-单轮, 1-多轮)
  播放时支持音频上传开关 UPLOAD_PLAY_FULL_DUPLEX_EANBLE (0x0116) 设置播放时是否上传录音,带参数1字节(0-不上传, 1-上传)
  VAD开始后停止播放开关 VAD_START_STOP_PLAY (0x0216) 设置VAD开始后是否停止播放,带参数1字节(1-停止, 0-不停止)
  降噪音频上传开关 PCM_DENOISE_ENABLE (0x010E) 上传音频是否带降噪,带参数1字节(1-带降噪, 0-不带)
  云端响应超时时间 11s SET_CLOUD_ANS_TIMEOUT_EXIT (0x011C) 设置退出云端响应超时
  音频能量阈值 50 (无直接命令) 可能通过SET_VAD_SENSITIVITY或其他内部机制实现
  强制结束录音的时间 5s SET_VAD_START_MAX_TIMEOUT (0x0111) 设置VAD开始最大超时时间,带参数2字节(单位秒)
  音频上传压缩格式 speex SET_AUDIO_COMPRESS_TYPE (0x0118) 压缩类型(文档注明暂不支持,预留)
  云端下发播报格式 mp3 (通过fill_data域区分) fill_data 为 RECV_MP3_PLAY (0x12345688)
  请求单帧播放数据大小 1K PLAY_AUDIO_SIZE (0x0213) 播放音频数据长度
  OTA配置 CIAS_OTA_START (0x0501) 等 OTA相关命令组
串口配置 打印串口配置 UART0 (无) 系统底层配置,协议无关
  通讯串口配置 开 / UART1 / 9600 (协议基础) 所有命令均通过UART通信,此配置是通信前提
  云端通信串口 UART2 / 921600 (协议基础) 可能用于与云端的数据传输,是协议承载的物理通道
功放配置 功放使能控制引脚 (已配置) LOCAL_AUDIO_PLAY_START (0x0217) / STOP (0x0218) 控制本地音频播放的开始与停止,间接控制功放

关键发现与说明

  1. 核心控制命令:大部分重要的功能开关和参数设置(如音量、多轮对话、全双工、降噪、唤醒时长等)都有明确的协议命令(cmd_type)与之对应,可以通过主机发送相应指令进行动态配置。

  2. 数据格式标识:播放的音频格式(如MP3)通过协议头中的 fill_data 域来标识,而不是 cmd_type

  3. 硬件与底层配置:硬件相关参数(如供电、晶振、麦克风数量)和部分底层串口配置(如哪个UART用于打印)与网络应用层协议无关,通常在固件中静态配置或通过其他方式设置。

  4. 协议通信基础:串口通信的开启、端口及波特率配置是整个协议能够正常工作的物理基础和前提。

  5. 静音控制SET_VOLUME_MUTE_STATE (0x0119) 命令虽未在参数列表中明确设置,但与音量控制相关,可供使用。

这个关联表清晰地展示了如何通过定义的UART协议,对语音芯片的各项功能和行为进行精确的控制和配置。

 

 

附:ci_network_protocol.h 

/********************************************************************************* @文件    cias_network_msg_protocol.h* @版本    V1.0.0* @日期    2019-5-9* @概要    uart network protocol******************************************************************************* 主要包括网络协议的结构体定义* —————其中最重要的成员:命令类型(cmd_type)、填充数据类型(fill_data)* * 这两个成员的宏定义也包含在此文件中。* 举例:*      命令类型(cmd_type):诸如下行的开始播放,上行的录音数据结束*      填充数据类型(fill_data):诸如 MP3/MAV 格式等等。*******************************************************************************/#ifndef _CI_NETWORK_PROTOCOL_H
#define _CI_NETWORK_PROTOCOL_H#include <cstdint>// 标准协议结构体
#pragma pack(push, 1)  //确保在不同编译器下结构体布局一致
typedef struct ci_uart_standard_head
{uint32_t magic; /*帧头 定义为0x5a5aa5a5*/uint16_t checksum;  /*校验和*/uint16_t cmd_type;  /*命令类型*/uint16_t data_len;   /*数据有效长度*/uint16_t version;   /*版本信息*/uint32_t fill_data;     /*填充数据,可以添加私有信息*/
}cias_standard_head_t;
#pragma pack(pop)#define CIAS_STANDARD_MAGIC  0x5a5aa5a5 //0x1a2aa3a4 //以下为成员 cmd_type 的宏定义
typedef enum{//语音识别相关LOCAL_ASR_RESULT_NOTIFY             =  0x0101,  /*本地语音识别通知*/WAKE_UP                             =  0x0102,  /*唤醒*/VAD_END                             =  0x0103,  /* 云端VAD END */SKIP_INVAILD_SPEAK                  =  0x0104,  /* 跳过无效语音 */PCM_MIDDLE                          =  0x0105,  /*PCM数据中间包*/PCM_FINISH                          =  0x0106,  /*PCM数据结束包*/PCM_IDLE                            =  0x0107,  /*PCM数据空闲 */VAD_START                           =  0x0108,  /*vad start*/ EXIT_WAKE_UP                        =  0x0109,  /*退出唤醒*/SET_VAD_SENSITIVITY                 =  0x010A,  /*设置VAD灵敏度*/VAD_START_BY_KEY                    =  0x010B,  /*手动按键触发vad start*/VAD_END_BY_KEY                      =  0x010C,  /*手动触发vad end*/SET_AUDIO_EXIT_WAKE_UP              =  0x010D,  /*设置语音退出唤醒,带参数1字节1-带退出提示音(默认) 0-不带退出唤醒提示音*/PCM_DENOISE_ENABLE                  =  0x010E,  /*上传音频是否带功能降噪,带参数1字节 1-带降噪(默认) 0-不带降噪*/SET_VAD_FILTER_FRAME                =  0x010F,  /*过滤vad start和end之间帧数(16ms一帧),小于该设定值被判断为无效语音,语音芯片不上传, 带参数2字节*/SET_VAD_SENSITIVITY_ACTIVATE_LENTH  =  0x0110,  /*多长时间的静音产生vad end,带参数1字节*/SET_VAD_START_MAX_TIMEOUT           =  0x0111,  /*设置vad start 最大时间,超过设置时间则强制结束上传语音,单位秒,默认5S,带参数2字节*/  SET_PLAY_VOICE_ID                   =  0x0112,  /*设置离线播放音频,带参数4字节(id号)*/ SET_WAKE_UP_CONTINUE_TIME           =  0x0113,  /*设置持续唤醒时间,超过设置时间,语音芯片强制退出唤醒,带参数2字节(默认15S)*/SET_ENTER_WAKE_UP                   =  0x0114,  /*通过指令让语音芯片进入唤醒状态,不用等待唤醒词唤醒*/SET_INTERACTION_NULTI_ROUND_ENABLE =   0x0115,  /*设置单轮还是多轮,带参数1字节,0-单轮 1-多轮(默认)*/UPLOAD_PLAY_FULL_DUPLEX_EANBLE      =  0x0116,  /*设置播放音频时是否上传录音,带参数1字节 0-不上传(默认) 1-上传*/SET_AUDIO_VOLUME                    =  0x0117,  /*设置语音芯片音量,带参数1字节,范围(1-7), 默认7*/SET_AUDIO_COMPRESS_TYPE             =  0x0118,  /*压缩类型,默认只支持speex压缩,预留,暂时不做支持*/SET_VOLUME_MUTE_STATE               =  0X0119,   /*设置mute状态1-mute 0-非mute*/SET_AUDIO_START_RECORD              =  0x011A,   /*通过指令开始录音*/SET_AUDIO_STOP_RECORD               =  0x011B,   /*通过指令结束录音(和SET_AUDIO_START_RECORD必须配对使用)*/SET_CLOUD_ANS_TIMEOUT_EXIT          =  0x011C,   /*设置退出云端响应超时*///网络播放相关NET_PLAY_START                      =  0x0201,   /*开始播放 */NET_PLAY_PAUSE                      =  0x0202,   /*播放暂停 */NET_PLAY_RESUME                     =  0x0203,   /*恢复播放 */NET_PLAY_STOP                       =  0x0204,   /*停止播放 */NET_PLAY_RESTART                    =  0x0205,   /*重播*/NET_PLAY_NEXT                       =  0x0206,   /*播放下一首 */NET_PLAY_LOCAL_TTS                  =  0x0207,   /*播放本地TTS */NET_PLAY_END                        =  0x0208,   /*播放结束*/NET_PLAY_RECONECT_URL               =  0x0209,   /*重新获取连接 */PLAY_DATA_GET                       =  0x020a,   /*获取后续播放数据 */PLAY_DATA_RECV                      =  0x020b,   /*接收播放数据 */PLAY_DATA_END                       =  0x020c,   /*播放数据接收完*/PLAY_TTS_END                        =  0x020d,   /*播放tts结束*/PLAY_EMPTY                          =  0x020e,   /*播放空指令 */PLAY_NEXT                           =  0x020f,   /*播放完上一首,主动播放下一首*/PLAYING_TTS                         =  0x0210,   /*当前正在播放TTS音频*/PLAY_RESUME_ERRO                    =  0x0211,   /*重播失败*/PLAY_LAST                           =  0x0212,   /*播放上一首*/PLAY_AUDIO_SIZE                     =  0x0213,   /*播放音频数据长度*/  PLAY_AUDIO_TYPE                     =  0x0214,   /*播放数据类型*/SET_AUDIO_PLAY_MODE                 =  0x0215,    /*设置播放模式,带参数1字节,1-打断当前播报 0-不打断当前播报,顺序播放默认)*/VAD_START_STOP_PLAY                 =  0x0216,    /*设置全双工模式下,vad start是否停止当前播放,带参数1字节,1-停止播放 0-不停止播放)*/LOCAL_AUDIO_PLAY_START              =  0x0217,    /*本地播放音频开始*/LOCAL_AUDIO_PLAY_STOP               =  0x0218,    /*本地播放音频开始*///IOT自定义协议QCLOUD_IOT_CMD                      =  0x0301,   /*云端IOT指令 */NET_VOLUME                          =  0x0302,   /*云端音量 */LOCAL_VOLUME                        =  0x0303,   /*本地音量 */VOLUME_INC                          =  0x0304,   /*增大音量 */VOLUME_DEC                          =  0x0305,   /*减小音量 */VOLUME_MAXI                         =  0x0306,   /*最大音量 */VOLUME_MINI                         =  0x0307,   /*最小音量 */CIAS_CJSON_DATA                     =  0x0308,   //云端iot的json格式数据IOT_VOLUME_MUTE                     =  0x0309,    // 云端音量静音IOT_VOLUME_UNMUTE                   =  0x030a,   // 云端音量取消静音IOT_QUITE_WAKE_UP_MODE              =  0x030b,   // 退出唤醒模式//网络相关ENTER_NET_CONFIG                    =  0x0401,   //进入配网模式NET_CONFIGING                       =  0x0402,   //配网中EXIT_NET_CONFIG                     =  0x0403,   //退出配网模式INIT_SMARTCONFIG                    =  0x0404,   //初始密码状态 出厂配置状态WIFI_DISCONNECTED                   =  0x0405,   //网络断开WIFI_CONNECTED                      =  0x0406,   //网络连接成功GET_PROFILE                         =  0x0407,   //已获取鉴权文件NEED_PROFILE                        =  0x0408,   //需要鉴权文件,add by royCLOUD_CONNECTED                     =  0x0409,   //云端已连接CLOUD_DISCONNECTED                  =  0x040a,   //云端已断开NET_CONFIG_SUCCESS                  =  0x040b,   //配网成功NET_CONFIG_FAIL                     =  0x040c,   //配网失败//and by yjd CIAS_OTA_START                      =  0x0501,      //开始otaCIAS_OTA_DATA                       =  0x0502,      //ota 数据CIAS_OTA_SUCESS                     =  0x0503,      // OTA升级成功CIAS_FACTORY_START                  =  0x0504,      //生产测试CIAS_FACTORY_OK                     =  0x0505,      //生产测试成功CIAS_FACTORY_FAIL                   =  0x0506,      //生产测试失败CIAS_FACTORY_SELF_TEST_START        =  0x0507,      //自测试CIAS_IR_DATA                        =  0x0508,      //红外数据发送CIAS_IR_LOADING_DATA                =  0x0509,      //红外码库下载中CIAS_IR_LOAD_DATA_OVER              =  0x050a,      //红外码库下载完成CIAS_IR_LOAD_DATA_START             =  0x050b,      //红外下载码库开始CIAS_FACTORY_TEST_ENG_THR_SET       =  0x050c,      //音频通路设置检测播报音能量阈值设置,范围(0-100db)CIAS_FACTORY_TEST_ENG_GET           = 0x050d,       //生产测试结果返回CIAS_FACTORY_TEST_REAL_VAL_GET      = 0x050e,       //生产通路测试过程中实时值上传//语音系统相关CIAS_AUDIO_SYS_READY                = 0x0601,       //语音系统readyCIAS_AUDIO_SYS_ERR                  = 0x0602,       //语音系统异常 CIAS_AUDIO_RST                      = 0x0603,        //复位语音芯片//自学习相关CWSL_UART_REGISTRATION_WAKE         = 0x0701,         /*串口进入学习唤醒词*/CWSL_UART_REGISTRATION_WAKE_ING     = 0x0702,         /*正在学习唤醒词状态中*/CWSL_UART_REGISTRATION_WAKE_END_SUCCESSFUL = 0x0703,  /*学习唤醒词成功*/CWSL_UART_REGISTRATION_WAKE_END_FAILED = 0x0704,      /*学习唤醒词失败*/CWSL_UART_EXIT_REGISTRATION            = 0x0705,      /*退出学习*/CWSL_UART_DELETE_WAKE                  = 0x0706,      /*删除唤醒词*///指令执行状态相关CIAS_CMD_EXEC_STATE                    =  0x0801,     /*指令执行状态,返回数据部分3字节 前两字节表示语音芯片接收到指令的类型, 第3字节表示指令执行结果(0x01-执行成功 0x02-执行失败)*///===注意用户使用地址请从0x4xxx开始,避免和系统指令冲突
}wifi_communicate_cmd_t;//以下为 fill_data 域的成员
#define INVAILD_SPEAK                (0x12345666)
#define RECV_TTS_PLAY                (0x12345677)   
#define RECV_MP3_PLAY                (0x12345688)   //MP3格式
#define RECV_M4A_PLAY                (0x123456aa)   
#define IDLE_STATUS_RECV_M4A_PLAY    (0x123456ab)
#define RECV_WAV_PLAY                (0x123456bb)
#define DEF_FILL                     (0x12345678)   //命令默认填充
#define WAKEUP_FILL_DATA             (0x12345678)   //唤醒命令
#define NO_WAKEUP_FILL_DATA          (0x0)#endif 
http://www.hskmm.com/?act=detail&tid=37731

相关文章:

  • 傅立叶,程心和路明泽
  • SpringBoot自动配置
  • AI元人文构想与余溪诗学空间:一场从诗意本源向智能未来的远征
  • 状压DP
  • 搞定三大PLC通讯:倍福与西门子、欧姆龙与西门子数据互通实战
  • 实验p66
  • 牛客2025秋季算法编程训练联赛2-(基础组提升组)
  • 局域网共享一键通_v2.0.9.9
  • newDay15
  • 每日反思(2025_10_23)
  • 树链剖分/轻重链剖分
  • 如何降低信息化系统的构建成本? ——信息化系统省钱全攻略:从规划到运维的实用技巧
  • C#编程时winform程序登陆记住密码和自动登录功能,关于App.config的问题及解决方案
  • 2025.10.23总结
  • Day2超链接标签
  • Ai元人文构想:你喜欢黑箱与偏见
  • 企业微信 使用api批量处理群消息
  • first game (1)
  • 10月23日日记
  • Gin笔记一之项目建立与运行
  • 软件工程学习日志2025.10.23
  • 10月23号
  • 【题解】P14254 分割(divide)
  • 数论分块 - R
  • 第九届强网杯线上赛PWN_flag-market
  • ISFB银行木马家族演化史:从Gozi到LDR4的技术剖析
  • 10.23日学习笔记
  • 埃氏筛及扩展质因数筛——埃拉托斯特尼筛法变种
  • exgcd板子
  • 2025.10.23