更新源码
以国标手语动作表达意图,让手语像语音、文字一样,成为与 AI 交流的输入方式。
本项目在开发启动时上游 NuttX 尚未支持 T527 的背景下,建立 T527 的 openvela 板级支持,并在 ATK-DLT527 上实现手语 / 语音双输入 AI 助手。从 ARM64 启动与设备驱动,到 Qt 界面、板端视觉识别和 AI Agent,形成一套连接硬件平台与智能交互的开源实现。
项目以国标手语动作作为手语表达基础:摄像头采集动作,板端关键点与时序模型生成文本候选,用户确认后进入 AI Agent;语音经 ASR 转写后进入同一条路径。两种输入共享会话、智能问答和工具调用,并通过 Qt 界面与 TTS 语音反馈结果。
天气查询和音乐播放是展示这条链路的演示场景。项目的核心目标,是建立与语音、文字并列的手语输入通道,让手语表达接入 AI 的问答与任务能力。
观看实机演示 · 查看系统架构 · 开始开发 · 浏览验证日志 · 阅读项目说明书
演示视频约 4 分钟。上图取自视频 02:25,以天气查询展示国标手语动作如何经过板端识别进入 Agent。
第二次全国残疾人抽样调查推算,2006 年我国言语残疾人数为 127 万人,占当时残疾人总数的1.53%(无锡市人民政府 2006)。这项国内数据表明,语音之外的交互入口具有明确的现实需求。让 AI 接受人的表达,而不把表达限定为发声。 对失声及发声受限用户,与 AI 交流同样可以从手语开始:表达问题、传递意图,再由智能体理解、应答或执行任务。
我们以国标手语动作作为输入基础,将动作序列转换为可确认的文本,再交给 Agent 处理。这一设计的重点是建立手语与语言模型之间的输入通道:感知层负责识别表达,智能体层负责对话与任务,设备层负责反馈和执行。
天气和音乐用来展示这条通道的两种结果:一个从真实数据形成回答,一个把意图落实为设备动作。开发者可围绕同一接口扩展手语表达与 Agent 能力,让更多问答和应用场景共享这套输入机制。
这套交互能力建立在另一个关键工程成果之上:在上游 NuttX 尚未支持 T527 的开发起点上,完成平台适配,让多模态 Agent 真正运行在板端。
项目从 T527 的 openvela / NuttX 平台适配入手,提供 ARM64 启动、八核 SMP 配置、内存与存储、以太网、USB UVC 摄像头、音频和显示接入,并向上连接 Qt 平台插件、桌面应用与 AI Agent。
这项工作的价值在于让硬件具备运行智能应用的条件。对于希望在 T527 上开发 openvela 应用的团队,摄像头取流、图形显示、联网请求和音频输出都有对应实现;平台能力可以继续服务于新的视觉、音频和智能体应用。
两种感知方式在文本接口汇合,共享后端的问答、会话和工具能力。候选确认让用户在提交之前知道设备理解了什么;新增手语表达与新增 Agent 任务可以沿各自模块扩展。
手语链路在板端完成视频处理、人体 / 手部关键点推理和时序分类,随后以文本接入 Agent。云端语言模型负责理解与组织答复,C Tool 负责获取数据、访问资源和驱动设备。
开发者可以沿着清晰的模块边界调整感知模型、服务连接和设备能力:输入通道负责把表达交给 AI,Agent 负责回答与编排,工具负责需要实际执行的任务。 天气和媒体演示展示了这套分工如何贯通。
以下场景展示同一输入架构如何连接自然表达、AI 应答与设备执行:
Send to Agent
天气链路使用 **Open-Meteo 的长沙坐标 28.23, 112.93**获取当前天气字段,由 Agent 整理成适合收听的自然语言,再交给 MiMo TTS。音乐链路使用 SD 卡本地 MP3,并通过播放调度保证 回复在前、音乐在后。
28.23, 112.93
板端执行层运行在 openvela / NuttX 上:USB 摄像头、关键点与时序识别、Qt 桌面、本地媒体和音频设备。联网服务层通过有线以太网连接 DeepSeek 问答、MiMo ASR / TTS 和天气数据服务。
MENU 开始 / 停止 → 视频帧 → 人体 17 点 + 双手各 21 点 → [T, 219] 变长特征序列 → 轻量时序网络 → 候选文本与置信度 → 用户确认 → 共享 Agent 会话
关键点序列保留动作随时间变化的信息。主机工具支持视频级标签、特征提取、训练和权重导出;板端使用 C++ 时序执行器运行导出的网络,将识别候选转换为 Agent 可接收的文本。
这个接口连接的是手语表达与 AI 会话。 文本提交后由共享 Agent 路径处理,天气、媒体等工具是按任务需要接入的执行能力。扩展手语词表与表达映射时,可以继续复用后端会话、问答和播报机制。
查看训练流程 · 查看特征提取 · 查看权重导出
Skill 描述任务步骤,C Tool 执行具体动作。 天气工具返回当前天气字段,媒体工具返回搜索结果与播放状态;Agent 根据结果组织回复,而不是只生成一句“正在为你播放”。
get_weather
问答与工具执行共享同一入口:Agent 根据输入形成应答,并在任务需要时调用工具。扩展后的手语表达和语音输入可以复用这条处理路径。
演示、源码和测试记录分别展示用户体验、实现方式与运行结果。开发者可以从一个场景一路找到对应模块和验证材料。
完整的 76 份日志按主题收录于 测试日志索引。
在 Linux 主机准备 Python 3、C / C++ 编译器和 Bash,从项目根目录执行:
cd src bash scripts/test_host.sh
这一步覆盖手语 pipeline、天气响应解析、时序网络 CLI 编译和脚本语法,可用于提交改动前的快速检查。
参考硬件为 ATK-DLT527B,搭配 USB UVC 摄像头、HDMI 显示器、扬声器、SD 卡和有线网络。构建使用 aarch64-none-elf 工具链、CMake 和 Qt 6.8.3 主机工具。
aarch64-none-elf
按 资源配置说明准备中文字体、关键点模型和时序模型导出文件,再按 构建说明运行分阶段构建。以下命令均在 src/ 下执行:
src/
export OPENVELA_TOOLCHAIN_BIN=/path/to/aarch64-none-elf/bin export PATH="$OPENVELA_TOOLCHAIN_BIN:$PATH" # 检查构建工具与资源,生成 NuttX 配置和头文件 bash scripts/build.sh check bash scripts/prepare.sh # 构建 Qt 主机工具与板端 Qt bash scripts/build.sh host export QT_HOST_PATH="$PWD/install/qt-host-6.8.3" bash scripts/build.sh qt # 启用已导出的手语时序模型,构建桌面与固件 export OPENVELA_SIGN_VOCAB_AGENT=ON export OPENVELA_SIGN_VOCAB_DIR="$PWD/build/t527_sign_vocab_export" bash scripts/build.sh desktop bash scripts/build.sh firmware
扩展手语输入可从训练工具目录入手:录制带视频级标签的数据,提取 [T, 219] 特征,训练时序模型,再导出板端权重。标签、网络结构、导出器与板端消息映射作为同一份模型契约维护。
[T, 219]
Agent 问答使用环境变量 DSKEY,MiMo ASR / TTS 使用环境变量 MIMO。通过运行时配置接入自己的服务账号,凭据与源码构建分离。
DSKEY
MIMO
主机已设置这两个环境变量后,在 src/ 下使用串口工具注入:
# qcmd 依赖 PyQt6 / QtSerialPort export T527_SERIAL_PORT=/dev/ttyACM0 export T527_SERIAL_BAUD=115200 python3 tools/qcmd.py --inject-dskey python3 tools/qcmd.py --inject-mimo
工具从环境变量读取凭据,使用关闭回显的串口握手注入。变量名称可参考 .env.example。本地音乐放入板端 SD 卡;天气工具按长沙坐标请求 Open-Meteo。
.env.example
final_code_2/ ├── README.md # 项目价值、架构与开发入口 ├── src/ # 源码与构建工具 │ ├── nuttx/ # 内核、T527 BSP 与驱动 │ ├── openvela-apps/ # Agent、服务与系统应用 │ ├── ports/qt/ # Qt 平台插件与桌面 │ ├── tools/ # 手语训练、导出与串口工具 │ ├── configs/ # 构建配置 │ └── scripts/ # 主机检查与分阶段构建 ├── demo/ # 演示固件 ├── presentation/ # 实机演示视频 ├── docs/ # 项目说明与架构图片 └── tests/ # 分类日志与索引
架构素材来自项目说明材料,提供 PNG 和可编辑的 draw.io 文件: 系统架构 · 手语流程 · Skill / Tool 流程。
让手语同语音、文字一样,成为人与世界、人与机器交互的原生语言。
圣人立象以尽意,设卦以尽情伪。 ——《周易・系辞上》
代码及依赖的使用条款见 许可证说明 与 第三方组件说明。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
T527 × openvela:手语 / 语音双输入 AI 助手
从上游尚未支持的 T527 出发,让手语与语音共享 AI 输入能力。
以国标手语动作表达意图,让手语像语音、文字一样,成为与 AI 交流的输入方式。
本项目在开发启动时上游 NuttX 尚未支持 T527 的背景下,建立 T527 的 openvela 板级支持,并在 ATK-DLT527 上实现手语 / 语音双输入 AI 助手。从 ARM64 启动与设备驱动,到 Qt 界面、板端视觉识别和 AI Agent,形成一套连接硬件平台与智能交互的开源实现。
项目以国标手语动作作为手语表达基础:摄像头采集动作,板端关键点与时序模型生成文本候选,用户确认后进入 AI Agent;语音经 ASR 转写后进入同一条路径。两种输入共享会话、智能问答和工具调用,并通过 Qt 界面与 TTS 语音反馈结果。
天气查询和音乐播放是展示这条链路的演示场景。项目的核心目标,是建立与语音、文字并列的手语输入通道,让手语表达接入 AI 的问答与任务能力。
观看实机演示 · 查看系统架构 · 开始开发 · 浏览验证日志 · 阅读项目说明书
演示视频约 4 分钟。上图取自视频 02:25,以天气查询展示国标手语动作如何经过板端识别进入 Agent。
项目背景
第二次全国残疾人抽样调查推算,2006 年我国言语残疾人数为 127 万人,占当时残疾人总数的1.53%(无锡市人民政府 2006)。这项国内数据表明,语音之外的交互入口具有明确的现实需求。让 AI 接受人的表达,而不把表达限定为发声。 对失声及发声受限用户,与 AI 交流同样可以从手语开始:表达问题、传递意图,再由智能体理解、应答或执行任务。
我们以国标手语动作作为输入基础,将动作序列转换为可确认的文本,再交给 Agent 处理。这一设计的重点是建立手语与语言模型之间的输入通道:感知层负责识别表达,智能体层负责对话与任务,设备层负责反馈和执行。
天气和音乐用来展示这条通道的两种结果:一个从真实数据形成回答,一个把意图落实为设备动作。开发者可围绕同一接口扩展手语表达与 Agent 能力,让更多问答和应用场景共享这套输入机制。
这套交互能力建立在另一个关键工程成果之上:在上游 NuttX 尚未支持 T527 的开发起点上,完成平台适配,让多模态 Agent 真正运行在板端。
项目介绍
1. 在上游未支持的平台上,建立从 BSP 到应用的完整支撑
项目从 T527 的 openvela / NuttX 平台适配入手,提供 ARM64 启动、八核 SMP 配置、内存与存储、以太网、USB UVC 摄像头、音频和显示接入,并向上连接 Qt 平台插件、桌面应用与 AI Agent。
这项工作的价值在于让硬件具备运行智能应用的条件。对于希望在 T527 上开发 openvela 应用的团队,摄像头取流、图形显示、联网请求和音频输出都有对应实现;平台能力可以继续服务于新的视觉、音频和智能体应用。
2. 以国标手语动作建立输入通道,与语音共享智能问答
两种感知方式在文本接口汇合,共享后端的问答、会话和工具能力。候选确认让用户在提交之前知道设备理解了什么;新增手语表达与新增 Agent 任务可以沿各自模块扩展。
3. 板端识别表达,Agent 理解意图,工具落实动作
手语链路在板端完成视频处理、人体 / 手部关键点推理和时序分类,随后以文本接入 Agent。云端语言模型负责理解与组织答复,C Tool 负责获取数据、访问资源和驱动设备。
开发者可以沿着清晰的模块边界调整感知模型、服务连接和设备能力:输入通道负责把表达交给 AI,Agent 负责回答与编排,工具负责需要实际执行的任务。 天气和媒体演示展示了这套分工如何贯通。
以下场景展示同一输入架构如何连接自然表达、AI 应答与设备执行:
Send to Agent天气链路使用 **Open-Meteo 的长沙坐标
28.23, 112.93**获取当前天气字段,由 Agent 整理成适合收听的自然语言,再交给 MiMo TTS。音乐链路使用 SD 卡本地 MP3,并通过播放调度保证 回复在前、音乐在后。系统架构
板端执行层运行在 openvela / NuttX 上:USB 摄像头、关键点与时序识别、Qt 桌面、本地媒体和音频设备。联网服务层通过有线以太网连接 DeepSeek 问答、MiMo ASR / TTS 和天气数据服务。
国标手语动作如何进入 AI 会话
关键点序列保留动作随时间变化的信息。主机工具支持视频级标签、特征提取、训练和权重导出;板端使用 C++ 时序执行器运行导出的网络,将识别候选转换为 Agent 可接收的文本。
这个接口连接的是手语表达与 AI 会话。 文本提交后由共享 Agent 路径处理,天气、媒体等工具是按任务需要接入的执行能力。扩展手语词表与表达映射时,可以继续复用后端会话、问答和播报机制。
查看训练流程 · 查看特征提取 · 查看权重导出
Agent 如何把意图落到设备上
Skill 描述任务步骤,C Tool 执行具体动作。 天气工具返回当前天气字段,媒体工具返回搜索结果与播放状态;Agent 根据结果组织回复,而不是只生成一句“正在为你播放”。
get_weather实现。问答与工具执行共享同一入口:Agent 根据输入形成应答,并在任务需要时调用工具。扩展后的手语表达和语音输入可以复用这条处理路径。
测试日志
演示、源码和测试记录分别展示用户体验、实现方式与运行结果。开发者可以从一个场景一路找到对应模块和验证材料。
完整的 76 份日志按主题收录于 测试日志索引。
快速开始
1. 运行主机检查
在 Linux 主机准备 Python 3、C / C++ 编译器和 Bash,从项目根目录执行:
这一步覆盖手语 pipeline、天气响应解析、时序网络 CLI 编译和脚本语法,可用于提交改动前的快速检查。
2. 准备板端构建
参考硬件为 ATK-DLT527B,搭配 USB UVC 摄像头、HDMI 显示器、扬声器、SD 卡和有线网络。构建使用
aarch64-none-elf工具链、CMake 和 Qt 6.8.3 主机工具。按 资源配置说明准备中文字体、关键点模型和时序模型导出文件,再按 构建说明运行分阶段构建。以下命令均在
src/下执行:扩展手语输入可从训练工具目录入手:录制带视频级标签的数据,提取
[T, 219]特征,训练时序模型,再导出板端权重。标签、网络结构、导出器与板端消息映射作为同一份模型契约维护。3. 配置联网服务
Agent 问答使用环境变量
DSKEY,MiMo ASR / TTS 使用环境变量MIMO。通过运行时配置接入自己的服务账号,凭据与源码构建分离。主机已设置这两个环境变量后,在
src/下使用串口工具注入:工具从环境变量读取凭据,使用关闭回显的串口握手注入。变量名称可参考
.env.example。本地音乐放入板端 SD 卡;天气工具按长沙坐标请求 Open-Meteo。项目目录
架构素材来自项目说明材料,提供 PNG 和可编辑的 draw.io 文件: 系统架构 · 手语流程 · Skill / Tool 流程。
让手语同语音、文字一样,成为人与世界、人与机器交互的原生语言。
代码及依赖的使用条款见 许可证说明 与 第三方组件说明。