Files
arcs/README.MD
2026-08-13 16:50:52 +08:00

183 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ARCS 语音解决方案
基于 ARCS SDK 的语音交互解决方案,支持多项目的语音解决方案定制功能。
## 项目概述
本项目是一个完整的语音助手解决方案,集成了语音唤醒、语音识别、云端交互、本地播放等功能。
### 主要特性
- 语音唤醒和识别
- 云端语音服务对接
- 本地音频播放
- WiFi/BLE 网络连接
## 环境搭建
参考SDK的开发文档
- [开发文档(在线)](https://docs2.listenai.com/arcs-sdk/v0.1.0/zh/html/get_started.html)
## 工程结构
### 顶层目录
```
voiceassistant/
├── apps/ # 应用方案工程集合
├── arcs-sdk/ # ARCS SDK 核心框架
├── modules/ # 项目级第三方模块
├── res/ # 资源文件(固件、配置、音频、图片等)
├── src/ # 语音交互核心代码
├── tools/ # 开发工具和脚本
├── yaml/ # 配置文件
└── build.sh # 工程构建脚本
```
### 详细目录说明
#### [apps/](apps/) - 应用程序
包含多个应用方案项目,详细说明请参考对应工程下的README.MD如有
#### [src/](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项目为例,用户根据自己的实际项目路径选择:
```bash
./build.sh -S ./apps/arcs-evb -C
```
编译成功后,固件文件位于 [build/arcs-evb.bin](build/arcs-evb.bin)
### 固件烧录
#### FLASH 分区说明
参考对应app的资源分配置表说明文件
#### 烧录方式
##### 方式一: ROM 升级模式(空板烧录)
适用于首次烧录或 boot 程序损坏的情况。
**进入 ROM 升级模式:**
1. 将开发板的 `boot` 引脚接地
2. 复位开发板
3. 开发板进入 ROM 升级模式
**烧录 boot 程序:**
```bash
# 连接串口 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: 进入恢复模式**
```bash
adb shell recovery
```
**步骤 2: 烧录固件和资源**
参考对应app的资源分配置表说明文件,烧录所有分区数据.
**步骤 3: 重启设备**
```bash
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
## 参考文档
- [ARCS SDK 文档](arcs-sdk/README.MD)
- [ebus 模块文档](modules/ebus/readme.md)
- [lschat 模块文档](modules/lschat/README.MD)
## 许可证
本项目遵循相应的开源许可证,详见各模块的 LICENSE 文件。