跳转至

SDK 快速开发


1. 概述

本文为CI13XX系列芯片离线语音软件开发包(CI13XX_SDK_ASR_Offline_Vx.x.x)的快速开发指南,旨在方便开发者基于该SDK快速熟悉开发调试步骤。SDK下载地址为 ☞SDK下载链接


2. 用户指南

2.1. 软件开发环境介绍

2.1.1. 启英泰伦集成开发环境

开发者参照☞《IDE 搭建与使用》完成启英泰伦集成开发环境的搭建,即可在搭建好的集成开发环境上使用 离线语音识别SDK

2.1.2. CI13XX 系列离线语音识别SDK

示例工程、技术文档及配套工具包均包含在SDK中。请访问 ☞启英泰伦语音 AI 平台 下载最新版SDK。在SDK中包含有打包升级工具(PACK_UPDATE_TOOL.exe),该软件工具用于 CI13XX 系列芯片的打包固件、固件升级和打印调试等,操作步骤请参考☞《IDE 搭建与使用》文档第 6 章(固件固件升级)。

2.2. 硬件开发板介绍

下面以 CI1306开发板套件 为例介绍硬件,该开发板可以到 ☞样品购买 链接中购买。其余开发板的使用详见开发板使用指南。

开发板套件 支持芯片 购买链接 使用指南
CI1306开发板套件 CI1306 样品购买 开发板使用指南
CI1303开发板套件 CI1303、CI1302、CI1301 样品购买 开发板使用指南
CI1302开发板套件 CI1302、CI1301 样品购买 开发板使用指南

2.2.1. 开发板实物图

开发板型号:CI-D06GT01D(芯片型号:CI1306)。

开发板正面

图2-1 CI1306开发板正面

2.2.2. 开发板主要接口介绍

  • CI-D06GT01D开发板主要接口图如下图所示。

开发板

图2-3 开发板主要接口示意图
  • 1:USB Type-C接口 —— 提供 5 V 供电,并支持固件升级和打印调试;

  • 2:USB Type-C 5 V 供电拨码开关;

  • 3:UART0 TX / RX 排针 —— 用于固件升级和打印调试;若采用 USB Type-C 固件升级和打印调试,请将该排针垂直方向短接;

  • 4:麦克风底座;

  • 5:喇叭底座;

  • 6:复位按键,在固件升级过程中需要按下复位按键,开始固件升级。


3. 应用程序

目前针对开发CI13XX系列芯片的应用程序,我司已提供一套离线语音识别SDK(CI13XX_SDK_ASR_Offline_Vx.x.x)用于代码开发相关操作,下面将对该SDK进行介绍。

3.1. SDK整体架构介绍

文件名 / 目录 作用
components 组件:播放器、ASR 识别、按键、传感器、FreeRTOS 等
driver CI13XX 系列芯片底层驱动、板级支持配置
libs 预编译静态/动态库文件
projects 示例工程
startup CI13XX 系列芯片启动代码
system 系统相关代码、中断处理程序、平台配置
tools 工具:images 合成、固件打包升级工具等

3.2. CI13XX_SDK_ASR_Offline_Vx.x.x示例工程介绍

为便于快速上手,CI13XX_SDK_ASR_Offline_Vx.x.x已内置示例工程。通过编译、运行这些示例,开发者可迅速了解 SDK 的架构与使用方法。

示例工程路径:CI13XX_SDK_ASR_Offline_Vx.x.x\projects\

工程文件 作用
offline_asr_pro_sample 离线语音识别 Pro 版示例工程

4. 固件升级

4.1 .bin文件说明

CI13XX 应用固件由 5 个 bin文件组成:

Image 文件 功能说明
asr.bin 语言模型
dnn.bin 声学模型
user_code.bin 应用程序,由SDK编译生成
user_file.bin 开发者定义的命令词列表以及其他的bin文件
voice.bin 播报音

4.2 .bin文件生成脚本

  • 路径:CI13XX_SDK_ASR_Offline_Vx.x.x\projects\offline_asr_pro_sample\firmware\
  • 脚本:合成分区bin文件.bat
  • 功能:执行脚本后,系统将在 firmware\\asrdnnuser_filevoice 子目录中自动生成 asr.bindnn.binuser_file.binvoice.bin 四个分区文件。

4.3 固件打包升级流程

下面将以 offline_asr_pro_sample 工程为例,介绍如何使用串口升级工具 PACK_UPDATE_TOOL.exe 完成固件升级。

步骤 1:硬件连线

开发板提供两种常用固件升级连线方式,硬件连接选择可根据实际环境灵活调整:
* USB Type-C 直连 —— 利用板载 USB 转串口控制器,单根数据线即可完成供电、串口通讯及固件升级,操作简便;
* USB 转串口工具 —— 在无 USB Type-C 数据线时,可使用USB转串口工具进行供电,以及通过排针连接芯片和USB转串口工具的 TX/RX 引脚完成固件升级。

方法 A:USB Type-C 直连

串口升级硬件连线1

图4-1 硬件连接图一
  • 1:USB Type-C 数据线,连接至 PC,参见上图标号 1

  • 2:连接 UART0_TX 与 UART0_RX,参见上图标号 2

方法 B:使用USB转串口工具固件升级

串口升级硬件连线2

图4-2 硬件连接图二
  • 1:5 V 供电 (VCC/GND),参见上图标号 1

  • 2:UART0_TX → 转串口工具 RXD,UART0_RX → 转串口工具 TXD,参见上图标号 2

  • 3:USB转串口工具 —— 通过 USB 口连接至 PC

步骤 2:编译生成 user_code.bin

  1. 参照☞《IDE 搭建与使用》文档完成环境配置并执行编译。

  2. 编译完成后,在 projects\offline_asr_pro_sample\firmware\user_code 目录下生成 user_code.bin(见图 4-3)。

user_code.bin 生成

图4-3 user_code.bin 生成

步骤 3:生成其余四个 bin 文件

以下提供两种生成方式:

方法 1:在 VS Code 中直接生成

  1. 在 VS Code 中运行 合成分区bin文件.bat(见图 4-4)。

VS Code 终端中直接合成

图4-4 VS Code 终端中直接合成
  1. 在VS Code 终端中显示的运行结果如图 4-5 所示。

运行结果

图4-5 运行结果

方法 2:双击脚本文件

  1. 进入 projects\offline_asr_pro_sample\firmware 目录(图 4-6)。

firmware文件目录

图4-6 firmware文件目录
  1. 双击 合成分区bin文件.bat,脚本开始运行后将会出现如图4-7所示的界面,脚本执行完毕后将在 asrdnnuser_filevoice 子目录中自动生成对应的 bin 文件。

软件运行

图4-7 合成分区bin文件脚本运行界面

注意

处理完成后cmd.exe自动退出,如果没有自动退出,生成.bin文件失败,请检查asr、dnn、user_file、voice下文件或文件名是否正确;

步骤 4:合并五个 bin 文件

启动 PACK_UPDATE_TOOL.exe 软件,推荐两种方式(任选其一即可):

方式 1:在 VS Code 中启动

  1. 在 VS Code 中启动打包升级工具 PACK_UPDATE_TOOL.exe(见图 4-8)。

启动升级工具

图4-8 VS Code 中启动打包工具

方式 2:双击批处理脚本

  1. 进入 projects\offline_asr_pro_sample\firmware 目录,如图4-6所示。
  2. 双击 打包升级.bat,脚本将自动调用 PACK_UPDATE_TOOL.exe

首次启动 PACK_UPDATE_TOOL.exe 时,会弹出芯片系列选择框(图 4-10)。请选择 “CI13XX 系列” “CI1306”芯片后继续。

串口升级工具选择界面

图4-10 串口升级工具选择界面

串口升级工具主界面

图4-11 串口升级工具主界面

串口升级工具主界面介绍: - CI130X 系列芯片 —— 当前是CI130X系列芯片使用模式 - CI1306 —— 当前选择的芯片型号是CI1306 - English —— 切换界面语言(中 / 英) - 固件打包 —— 进入固件打包界面 - 固件升级 —— 进入固件升级界面 - F1 —— 打开帮助文档

点击串口升级工具主界面的(固件打包)按钮,界面如下图4-12所示:

串口升级工具固件打包界面

图4-12 串口升级工具固件打包界面

根据各 bin 文件实际大小检查并调整五个分区的“预留大小”。示例: - user_code.bin 如果实际大小 0x232A3 字节,原预留 0x23000,应改为 ≥ 0x24000 - voice.bin 如果实际大小 0xD80B9 字节,原预留 0xF0000,应下调至接近且不小于实际值,例如 0xD9000,以避免浪费 Flash 空间。

注意: 预留大小必须以 0x1000 为步进。

单击“打包固件”按钮后,系统会弹出“固件已生成”提示框。点击“确定”后,固件便生成完毕,并保存在 projects\\offline_asr_pro_sample\\firmware 目录下,文件名由软件名称与版本号自动拼接,例如 Firmware_V200.bin(图 4-13)。

串口升级工具打包成功界面

图4-13 串口升级工具打包成功界面

步骤5:升级固件

升级前,请先确认以下事项:

  1. 确认硬件连线正确(参见步骤 1);

  2. 确认 USB Type-C 数据线或USB转串口工具已连接至 PC,且 PC 已识别对应 COM 端口;

  3. 确认固件成功生成;

  4. 确认麦克风和喇叭已正确连接至开发板。

点击图4-10或图4-11界面的固件升级按钮,界面如下图4-14所示:

串口升级工具升级界面

图4-14 串口升级工具升级界面
  1. 选择步骤 4 生成的固件文件,或启英泰伦官方提供的固件;
  2. 选择正确的 COM 端口;
  3. 复位开发板(按复位键或断电重启,图2-3所示),升级工具将自动开始升级;完成后状态栏提示 Update successful

提示: 更多固件制作信息请参阅 ☞《命令词和固件制作指南》,或在图4-10起始页按 F1 查看帮助。

步骤6:验证固件

固件升级完成后,请给开发板重新上电或按复位键。offline_asr_pro_sample 工程启动后将播放启动提示音。提示音结束后,说唤醒词“智能管家”应得到响应并播报“你好”,即表示升级成功。若想更换命令词/播报音,请参考☞语音固件开发指南

提示:若未听到语音播报,请参阅第 5 章“调试”排查原因。


5. SDK调试

SDK 内置基于 Log 的调试机制,可跟踪代码执行流程及关键数据。

5.1. Log机制

开发者可通过串口输出 Log 信息,追踪应用程序运行状态。

5.1.1. Log 输出管脚配置

默认情况下,UART0_TX 为 Log 串口的输出引脚。若需改用其他串口,请在 user_config.h 中配置宏 CONFIG_CI_LOG_UART(图 5-1)。

offline_asr_pro_sample工程配置Log输出配置

图5-1 offline_asr_pro_sample工程配置Log输出管脚

建议仅在工程路径下的 user_config.h 中修改配置,避免直接修改 sdk_default_config.h

5.1.2. Log 串口工具配置

PC 端串口工具配置示例如下。端口号根据系统为USB转串口工具分配的COM端口进行选择,波特率设置为921600,“日志输出”选项前打勾:

PC串口工具配置

图5-2 PC串口工具配置

注意: 串口输出包含中文,请使用支持 UTF-8 字体的串口工具。

推荐使用 SecureCRT 等专业串口工具。

5.1.3. Log 打印通用接口

通用 Log 打印接口:

mprintf(fmt, args...); // 用法与 printf 相同

5.1.4. Log 打印封装接口

为了方便用户调试,SDK封装以下接口:

表5-1 打印API

Debug API Funtion
ci_logverbose(comlevel, message, args…) 日志打印–详细
ci_logdebug(comlevel, message, args…) 日志打印–调试
ci_loginfo(comlevel, message, args…) 日志打印–信息
ci_logwarn(comlevel, message, args…) 日志打印–警告
ci_logerr(comlevel, message, args…) 日志打印–错误
ci_logassert(comlevel, message, args…) 日志打印–断言

调试等级,表示log要打印的级别。定义了7种类别:

表5-2 调试等级

Debug Level Usage Scenario
#define CI_LOG_VERBOSE 全部打印
#define CI_LOG_DEBUG 调试、信息、警告,错误、断言
#define CI_LOG_INFO 信息、警告,错误、断言
#define CI_LOG_WARN 警告、错误、断言
#define CI_LOG_ERROR 错误、断言
#define CI_LOG_ASSERT 断言
#define CI_LOG_NONE 不打印

注意: 若使用表 5-1 所示封装接口,需在配置中将 CONFIG_CI_LOG_EN 设为 1

5.1.5. Log 打印长度配置

#define UART_LOG_BUFF_SIZE          512

默认打印长度 512 字节,可通过宏 UART_LOG_BUFF_SIZE 调整。


6. 结语与支持

至此,您已完成 CI13XX 系列 SDK 的环境搭建、固件升级及基本调试流程。后续可根据业务需求,在示例工程基础上进行二次开发,或参考组件源码快速集成更多功能。