跳转至

配置选项参考

本章汇总 CI13XX_SDK_LLM_AIoT_V2.2.7 示例工程中的主要可配置宏选项,便于开发者按应用场景裁剪功能。

配置位置

  • 板级、串口、OTA、离在线音频上传/播放、云端交互、VAD、语音识别、播放器、自学习等功能宏,统一位于各示例工程下的:projects\<工程名>\app\app_main\user_config.h;
  • 算法功能组合(CI_ALG_TYPE)、AIOT_AUDIO_COMPRESS_TYPE、SYS_HEAP_SIZE 等编译参数位于 projects\<工程名>\project_file\makefile;
  • 各示例工程的默认值不同(如 hpout 工程默认使用 CI-D06GT01D 开发板),请以实际工程文件为准。

1. 板级与芯片配置

宏定义 说明
USE_CI_xxx_BOARD 板级选择开关(如 USE_CI_D06GT01D_BOARD、USE_CI_D06GT01J_BOARD),同一时刻只置 1 个
CI_CHIP_TYPE 芯片型号(1302/1306/1312/2306 等),随板级选择自动定义
BOARD_PORT_FILE 板级驱动文件(如 "CI-D06GT01D.c"),随板级选择自动定义;文件位于 driver/boards
HOST_MIC_USE_NUMBER MIC 数量(1 单麦 / 2 双麦)
MIC_DIFF_SINGLE MIC 电路模式:1 单端、0 差分(通用模块为差分,省成本模块单端时置 1)
USE_IIS1_OUT_PRE_RSLT_AUDIO IIS 采音开关:1 开启(占用 PA2~PA6,多消耗约 20KB SYS 内存)、0 关闭

2. 串口与通讯配置

宏定义 说明
CONFIG_CI_LOG_UART LOG 输出串口(默认 HAL_UART0_BASE,勿与协议串口共用)
UART0/1/2_PAD_OPENDRAIN_MODE_EN 通讯串口开漏模式使能(对接 5V 电平 IO 时开启)
USE_EXTERNAL_CRYSTAL_OSC 时钟源:1 外部晶振、0 内部 RC(离在线应用必须为 1)
UART_BAUDRATE_CALIBRATE 波特率自适应使能(使用内部 RC 时建议开启)
MSG_COM_USE_UART_EN 语音模块通讯协议开关(离在线应用默认关闭)
UART_PROTOCOL_NUMBER / UART_PROTOCOL_BAUDRATE / UART_PROTOCOL_VER 语音模块协议串口 / 波特率 / 协议版本(1 一代、2 二代、255 平台生成)
CLOUD_UART_PROTOCOL_EN 云端协议使能(仅启英开发者平台做固件配协议时可用,与 MSG_COM_USE_UART_EN 互斥)

3. OTA 配置

宏定义 说明
CI_OTA_ENABLE OTA 使能:1 使能、0 不使能(默认 0)

说明

V2.2.7 起,OTA 功能统一由 components/ota 组件承载,各工程不再包含 app/app_ota 目录;OTA 版本为 V4.1.12,打包固件时需将 firmware/config.ini 中 firmware_version 设为 FW_V4。详见 ☞《语音芯片OTA V4.1.X使用和说明》。

4. 离在线音频上传 / 播放配置(全局宏开关)

V2.2.7 重点

V2.2.7 起,UART、IIS、HPOUT 三个工程统一使用下列**全局宏开关**控制上下行、串口通信、本地播报与云端播报,可灵活配置各通路。

宏定义 说明
AUDIO_DATA_UPLOAD_BY_UART 通过串口上传录音(uart 工程;压缩上传会消耗更多内存)
AUDIO_DATA_PLAY_BY_UART 通过串口接收音频数据并播放(uart 工程)
AUDIO_DATA_UPLOAD_BY_IIS 通过 IIS 上传录音(iis 工程)
AUDIO_DATA_PLAY_BY_IIS 通过 IIS 接收音频数据播放(iis 工程)
AUDIO_DATA_UPLOAD_BY_HPOUT 通过 HPOUT 上传录音(hpout 工程,不支持压缩)
WIFI_CMD_BY_UART 上下行均关闭时,仅通过串口与 WIFI 交互指令
CIAS_AIOT_DEMO_ENABLE 离在线 AIOT demo 功能总开关
AUDIO_VAD_CHECK_ENABLE VAD 检测功能使能(不可修改)
AUDIO_SEND_WITH_PROTOCOL_HEADER 上传数据是否带协议头:1 带(默认)、0 裸数据(调试用)
UART_NUM_SEND_PLAY_AUDIO_NUMBER / UART_NUM_SEND_PLAY_AUDIO_BAUDRATE 与网络端(WIFI)交互的串口 / 波特率
IIS_UPLOAD_IS_WAKEUP IIS 工程:1 唤醒后(或收到开始录音指令后)开始录音、0 上电后开始录音
IIS_DOWNLOAD_BY_CMD IIS 工程:1 收到指令后开始 IIS 播报、0 上电后开始 IIS 播报(V2.2.7 新增)
HPOUT_UPLOAD_IS_WAKEUP HPOUT 工程:1 唤醒后开始录音、0 上电后开始录音(V2.2.7 新增)

4.1 压缩算法选择(三选一)

宏定义 说明
AUDIO_COMPRESS_RECORD_DISABLE PCM 上传,不做压缩
AUDIO_COMPRESS_SPEEX_ENABLE SPEEX 压缩上传
AUDIO_COMPRESS_OPUS_ENABLE OPUS 压缩上传(比 SPEEX 多消耗约 31KB 内存;V2.2.7 起节约 10K 内存)
AUDIO_COMPRESS_G722_ENABLE G722 压缩上传(20ms 压缩一次,4:1 压缩率)

4.2 云端播放格式选择(三选一)

宏定义 说明
NET_AUDIO_PLAY_BY_MP3 云端播放 MP3 格式
NET_AUDIO_PLAY_BY_PCM 云端播放 PCM 格式
NET_AUDIO_PLAY_BY_G722 云端播放 G722 格式(必须使用精简播放器)
NET_PLAY_PCM_OR_G722_ENABLE_LOCAL_PLAY 云端播放 PCM/G722 时同时开启本地播报
USE_HP_OUT_NET_AUDIO 使用 HPOUT 直接输出云端音频

5. 云端交互配置

宏定义 说明
CUR_INTERACTION_MULTI_ROUND_ENABLE 1 多轮对话、0 单轮
UPLOAD_PLAY_FULL_DUPLEX_ENABLE 全双工处理:播放音频的同时支持 VAD 检测音频上传
VAD_START_STOP_PLAY_ENABLE 全双工模式下 VAD 起来是否立刻停止播放:1 停止、0 不停止
CLOUD_ANS_TIME_OUT_ENEABLE 云端响应超时功能使能
CLOUD_ANS_TIME_OUT_VALUE 云端响应超时时间(秒,需 > 0)
AUDIO_PLAY_MODE 1 支持打断当前播放、0 顺序播放(暂不用)
UPLOAD_NNDENOISE_AUDIO_DATA_ENABLE 1 上传降噪后的音频、0 上传非降噪音频
CHECK_NET_WORK_STATE_ENABLE 检测网络状态后再上传音频
PCM_MSG_STREAM_NUM 原始数据 stream buf 大小
PCM_ALG_ROOLBACK_FRAME_LEN 前端回退帧数(默认 25 帧 ≈ 400ms)
PCM_ALG_FRAME_LEN 前端原始音频帧长(16K 采样,每帧 256 点共 512 字节)

6. VAD 配置

宏定义 说明
LOCAL_REC_VAD_END_ENABLE 本地识别后立即停止 VAD(V2.2.7 新增);若不停止,在半双工且本地词条有播报时,播报会丢录音
WEAK_VAD_ENABLE 1 唤醒后开始检测 VAD、0 一直检测 VAD(IIS / HPOUT 工程,V2.2.7 新增)
VAD_ON_MIN_NUM VAD 起来判断有效的最短帧数(10ms 一帧,最大 40)
VAD_TIMEOUT_CHECK VAD 算法内部是否进行超时检测(不可修改)
VAD_FORCE_OVER_NUM_TIME 强制结束录音时间(秒)

7. 语音识别与播放器配置

宏定义 说明
USE_SEPARATE_WAKEUP_EN 是否使用独立的唤醒词模型
DEFAULT_MODEL_GROUP_ID 上电默认进入的语言模型(0 命令词模型、1 唤醒词模型)
PLAY_WELCOME_EN / PLAY_ENTER_WAKEUP_EN / PLAY_EXIT_WAKEUP_EN / PLAY_OTHER_CMD_EN 开机 / 唤醒 / 退出唤醒 / 识别到命令词时是否播放提示音
EXIT_WAKEUP_TIME 退出唤醒超时时间(毫秒)
AUDIO_PLAYER_ENABLE 是否启用音频播放器
PLAYER_CONTROL_PA 播放器是否控制音频功放开关
VOLUME_MAX / VOLUME_MIN / VOLUME_DEFAULT 音量上限 / 下限 / 默认值
MP3_NO_CONSTANT_BITRATE 开启非恒定比特率(VBR、ABR)适配(V2.2.7 支持)

8. 算法相关配置

宏定义 说明
AEC_INTERRUPT_TYPE AEC 打断类型:2 命令词与唤醒词都可打断、1 仅命令词、0 仅唤醒词
BF_DEEPSE_MODE 深度分离模式:1 全深度分离(更耗内存)、0 半深度分离
AI_DOA_OUT_TYPE DOA 输出类型:1 唤醒词输出角度、2 命令词输出角度、3 两者都输出
USE_DUAL_MIC_ANY 任意 MIC 均可识别(双麦无 BF/DOA/去混响时)
DEREVERB_FREQ_RANGE_INDEX 去混响起效频率范围索引

9. 自学习(CWSL)配置

宏定义 说明
CWSL_WAKEUP_NUMBER 可学习的唤醒词数量(最大 2)
WAKE_UP_ID 学习的唤醒词对应的命令词 ID
CWSL_REG_TIMES 学习时每个词需说几遍(1、2 遍;FOR_REG_2TIMES_FLOW_V2=1 时最多 3 遍)
CWSL_WAKEUP_THRESHOLD / CWSL_CMD_THRESHOLD 学习的唤醒词 / 命令词阈值门限(越小越灵敏)
CWSL_REG_VAD_LEVEL 学习过程灵敏度:0 低(抗噪)、1 高
CICWSL_TOTAL_TEMPLATE 可存储模板数量

注意

在线 SDK 只支持唤醒词学习。为避免指令词被学习成模板,请确保 cmd_info 表格中词条的语义 ID、命令词 ID 与需学习的词条语义 ID、命令词 ID 不重复。

10. 编译期互斥约束(部分)

SDK 在 user_config.h 中通过 #error 对非法组合做了强制校验,常见约束包括:

  • 压缩算法 SPEEX / OPUS / G722 只能三选一;云端播放 MP3 / PCM / OPUS / G722 只能择一;
  • USE_AI_DOA && USE_AEC_MODULE 时必须外挂 codec 做 AEC 信号回采(推荐 7243e,需使用 USE_CI_D06GT01J_BOARD);
  • USE_PWK 与动态 ALC、深度降噪、自学习、声音事件检测等算法不能同时使用;
  • 双麦算法(BF/DOA/去混响/任意MIC)与 USE_CI_D12GS01J_BOARD(131x)不能同时使用;
  • MSG_COM_USE_UART_EN 与 CLOUD_UART_PROTOCOL_EN 不能同时使用;
  • 离在线应用必须 USE_EXTERNAL_CRYSTAL_OSC = 1。

关于内存

音频上传/播放与压缩算法会显著消耗内存,SYS_HEAP_SIZE 需按所选组合配置(如 PCM 上传推荐 1024*130、SPEEX/MP3 推荐 1024*110)。具体组合请参考 ☞《CI13XX离在线大模型对话SDK开发流程》。