-
Notifications
You must be signed in to change notification settings - Fork 1
Architecture
LeonXu edited this page Feb 28, 2026
·
1 revision
| 层 | 路径 | 说明 |
|---|---|---|
| Engine | lib/engine/ |
CoreEngine 编排器、ASR 提供者、模型管理 |
| Service | lib/services/ |
配置、LLM、闪念笔记、音频设备、生命周期 |
| UI | lib/ui/ |
macOS 原生风格 UI、设置页、引导页 |
| Native | native_lib/native_input.m |
Objective-C: CGEventTap 键盘 + AudioQueue Ring Buffer |
| Gateway | gateway/ |
Cloudflare Workers 后端 (Hono) |
快捷键触发 → native_input.m (CGEventTap)
→ C Ring Buffer 采集 16kHz PCM 音频
→ CoreEngine FFI 轮询 → VAD/AGC 处理
→ ASR (Sherpa 离线 / Aliyun 云端)
→ LLM 纠错 (可选)
→ 模式分发: 文本注入 | 闪念笔记 | MCP Agent (计划中)
- Singleton — 全局服务 (ConfigService, CoreEngine, ChatService)
- Provider/Strategy — ASR 提供者可切换 (ASRProvider 抽象类)
- 生命周期 — init() → start() → stop() → dispose()
- 流式处理 — StreamController 实时传递 ASR 结果到 UI
- FFI 音频采集 — 使用 C Ring Buffer 而非 Dart 回调(避免跨 isolate SIGABRT)
- macOS 26 兼容 — Globe/Fn 键 (keyCode 179) 映射到标准 Fn (63)
- 文本注入 — 通过 Accessibility API,终端应用回退到剪贴板粘贴