Skip to content

Commit b405b82

Browse files
committed
[update] README camera
1 parent d0547ee commit b405b82

File tree

15 files changed

+1742
-86
lines changed

15 files changed

+1742
-86
lines changed

.vscode/launch.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
// 使用 IntelliSense 了解相关属性。
3+
// 悬停以查看现有属性的描述。
4+
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
"name": "gdb 启动",
8+
"type": "cppdbg",
9+
"request": "launch",
10+
"program": "/home/nihao/w2T/axera/StackFlow/projects/test_kit_demo3/dist/test_kit_demo3",
11+
"args": [],
12+
"stopAtEntry": false,
13+
"cwd": "${workspaceFolder}",
14+
"miDebuggerPath": "/opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gdb",
15+
"miDebuggerServerAddress": "localhost:1234",
16+
"environment": [],
17+
"externalConsole": true,
18+
"MIMode": "gdb",
19+
"setupCommands":[{
20+
"description": "Enable pretty-printing for gdb",
21+
"text": "-enable-pretty-printing",
22+
"ignoreFailures": true
23+
}]
24+
25+
]
26+
}

README_zh.md

Lines changed: 70 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,100 +1,93 @@
1-
# Module-LLM
1+
# StackFlow
22

3-
<div class="product_pic"><img class="pic" src="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/products/module/Module%20LLM/4.webp" width="25%">
3+
<p align="center"><img src="https://static-cdn.m5stack.com/resource/public/assets/m5logo2022.svg" alt="basic" width="300" height="300"></p>
44

5-
## 描述
65

7-
**Module LLM**是一款集成化的离线大语言模型 (LLM) 推理模块,专为需要高效,智能交互的终端设备设计,无论是在智能家居,语音助手,还是在工业控制中,Module LLM 都能为您带来流畅,自然的 AI 体验,无需依赖云端,确保隐私安全与稳定性。集成 **StackFlow** 框架,配合 **Arduino/UiFlow** 库,几行代码就可轻松实现端侧智能。<br>
8-
搭载爱芯 **AX630C** SoC 先进处理器,集成 3.2 TOPs 高能效 NPU,原生支持 Transformer 模型,轻松应对复杂 AI 任务。配备 **4GB LPDDR4** 内存(其中1GB供用户使用,3GB专用于硬件加速)和**32GB eMMC**存储,支持多模型并行加载与串联推理,确保多任务处理流畅无阻。运行功耗仅约 1.5W,远低于同类产品,节能高效,适合长时间运行。<br>
9-
集成麦克风,扬声器,TF存储卡,**USB OTG** 及 RGB状态灯,满足多样化应用需求,轻松实现语音交互与数据传输。灵活扩展:板载 SD 卡槽支持固件冷/热升级,**UART** 通信接口简化连接与调试,确保模块功能持续优化与扩展。USB 口支持主从自动切换,既可以做调试口,也可以外接更多 USB 设备如摄像头。搭配 LLM 调试套件,用于扩展百兆以太网口,及内核串口,作为 SBC 使用。<br>
10-
多模型兼容,出厂预装 **Qwen2.5-0.5B** 大语言模型,内置**KWS**(唤醒词),**ASR**(语音识别),**LLM**(大语言模型)及**TTS**(文本转语音)功能,且支持分开调用或 **pipeline** 自动流转,方便开发。后续将支持Qwen2.5-1.5B、Llama3.2-1B及InternVL2-1B等多种端侧LLM/VLM模型,支持热更新模型,紧跟社区潮流,适应不同复杂度的AI任务;视觉识别能力:支持CLIP、YoloWorld等Open world模型,未来将持续更新DepthAnything、SegmentAnything等先进模型,赋能智能识别与分析;<br>
11-
即插即用,搭配**M5主机**,Module LLM 实现即插即用的AI交互体验。用户无需繁琐设置,即可将其集成到现有智能设备中,快速启用智能化功能,提升设备智能水平。该产品适用于离线语音助手,文本语音转换,智能家居控制,互动机器人等领域。
6+
<p align="center">
7+
StackFlow 是一个简单、疾速、优雅的面向嵌入式开发者一站式 AI 服务基础设施项目,目的是让 Maker 和 Haker 们能够快速的在当前的嵌入式设备中获取到强大的 AI 加速能力。StackFlow 能够为各类人机交互设备注入智慧的灵魂。
8+
</p>
129

10+
<p align="center">
11+
<a href="https://opencollective.com/wukong-robot/contribute/tier/8131-sponsor" target="_blank"><img src="https://avatars.githubusercontent.com/u/17420673?s=48&v=4"></a>
12+
</p>
1313

1414

1515

16-
## 产品特性
16+
## Table of Contents
1717

18-
- 离线推理,3.2T@INT8精度算力
18+
* [特性](#特性)
19+
* [Demo](#demo)
20+
* [环境要求](#环境要求)
21+
* [安装](#安装)
22+
* [升级](#升级)
23+
* [运行](#运行)
24+
* [配置](#配置)
25+
* [API接口](#api-接口)
26+
* [贡献](#贡献)
1927

20-
- 集成KWS(唤醒词),ASR(语音识别),LLM(大语言模型),TTS(文本生成语音)
2128

22-
- 多模型并行
29+
## 特性
30+
![](doc/assets/network.png)
31+
* 分布式通信架构。每个单元都能够单独工作或者和其他单元配合工作。
32+
* 多模型支持。包括但不限于语音识别、语音合成、图像识别、自然语言处理、LLM 大模型助手推理等。
33+
* 数据内部流转。可根据需求配置不同单元协同工作,避免复杂的数据处理流程。
34+
* 简单易用。通过标准 json 交换数据,快速实现 AI 服务。
35+
* 离线化运行。无需联网即可实现本地 AI 服务。
36+
* 多平台支持。包括但不限于 Module LLM、LLM630 Compute Kit 等。
37+
* 灵活配置。所有单元均可完全配置运行参数,在相同的数据流处理情况下,随意更换模型和修改模型运行参数。
38+
* 简单易用。开发者只需关注模型和硬件平台,无需关注底层通信和数据处理细节,即可快速实现 AI 服务。
39+
* 高效稳定。通过 ZMQ 信道传输,数据传输效率高,延迟低,稳定性强。
40+
* 开源免费。StackFlow 采用 MIT 许可证,开发者可以自由使用和修改。
41+
* 多语言支持。单元主体由 C++ 实现,性能极致优化,可扩展至多变成语言支持。(需要支持 ZMQ 编程)
2342

24-
- 板载32GB eMMC存储和4GB LPDDR4内存
43+
StackFlow 还在不断优化和迭代,在框架更加完善的同时,会持续增加更多功能,敬请期待。
2544

26-
- 板载麦克风及扬声器
45+
StackFlow 语音助手的主要工作模式:
2746

28-
- 串口通信
2947

30-
- SD卡固件升级
48+
开机后,KWS、ASR、LLM、TTS、AUDIO 被配置成协同工作状态。当 KWS 从 AUDIO 单元获取的音频中检测出关键词后,发出唤醒信号。此时,ASR 开始工作,识别 AUDIO 的音频数据,并将结果发布到自己的输出信道中。LLM 接收到 ASR 转换后的文本数据后,开始进行推理,并将结果发布到自己的输出信道中。TTS 接收到 LLM 的结果后,开始进行语音合成,合成完成后根据配置来播放合成好的音频数据。
3149

32-
- 支持ADB调试
3350

34-
- RGB提示灯
51+
## Demo
52+
- [StackFlow 连续语音识别]()
53+
- [StackFlow LLM 大模型唤醒对话]()
54+
- [StackFlow TTS 语音合成播放]()
55+
- [StackFlow yolo 视觉检测]()
56+
- [StackFlow VLM 图片描述]()
3557

36-
- 内置ubuntu系统
58+
## 环境要求 ##
59+
当前 StackFlow 的 AI 单元是建立在 AXERA 加速平台之上的,主要的芯片平台为 ax630c、ax650n。系统要求为 ubuntu。
3760

38-
- 支持OTG功能
61+
## 安装 ##
62+
StackFlow 的程序和模型数据是分开的,程序安装完成后,需要单独下载模型数据,并配置到程序中。安装是先安装程序包,然后再安装模型包。
63+
裸机环境安装见[StackFlow 安装教程]()
3964

40-
- 支持Arduino/UIFlow
65+
## 升级
66+
升级时可单独升级 AI 单元,或者升级整个 StackFlow 框架。
67+
升级单个单元时可通过 SD 卡升级或者手动 `dpkg` 命令进行安装。
68+
## 运行 ##
69+
相关 AI 服务会在开机时自动运行,也可以通过手动命令启动。
70+
sys 单元运行状态查询:
71+
```bash
72+
systemctl status llm-sys
73+
```
74+
相关命令可参考 systemd 服务命令。
4175

42-
76+
## 配置 ##
77+
StackFlow 的配置分为两类,一类是单元工作参数配置,一类是模型工作参数配置。
78+
两类配置文件均采用 json 格式,配置文件位于多个目录下,目录如下:
79+
```
80+
/opt/m5stack/data/models/
81+
/opt/m5stack/share/
82+
```
83+
## API 接口 ##
84+
StackFlow 可通过 UART 和 TCP 端口进行访问。
85+
## 贡献
4386

87+
* 喜欢本项目请先打一颗星;
88+
* 提 bug 请到 [issue 页面](https://github.com/m5stack/StackFlow/issues)
89+
* 要贡献代码,欢迎 fork 之后再提 pull request;
4490

45-
## 应用
91+
## Star 历史
4692

47-
- 离线语音助手
48-
- 文本语音转换
49-
- 智能家居控制
50-
- 互动机器人
51-
52-
## 规格参数
53-
54-
| 规格 | 参数 |
55-
| ------------ | --------------------------------------------------------------------------- |
56-
| 处理器SoC | AX630C@Dual Cortex A53 1.2 GHz <br> MAX.12.8 TOPS @INT4,and 3.2 TOPS @INT8 |
57-
| 内存 | 4GB LPDDR4(1GB系统内存 + 3GB 硬件加速专用内存) |
58-
| 存储 | 32GB eMMC5.1 |
59-
| 通信接口 | 串口通信 波特率默认 115200@8N1(可调) |
60-
| 麦克风 | MSM421A |
61-
| 音频驱动 | AW8737 |
62-
| 扬声器 |@1W,尺寸:2014 腔体喇叭 |
63-
| 内置功能单元 | KWS(唤醒词),ASR(语音识别),LLM(大语言模型),TTS(文本生成语音) |
64-
| RGB灯 | 3x RGB LED@2020 由LP5562驱动 (状态指示) |
65-
| 功耗 | 空载:[email protected],满载:[email protected] |
66-
| 按键 | 用于升级固件进入下载模式 |
67-
| 升级接口 | SD卡/Type C口 |
68-
| 工作温度 | 0-40°C |
69-
| 产品尺寸 | 54x54x13mm |
70-
| 包装尺寸 | 133x95x16mm |
71-
| 产品重量 | 17.4g |
72-
| 包装重量 | 32.0g |
73-
74-
## 相关链接
75-
76-
- [AX630C](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/products/module/Module%20LLM/AX630C.pdf)
77-
78-
## PinMap
79-
80-
| Module LLM | RXD | TXD |
81-
| ------------ | --- | --- |
82-
| Core (Basic) | G16 | G17 |
83-
| Core2 | G13 | G14 |
84-
| CoreS3 | G18 | G17 |
85-
86-
>LLM Module引脚切换| LLM Module预留了引脚切换焊盘, 一些出现引脚复用冲突的情况下, 可以通过切割PCB线路然后跳线连接至其他组引脚。
87-
88-
<img alt="module size" src="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/products/module/Module%20LLM/03.jpg" width="25%" />
89-
90-
> `CoreS3`为例子,第一列(左绿色框)是串口通讯的TX引脚,用户根据需要四选一,(从上到下分别代表引脚G18 G7 G14 G10),默认是IO18引脚,如需要切换其他引脚,切断焊盘连接线(红线处)(建议使用刀片切割),然后连接下面三个引脚之间的一个即可;第二列(右绿色框)是RX引脚切换,如上所述,也是四选一操作。
91-
92-
93-
94-
## 视频
95-
96-
- Module LLM 产品介绍以及例子展示 [Module_LLM_Video.mp4](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/products/module/Module%20LLM/Module_LLM_Video.mp4)
97-
98-
## AI Benchmark 对比
99-
100-
<img alt="compare" src="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/products/module/Module%20LLM/Benchmark%E5%AF%B9%E6%AF%94.png" width="100%" />
93+
[![Star History Chart](https://api.star-history.com/svg?repos=m5stack/StackFlow&type=Date)](https://star-history.com/#m5stack/StackFlow&Date)

doc/assets/StackFlow_unit.dot

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
digraph G {
2+
SYS -> KWS [color="purple"];
3+
SYS -> ASR [color="purple"];
4+
SYS -> LLM [color="purple"];
5+
SYS -> TTS [color="purple"];
6+
SYS -> AUDIO [color="purple"];
7+
SYS -> CAMERA [color="purple"];
8+
SYS -> VAD [color="purple"];
9+
SYS -> VLM [color="purple"];
10+
SYS -> YOLO [color="purple"];
11+
SYS -> DEPTH [color="purple"];
12+
KWS -> SYS [color="green"];
13+
ASR -> SYS [color="green"];
14+
LLM -> SYS [color="green"];
15+
TTS -> SYS [color="green"];
16+
AUDIO -> SYS [color="green"];
17+
CAMERA -> SYS [color="green"];
18+
VAD -> SYS [color="green"];
19+
VLM -> SYS [color="green"];
20+
YOLO -> SYS [color="green"];
21+
DEPTH -> SYS [color="green"];
22+
AUDIO -> KWS [color="blue"];
23+
AUDIO -> ASR [color="blue"];
24+
AUDIO -> VAD [color="blue"];
25+
CAMERA -> YOLO [color="blue"];
26+
CAMERA -> DEPTH [color="blue"];
27+
CAMERA -> VLM [color="blue"];
28+
ASR -> VLM [color="blue"];
29+
VLM -> TTS [color="blue"];
30+
KWS -> ASR [color="blue"];
31+
KWS -> LLM [color="blue"];
32+
KWS -> AUDIO [color="blue"];
33+
ASR -> LLM [color="blue"];
34+
LLM -> TTS [color="blue"];
35+
TTS -> AUDIO [color="blue"];
36+
}

doc/assets/network.png

115 KB
Loading

doc/projects_llm_framework_doc/llm_sys_en.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,82 @@ internally handling port resource allocation and a simple in-memory database.
66
## External API
77

88
- sys.ping: Test if communication with the LLM is possible.
9+
```json
10+
{
11+
"request_id": "2",
12+
"work_id": "sys",
13+
"action": "ping"
14+
}
15+
```
916
- sys.lsmode: Models that have existed in the system in the past.
17+
```json
18+
{
19+
"request_id": "2",
20+
"work_id": "sys",
21+
"action": "lsmode"
22+
}
23+
```
1024
- sys.bashexec: Execute bash commands.
25+
```json
26+
{
27+
"request_id": "2",
28+
"work_id": "sys",
29+
"action": "bashexec",
30+
"object": "sys.utf-8.stream",
31+
"data" : {
32+
"index": 0,
33+
"delta": "ls",
34+
"finish": true
35+
}
36+
}
37+
```
1138
- sys.hwinfo: Retrieve onboard CPU, memory, and temperature parameters of the LLM.
39+
```json
40+
{
41+
"request_id": "2",
42+
"work_id": "sys",
43+
"action": "hwinfo"
44+
}
45+
```
1246
- sys.uartsetup: Set serial port parameters, effective for a single session.
47+
```json
48+
{
49+
"request_id": "2",
50+
"work_id": "sys",
51+
"action": "uartsetup",
52+
"object": "sys.uartsetup",
53+
"data" : {
54+
"baud": 115200,
55+
"data_bits": 8,
56+
"stop_bits": 1,
57+
"parity": 110
58+
}
59+
}
60+
```
1361
- sys.reset: Reset the entire LLM framework application.
62+
```json
63+
{
64+
"request_id": "2",
65+
"work_id": "sys",
66+
"action": "reset"
67+
}
68+
```
1469
- sys.reboot: Restart the system.
70+
```json
71+
{
72+
"request_id": "2",
73+
"work_id": "sys",
74+
"action": "reboot"
75+
}
76+
```
1577
- sys.version: Get the version of the LLM framework program.
78+
```json
79+
{
80+
"request_id": "2",
81+
"work_id": "sys",
82+
"action": "version"
83+
}
84+
```
1685

1786
## Internal API
1887

0 commit comments

Comments
 (0)