Skip to content
Noah0025Public

About

Rokid AR glasses voice → your own AI brain (default Claude); glasses-native app + self-hosted backend, pluggable brain/STT/ingress. | Rokid 眼镜语音 → 你自己的 AI 大脑(默认 Claude);眼镜原生 app + 自建后端,大脑/STT/公网入口可插拔。

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

rode

中文 | English

Rokid AR 眼镜语音 → 你自己的 AI 大脑 → 眼镜 HUD。 单击说话,眼镜录音发到你自建的后端,转写、喂给你选的 AI(默认 Claude),回答显示在 HUD 上。大脑和公网入口都可插拔。

rode HUD demo

眼镜 HUD 实拍(同一段对话):自报身份(运行在你自己机器上的 Claude)· 写入日历(agentic 执行)· 英文问答(多语言)· 引用上一轮(多轮上下文)。用户在右、Rode 在左。


⚠️ 面向开发者 · 自担风险(请先读)

这不是普通消费者开箱即用的产品。用 rode 你需要:

  • 会用 adb(数据线把 app 装进眼镜)
  • 一台常开的机器 + 能公网暴露它(Tailscale 等)
  • 一个 AI 大脑:默认 Claude(需订阅或 API 付费),也可换任意 AI agent

责任与隐私(务必知情):

  • rode 是持续录音设备:你说的话会发到你自建的后端,并经你选的第三方 AI 处理。请在他人在场时审慎使用,遵守当地法律。
  • SETUP 会在你自己的机器上执行脚本并把本机服务暴露到公网。这是双重责任面,自行评估风险。本项目按 Apache-2.0「AS IS」提供,作者不担保、不负责任何后果。
  • rode 依赖当前 YodaOS 行为(sideload、adb、电源策略)。Rokid 固件更新可能让它失效。

架构

眼镜 app(录音) ──multipart 音频 POST──► 你的后端(公网入口 → :18790)
                                          │ whisper.cpp STT
                                          │ Agent.ask()  ← 任意 AI 大脑(可插拔)
                              ◄──SSE──────┘ user/status/answer/done/meta
眼镜 HUD 显示文字 + 播放后端合成的回答音频(可选)

v1 能力范围与限制

能做什么

  • 单击说话 → STT(whisper,多语言:中/英/德混说)→ 你的 AI 大脑 → HUD 文字 + 可选后端 TTS 朗读
  • 默认大脑 = Claude,跑在 Claude Code 里:服务器上完整 agentic 能力——联网查实时信息、读写文件、跑代码、调 MCP 工具、写日历等(上图即写入了日历)
  • 多轮上下文:记得上一句,且跨后端重启不丢(sessionId 落盘)
  • 对话历史留在眼镜本地(最近 ~50 轮,按时间分段),重开 app 仍在
  • 误触可双击取消/撤回
  • 三处可插拔:大脑(任意 AI)· STT 引擎 · 公网入口

眼镜权限

已有且在用 声明了但受限 / 未启用
麦克风(录音说话)· 网络 · 唤醒锁(一轮内不休眠)· 读电量/WiFi信号/时间(状态栏)· 经 adb 注入 URL+token CHANGE_WIFI_STATE:Android 12 拦截非系统 app 开 WiFi,rode app 自身依然开不了(用 Rokid 官方手机 App 或 adb 兜底,见下)· CAMERA:已声明,但 v1 未接视觉(只录音、不拍照传图;协议预留图片字段,眼镜端待实现)

当前限制(v1 做不到)

  • 端侧无 TTS:YodaOS 裁掉了 TextToSpeech 系统服务;可在 Mac mini 安装 edge-tts,由后端合成 MP3 回传播放(默认关闭,见 SETUP)
  • 无视觉:不拍照/不传图(摄像头权限有但未接)
  • WiFi 不能自动常驻:电池/休眠被 YodaOS 关;rode app 自身无权重开,但 Rokid 官方手机 App(设置→WiFi)能系统级开关/切换眼镜 WiFi,配一次手机即可(详见下「WiFi 已知限制」)
  • 非流式:一轮一答(整段返回),非逐字流式输出(流式见路线图)
  • 非常听:单击触发的回合制,不主动监听(省电 + 隐私的设计选择)
  • 不离线:全部计算在你的服务器后端,眼镜只做输入输出;断网即不可用
  • 首轮冷启:默认 Claude 大脑首轮 SDK 冷启可能数十秒,多轮 resume 后变快

快速开始

  1. 眼镜端安装:从 glasses-app/ build 出 APK,adb install(见下)。
  2. 后端:跟着 SETUP.md(装 whisper → 生成 token → 起后端 → 暴露公网 → scripts/config-glasses.sh 配对眼镜)。
  3. 眼镜单击说话。

眼镜端安装(build)

cd glasses-app
cp local.properties.example local.properties   # 把 sdk.dir 改成真实 Android SDK 路径(或设 ANDROID_HOME);URL/token 可留占位,由 setup 经 adb 注入,不烤进 APK
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk

URL+token 不在编译期烤死,运行时由 scripts/config-glasses.sh 经 adb 写入(ConfigReceiver→SharedPreferences)。

⚠️ WiFi 已知限制(务必先读,否则眼镜连不上后端)

核心问题:眼镜(YodaOS)在电池供电 / 休眠时会自动关闭 WiFi,而第三方 app(包括 rode)无权重新开启——Android 12 拦截非系统 app 的 setWifiEnabled(),rode app 调用同样返回 false。眼镜原生 AI 通过蓝牙连手机上网、不依赖 WiFi,因此 Rokid 平台未保持 WiFi 常驻。结果:眼镜重启或闲置一段时间后 WiFi 即关闭,HUD 提示「没连上后端」。

这不是 bug,是平台限制,但 Rokid 官方已提供解法:

  1. 首选:Rokid 手机 App(配对眼镜的官方 App)设置 → WiFi——这是系统级配网入口,能直接开关眼镜 WiFi、选网/切网/连新网,不受第三方权限墙限制。有手机在身边时,联网问题到此为止。
  2. 无手机场景兜底:adb(眼镜插 USB 或已开 adb-over-WiFi):
    adb shell svc wifi enable          # 开 WiFi,自动重连已存网络
    adb shell cmd wifi status          # 确认连上(看到 "connected to ..." 即可)
  3. 先存好 WiFi(无论走哪条路都要做一次):让眼镜记住你的网络——用 Rokid App 连一次,或 adb shell cmd wifi connect-network "<SSID>" wpa2 "<密码>"。
  4. 每次重启眼镜后 WiFi 默认关,需用上面两条之一重新开启。

彻底的解法(免手机/免 adb):改用蓝牙经手机的低功耗中继形态(Rokid CXR 官方路线,见路线图 R1)。v1 现状=WiFi 直连 + Rokid 官方 App 管理联网,已够用。

安全

  • 每台后端随机生成 token,只进本机 .env 和眼镜 prefs;仓库零密钥(scripts/check-no-secrets.sh 扫描)
  • 后端:限流 / body 限制 / 日志脱敏;公网暴露等于暴露本机 AI 能力,请在受限权限内运行大脑
  • 配置注入的 ConfigReceiver 为 exported(adb 投递所需)且仅接受 https URL;同机其它 app 理论上可投递伪造配置,在个人开发设备上风险可接受

与相关项目

已有多个项目将 AI 接入智能眼镜。rode 的定位是 Rokid 平台、无需手机中转、自托管的可插拔 agentic 后端。下表对比主要方案的硬件、连接方式与大脑形态:

项目 硬件 连接 大脑
rode(本项目) Rokid(完整 Android / YodaOS) 眼镜原生 app,WiFi 直连自建后端,无需手机 自托管、可插拔(默认 Claude,可换任意 agent)
claude-code-g2 Even Realities G2(纯显示) 经手机官方 App 的 WebView + 蓝牙 Claude,计入 Max 订阅
VisionClaude iPhone / Meta Ray-Ban 手机 → 本地 MCP Claude,侧重视觉
RokidAIAssistant Rokid(同硬件) 眼镜 ↔ 手机蓝牙 云 API(多家,自带 key),非自托管
MentraOS Vuzix / Even / Mach1 厂商 OS,自托管 mini-app 可接本地 LLM;不支持 Rokid

架构取舍:rode v1 走「眼镜 WiFi 直连后端、不经手机」的路线,胜在最省事——无需额外的手机 app;YodaOS 待机时会关闭 WiFi,靠 Rokid 官方手机 App(设置→WiFi)或 adb 重新开启(见「WiFi 已知限制」)。另一条路是「蓝牙经手机 companion」(RokidAIAssistant 等采用,需专门写一个手机 app + 用 Rokid CXR SDK),能做到无 WiFi 依赖的低功耗形态,但需专门开发——这是 rode 的路线图 R1,而非已排除的方案。

路线图

  • R1 CXR 蓝牙移动形态:手机 companion 经蓝牙做网关,免公网 + 低功耗 + 解决 WiFi(Rokid 官方形态)
  • R2 配对码下发:眼镜只存配对码、凭证后端下发,不持久化敏感信息
  • R3 ingress 多 provider:cloudflared / ngrok / frp 内置
  • R4 Docker/Nix 幂等安装器

License

Apache-2.0. AS IS, 自担风险。

About

Rokid AR glasses voice → your own AI brain (default Claude); glasses-native app + self-hosted backend, pluggable brain/STT/ingress. | Rokid 眼镜语音 → 你自己的 AI 大脑(默认 Claude);眼镜原生 app + 自建后端,大脑/STT/公网入口可插拔。

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages