d1d25a09e7ffb6864273af8eafbdc3411e6f7121
ARCS 语音解决方案
基于 ARCS SDK 的语音交互解决方案,支持多项目的语音解决方案定制功能。
项目概述
本项目是一个完整的语音助手解决方案,集成了语音唤醒、语音识别、云端交互、本地播放等功能。
主要特性
- 语音唤醒和识别
- 云端语音服务对接
- 本地音频播放
- WiFi/BLE 网络连接
环境搭建
参考SDK的开发文档:
工程结构
顶层目录
voiceassistant/
├── apps/ # 应用方案工程集合
├── arcs-sdk/ # ARCS SDK 核心框架
├── modules/ # 项目级第三方模块
├── res/ # 资源文件(固件、配置、音频、图片等)
├── src/ # 语音交互核心代码
├── tools/ # 开发工具和脚本
├── yaml/ # 配置文件
└── build.sh # 工程构建脚本
详细目录说明
apps/ - 应用程序
包含多个应用方案项目,详细说明请参考对应工程下的README.MD(如有)。
src/ - 语音交互核心代码
包含语音助手的核心业务逻辑、中间件和工具库:
src/
├── category/ # 品类相关代码
│ ├── comm/ # 品类通用代码
│ ├── evb/ # EVB 品类实现
│ └── yuba/ # YUBA 品类实现
├── framework/ # 核心框架
│ └── voice_msg.* # 语音消息处理
├── middleware/ # 中间件层
├── server/ # 语音服务
├── shell/ # 调试命令行
│ └── cmd/ # Shell 命令实现
├── system/ # 系统服务
│ ├── platform.c # 平台抽象层
│ └── remote_logger.*# 远程日志
└── utils/ # 工具库
核心模块说明:
- category: 不同产品品类的特定实现,封装品类差异
- comm: 品类间通用代码和共享组件
- framework: 核心框架,提供语音消息传递机制
- middleware: 提供硬件抽象和系统服务,供应用层调用
- server: 语音交互核心逻辑,包括云端通信和唤醒处理
- shell: 提供调试命令行接口,用于开发调试
- system: 系统级服务,包括平台抽象和远程日志
- utils: 通用工具库,提供事件、配置、编解码等基础功能
快速开始
编译工程
基本编译命令,这里以/apps/evb-arcs项目为例,用户根据自己的实际项目路径选择:
./build.sh -S ./apps/arcs-evb -C
编译成功后,固件文件位于 build/arcs-evb.bin
固件烧录
FLASH 分区说明
参考对应app的资源分配置表说明文件
烧录方式
方式一: ROM 升级模式(空板烧录)
适用于首次烧录或 boot 程序损坏的情况。
进入 ROM 升级模式:
- 将开发板的
boot引脚接地 - 复位开发板
- 开发板进入 ROM 升级模式
烧录 boot 程序:
# 连接串口 UART0(GPIOA2_RX0/GPIOA3_TX0)
cskburn -C arcs -s /dev/ttyACM0 -b 3000000 0x0 ./res/res_pack_a/boot.bin
注意: boot 引脚和烧录串口引脚复用,烧录前需将 boot 引脚悬空
方式二: ADB 烧录(推荐)
适用于已有 boot 程序的开发板,支持快速烧录。
步骤 1: 进入恢复模式
adb shell recovery
步骤 2: 烧录固件和资源
参考对应app的资源分配置表说明文件,烧录所有分区数据.
步骤 3: 重启设备
adb shell reboot hard
常见问题
编译问题
Q: 找不到工具链
A: 检查环境变量是否正确设置:
echo $NUCLEI_TOOLCHAIN_PATH
echo $LISTENAI_TOOLS_PATH
Q: 编译失败
A: 尝试清理后重新编译:
./build.sh -C
烧录问题
Q: ADB 连接不上设备
A: 1. 检查 USB 连接
2. 运行 adb devices 查看设备
3. 尝试重启 adb: adb kill-server && adb start-server
Q: 烧录后无法启动
A: 1. 检查是否烧录了所有必要分区
2. 查看串口日志定位问题
3. 尝试重新烧录 boot.bin
版本信息
- 当前分支: master
- 主分支: master
参考文档
许可证
本项目遵循相应的开源许可证,详见各模块的 LICENSE 文件。
Description
Languages
C
94.8%
C++
1.2%
Shell
1.1%
Python
0.6%
Assembly
0.5%
Other
1.5%