中文 | English
Rokid AR 眼镜语音 → 你自己的 AI 大脑 → 眼镜 HUD。 单击说话,眼镜录音发到你自建的后端,转写、喂给你选的 AI(默认 Claude),回答显示在 HUD 上。大脑和公网入口都可插拔。
这不是普通消费者开箱即用的产品。用 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 显示文字 + 播放后端合成的回答音频(可选)
- 协议契约(眼镜↔后端唯一接口):见
PROTOCOL.md - 搭建(人/AI 可执行):见
SETUP.md - 可插拔点:大脑
backend/agent/types.ts、公网入口backend/expose/types.ts、STTbackend/stt.ts
能做什么
- 单击说话 → 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后变快
- 眼镜端安装:从
glasses-app/build 出 APK,adb install(见下)。 - 后端:跟着
SETUP.md(装 whisper → 生成 token → 起后端 → 暴露公网 →scripts/config-glasses.sh配对眼镜)。 - 眼镜单击说话。
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.apkURL+token 不在编译期烤死,运行时由 scripts/config-glasses.sh 经 adb 写入(ConfigReceiver→SharedPreferences)。
核心问题:眼镜(YodaOS)在电池供电 / 休眠时会自动关闭 WiFi,而第三方 app(包括 rode)无权重新开启——Android 12 拦截非系统 app 的 setWifiEnabled(),rode app 调用同样返回 false。眼镜原生 AI 通过蓝牙连手机上网、不依赖 WiFi,因此 Rokid 平台未保持 WiFi 常驻。结果:眼镜重启或闲置一段时间后 WiFi 即关闭,HUD 提示「没连上后端」。
这不是 bug,是平台限制,但 Rokid 官方已提供解法:
- 首选:Rokid 手机 App(配对眼镜的官方 App)设置 → WiFi——这是系统级配网入口,能直接开关眼镜 WiFi、选网/切网/连新网,不受第三方权限墙限制。有手机在身边时,联网问题到此为止。
- 无手机场景兜底:adb(眼镜插 USB 或已开 adb-over-WiFi):
adb shell svc wifi enable # 开 WiFi,自动重连已存网络 adb shell cmd wifi status # 确认连上(看到 "connected to ..." 即可)
- 先存好 WiFi(无论走哪条路都要做一次):让眼镜记住你的网络——用 Rokid App 连一次,或
adb shell cmd wifi connect-network "<SSID>" wpa2 "<密码>"。 - 每次重启眼镜后 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 幂等安装器
Apache-2.0. AS IS, 自担风险。
