# VoiceInput macOS 菜单栏语音输入应用 —— 按住 Fn 键录音,AI 帮你处理。 ## 功能 ### 三种模式(双击 Control 切换) | 模式 | 图标 | 功能 | |------|------|------| | **Input** 语音输入 | 🎤 | 语音转文字 + LLM 纠错 → 注入光标 | | **Assist** AI 助手 | 💬 | 语音提问 → AI 回复(弹窗 + 可选朗读) | | **Agent** 个人助手 | 🤖 | Better Siri — 多轮对话 + 记忆系统 + 工具调用 + 流式输出 | ### Agent 个人助手亮点 - 🧠 **记忆系统**:自动记住你的偏好、习惯、待办,跨对话持久化 - 🖥 **Mac 原生集成**:充分利用 osascript、系统命令等 macOS 能力 - 🎤⌨️ **统一弹窗**:语音/打字输入使用同一刘海界面,按 Fn 即弹出 - 📝 **语音自动发送**:说话内容自动填入输入框并发送(可关闭) - 💬 **对话持久化**:对话自动保存,启动时恢复;token 计数跟踪 - 🔄 **自动新建对话**:token 超限时自动开启新对话(阈值可配) - ⚙️ **可定制身份**:设置 AI 助手名字、语气、对你的称呼 - 🔧 **工具调用**:读写文件、执行命令、网络搜索等 ### 其他亮点 - 🎤 **按住 Fn 说话**:全局监听,长按录音松开注入 - 📝 **流式识别**:Apple Speech Recognition 实时转录 - 🌐 **多语言**:简中 / 繁中 / English / 日本語 / 한국어 - 🪟 **刘海弹窗**:AI 回复在 DynamicNotch 弹窗展示,支持复制和继续对话 - 🔊 **语音朗读**:macOS 原生 TTS 朗读 AI 回复(Assist/Agent 可独立开关) - 🎚 **实时波形**:5 条 RMS 驱动的球形波动画 ## 系统要求 - macOS 14+ - 辅助功能权限(监听 Fn 键) - 输入监控权限(Fn 键长按检测) - 麦克风权限 - 语音识别权限 ## 快速开始 ```bash make build # 编译 + 生成 .app make run # 构建并启动 make dmg # 生成分发包(自动清空 API Key) ``` 首次运行需授权**辅助功能**和**输入监控**两个系统权限。 ## 使用 1. 点击任意文本输入框 2. 双击 **Control** 切换到想要模式 3. 按住键盘左下角 **Fn / 🌐 键** 4. 说话,胶囊窗口显示实时转录 5. 松开 Fn → 文本注入(Input)/AI 回复弹窗(Assist/Agent) 点击菜单栏图标可切换语言、模式或配置 LLM。Agent 模式下可从菜单进入**助手设置**和**记忆管理**。 ## 三种模式详解 ### Input(语音输入) 语音转文字 → LLM 纠错(可选)→ 注入光标。适合日常输入。 ### Assist(AI 助手) 语音提问 → LLM 回复。可选择**直接注入**或**刘海弹窗**展示。 弹窗模式下可开启**朗读**,AI 回复自动语音播报。 ### Agent(个人助手 / Better Siri) 语音或打字输入 → 多轮对话 → 工具调用 → 流式输出。 Agent 被设计为**个人 Mac 助手**,会自动记住你的偏好、习惯和待办, 熟练使用 macOS 原生能力(如 osascript、系统命令)帮你完成任务。 **记忆系统**自动工作,跨对话持久化: - 你说"记住明天下午3点开会"→ Agent 记下待办 - 你说"我不喜欢蓝色"→ Agent 记下偏好 - 你下次问"给我推荐一个壁纸"→ Agent 自动避开蓝色 内置 Node.js 运行时,无需额外安装。 ## 配置 | 模块 | 配置方式 | 存储位置 | |------|---------|---------| | Input LLM | 菜单栏 `🎤 Input LLM` → Settings | UserDefaults | | Assist LLM | 菜单栏 `💬 Assist LLM` → Settings | UserDefaults | | Agent LLM + 助手设置 | 菜单栏 `🤖 Agent LLM` → Settings / `⚙️ 助手设置` | `~/Library/Application Support/VoiceInput/` | | 记忆管理 | 菜单栏 `🧠 记忆管理` | `~/Library/Application Support/VoiceInput/memory/` | Agent 支持多模型配置,在 Settings 中添加/编辑/删除。覆盖安装不会丢失配置。 ## 构建 ```bash make build # Debug 构建 make release # Release 构建 make run # 构建并启动 make install # 安装到 /Applications make dmg # 签名 + 创建 DMG(自动清空 API Key) make clean # 清理 ``` ## 项目结构 ``` Sources/ ├── App/ # AppDelegate + 菜单栏控制器 ├── Core/ # 按键监听、语音识别、LLM、Agent 桥接、弹窗管理 ├── UI/ # 浮动窗口、波形、设置面板、Agent 弹窗、记忆管理窗口 └── Utils/ # 配置持久化 Agent/ # Node.js CLI(智能体运行时) ├── bin/node # 内置 Node.js(arm64) ├── prompts/ # System prompt ├── src/ # bridge.js + 工具实现(记忆/身份/文件/命令/搜索等) └── node_modules/ # npm 依赖 ``` ## 许可 MIT