从2.2.7迁移到3.0.19¶
CI13XX_SDK_LLM_AIOT 从 2.2.7 迁移到 3.0.19,主要修改功能如下:
1. 算法使能机制(重要变更)¶
V3.0.19 起**取消 CI_ALG_TYPE 单值选择方式**,算法功能改由公共配置文件 system/user_alg_config.mk 中独立的 USE_xxx 开关控制(该文件由各工程 project_file/makefile 直接 include,并按 ifeq 转成 -D 编译宏):
| 配置项 | 说明 |
|---|---|
USE_ASR |
ASR 识别(除事件检测外其他功能都依赖识别,默认开启) |
USE_ANY_MIC |
任意 MIC 识别(双麦) |
USE_AEC |
回声消除(单/双麦可用) |
USE_CWSL |
离线命令词自学习 |
USE_NN_DENOISE |
NN 深度降噪 |
USE_NN_VAD |
NN 语音活性检测算法 |
USE_GCC_DOA / USE_NN_DOA |
GCC DOA / NN DOA(当前仅支持 GCC DOA) |
USE_IIS_RECORD |
IIS 采音 |
USE_REF_IN_FROM_INNER_CODEC |
双麦算法时使用模拟右麦作参考信号(置 1 后 makefile 向两个核传递 -DREF_IN_FROM_INNER_CODEC=1) |
2. 双核与 BNPU 核算法工程¶
- BNPU 核算法改为**源码工程**形式随包提供:
components/bnpu_core_alg_pro(V3.0.19 由projects移入components),编译产出单一运行体libs/ci130x_asr_alg_bnpu.a,取代 V2.2.7 中按算法组合预编译的libbnpu_core_alg_pro_*.a; - BNPU 工程内目录:
src/(main.c、nuclear_com_task_bnpu.c、user_config.h)、lds/(ci130x_asr_alg_bnpu.lds、_temp)、project_file/(makefile、source_file.prj、宏快照config.a),V3.0.19 起还包含firmware/user_code/产物目录; - MCU 核链接脚本统一为
projects\<工程名>\lds\ci130x_asr_alg_mcu.lds(配套ci130x_asr_alg_mcu_temp.lds模板),取代 V2.2.7 的ci130x_alg_pro_aec_denoise_nn.lds等四个组合脚本; - V3.0.19 新增算法公共接口
components/ci_common/ci_alg_common_api.h/.c:ci_common_create()、upsample_linear_interp()(线性插值升采样)、downsample_process()(低通滤波降采样),三个模板工程以源码方式编译该.c,同时新增预编译库libs/libci_common.a; - 新增
system/platform_config_bnpu.c、utils/common_tail_bnpu.mk、utils/common_tail_mcu.mk、utils/common_temp.lds、utils/parse_user_alg_config_mk.lua。
3. NN 降噪¶
- 新增 NN 降噪功能(
USE_NN_DENOISE)与 NN 软件省内存方案; - 新增**降噪强度 beta 系数**(
denoise_beta,范围0.0 < beta <= 1.0,1.0 为默认降噪强度)与**降噪强度自适应模式**(DENOISE_STRENGTH_ADAPT_ENABLE,配合 NN 噪声估计模块,按噪声能量分区在 beta 上下限之间取值); - 修复降噪强度 beta 系数未生效、降噪采音出现频繁杂音的问题;
- 降噪模型最终替换为 ANS1-061(
firmware/dnn/[60003]ANS1-061.bin),并同步调整 VAD 参数;external\model\nn_denoise目录在 V3.0.19 中已去除中文括号(原nn_denoise(深度降噪));
4. NN VAD¶
-USE_NN_VAD,算法库 libtvad.a,原 AUDIO_VAD_CHECK_ENABLE 与 AI_DOA_OUT_TYPE 相关配置方式调整;
- 新增 NN VAD 参数宏:
- NN_VAD_SENSITIVITY:灵敏度等级 0/½(低/中/高);
- NN_VAD_FRONT_PORCH:后窗口大小,VAD_ON→VAD_END 最多持续帧数(20~40 帧,过小会导致停顿即结束)(V3.0.19 由 NN_VAD_END_DELAY 更名);
- NN_VAD_BACK_PORCH:前端回退帧数(默认 25 帧 ≈ 400ms)(V3.0.19 由 PCM_ALG_ROOLBACK_FRAME_LEN 更名);
- NN_VAD_VALID_NUM:VAD_ON 状态至少满足的有效帧数;
- NN_VAD_VALID_CHECK_MODE:语音有效性检查模式,1-前置检查(等待判断语音有效后回退已存录音再上传)/ 2-后置检查(优先实时上传,检查有效性后通知 WIFI 端,建议降低灵敏度并关闭云端响应超时);
-
其余 VAD 宏在 V3.0.19 中的调整:
VAD_TIMEOUT_CHECK→VAD_TIMEOUT_CHECK_ENABLE、VAD_FORCE_OVER_NUM_TIME→VAD_TIMEOUT_VALUE;VAD_ON_MIN_NUM(VAD 有效最短帧数)已废弃(源码注释为“暂不使用”); -
POST_MIN_CNT默认值调整为 2(位于system/sdk_default_config.h,可在 1~3 之间调整:1 提升识别率但误识增加,3 误识最低但识别率下降); - AEC 处理时不进行降噪处理,并同时输出两路不同参数的数据(一路给 VAD、一路给 ASR);修复识别慢 300 ms 问题。
5. DOA 与 AEC¶
- 新增
GCC_DOA_OUT_TYPE:0-周期输出角度、1-唤醒词和命令词都输出角度(取代 V2.2.7 的AI_DOA_OUT_TYPE);NN DOA 对应NN_DOA_OUT_TYPE; - AEC 最终参数更新;新增 AEC 自动增益输出工具(
AUTO_GET_AEC_GAIN、GET_AEC_GAIN_AUDIO_ID等),并将自动增益工具原始播报音频幅值在 0~2 dBFS 情况下的截幅判断阈值由 5000 调整为 4500; - 数字双麦 mic 加模拟 mic 右通道作为参考回路方案:做双麦 AEC 时可节约一个 7243e 外部 codec 的成本;
- 板级新增右麦克单端差分配置:
REF_DIFF_SINGLE(AEC 时使用)、MIC_DIFF_SINGLE(不开 AEC 时双麦使用),并新增REF_IN_FROM_INNER_CODEC;默认模拟麦克;
6. 示例工程与全局宏¶
- 三个模板工程**移除
app/app_ble、app/app_demo目录**,components/ci_ble(蓝牙)、components/tts(语音合成)组件从 SDK 移除;相关宏(CIAS_BLE_*、BLE_*、UART_TTS_*、CIAS_AIOT_DEMO_ENABLE等)一并删除; - 新增
USE_IR_ENABLE(原USE_IR_ENABEL拼写修正)、ASR_MIDDLE_RESULT_OUT_EN、AUDIO_IN_FROM_DMIC、DEFAULT_EXPECT_VOLUM、DEFAULT_MIN_MIC_GAIN、MIC_RECORD_IIS_SELECT、IIS_CHANNEL_ENG_CALC_EANBLE等宏;USE_IIS1_OUT_PRE_RSLT_AUDIO由USE_IIS_RECORD(makefile 开关)替代;
7. 模型与固件¶
- 默认 ASR 模型改为 PRO5 V02142:语言模型
firmware/asr/lm_chinese_CI1306_V02142.dat、声学模型firmware/dnn/G3-FS-CH-S-V02142.fefixbin458(原asr_chinese_CI1306_V01458/G3-TY-CH-S-V01458); - 播报音新增
firmware/voice/src/[3000]pink1.wav、[3001]pink_aec_thr.wav(AEC 调试音频);
8. OTA 与打包工具¶
- OTA 与 PACK_UPDATE_TOOL 沿用 V2.2.7 的 OTA V4.1.12 / PACK_UPDATE_TOOL 4.0.7(
firmware/config.ini中firmware_version仍按FW_V2,打包固件时按要求设为FW_V4); external下 OTA 参考目录由ota参考更名为ota_reference,其中的 OTA 说明文档更新为《启英泰伦OTA V4.1.X 使用和协议说明文档(软件版本V4.1.12)-20260721》;同时删除external/firmware参考目录;firmware/config.ini分区地址整体偏移 0x1000(起始地址减小 0x1000):command_addr0x3C000→0x3B000、code1_size0x38000→0x37000,module_addr、user_file_addr、voice_addr等同步偏移;升级/打包脚本务必使用 V3.0.19 包内的firmware/config.ini与合成分区bin文件.bat,不要沿用旧版本地址表。