=== 记忆系统 === - 新增 remember(记录)和 recall(搜索)工具,持久化到 ~/Library/Application Support/VoiceInput/memory/memory.json - 新增 set_identity 工具,独立管理助手名字/用户称呼/语气 - prompt 重写为个人助手身份,注入 macOS 能力 + 记忆规则 - prompt 中积极调用记忆工具,按需搜索、自然融入回答 - 禁止相对时间,待办必须绝对日期 === 对话持久化 === - 集成 conversation_store,done 前自动写入对话文件 - token 记录:prompt/completion 累加,total 覆盖为最新上下文长度 - 启动时加载最新对话继续(使用 eagent /resume 逻辑) - 去重:末尾连续 assistant 消息自动合并 - 修复消息加载顺序 bug(旧对话覆盖用户新消息) === 新建对话 === - 手动/自动两种模式(设置窗口可切换) - 自动模式:total > 阈值时隐藏按钮,下次输入自动新建 - 自动阈值在设置窗口可配置(默认 40000) === 弹窗 UI 统一 === - 语音输入按 Fn 即显示刘海弹窗(和打字输入统一) - 语音识别内容自动填入并发送(可关闭自动发送) - 工作期间(thinking/running)隐藏输入框,idle/done 时显示 - 工具显示三种模式:全部显示/最后隐藏/一直不显示 === 设置窗口增强 === - 助手名字 / 用户称呼 / 语气可配置 - 工具显示模式 / 新建对话模式 / 自动阈值 - 语音输入后自动发送开关(默认开) - 记忆管理窗口可视化编辑(Dock 可访问) - 窗口高度 840→860 === 菜单增强 === - Agent LLM 二级菜单切换语音/打字输入 - 助手设置和记忆管理入口(Dock 可访问) === 修复 === - Fn 按下时停止正在进行的朗读 - 弹窗已存在时不再覆盖 isTextInputMode - voiceInputText 加 @Published 以触发 UI 更新 |
||
|---|---|---|
| Agent | ||
| Dependencies/DynamicNotchKit | ||
| scripts | ||
| skills | ||
| Sources | ||
| .gitignore | ||
| agents-md-writer.skill | ||
| AGENTS.md | ||
| Makefile | ||
| Package.swift | ||
| README.md | ||
| VoiceInput-20260425.dmg | ||
VoiceInput
macOS 菜单栏语音输入应用 —— 按住 Fn 键录音,AI 帮你处理。
功能
三种模式(双击 Control 切换)
| 模式 | 图标 | 功能 |
|---|---|---|
| Input 语音输入 | 🎤 | 语音转文字 + LLM 纠错 → 注入光标 |
| Assist AI 助手 | 💬 | 语音提问 → AI 回复(弹窗 + 可选朗读) |
| Agent 智能体 | 🤖 | 多轮对话 + 工具调用(文件读写/命令执行/搜索) |
其他亮点
- 🎤 按住 Fn 说话:全局监听,长按录音松开注入
- 📝 流式识别:Apple Speech Recognition 实时转录
- 🌐 多语言:简中 / 繁中 / English / 日本語 / 한국어
- 🪟 刘海弹窗:AI 回复在 DynamicNotch 弹窗展示,支持复制
- 🔊 语音朗读:macOS 原生 TTS 朗读 AI 回复(Assist/Agent 可独立开关)
- 🎚 实时波形:5 条 RMS 驱动的球形波动画
- 📋 智能注入:自动检测并切换 CJK 输入法
- 🔧 Agent 工具:读写文件、执行命令、搜索文件、网络搜索等
系统要求
- macOS 14+
- 辅助功能权限(监听 Fn 键)
- 输入监控权限(Fn 键长按检测)
- 麦克风权限
- 语音识别权限
快速开始
make build # 编译 + 生成 .app
make run # 构建并启动
make dmg # 生成分发包(自动清空 API Key)
首次运行需授权辅助功能和输入监控两个系统权限。
使用
- 点击任意文本输入框
- 双击 Control 切换到想要模式
- 按住键盘左下角 Fn / 🌐 键
- 说话,胶囊窗口显示实时转录
- 松开 Fn → 文本注入(Input)/ AI 回复弹窗(Assist/Agent)
点击菜单栏图标可切换语言、模式或配置 LLM。
三种模式详解
Input(语音输入)
语音转文字 → LLM 纠错(可选)→ 注入光标。适合日常输入。
Assist(AI 助手)
语音提问 → LLM 回复。可选择直接注入或刘海弹窗展示。 弹窗模式下可开启朗读,AI 回复自动语音播报。
Agent(智能体)
语音/文字 → 多轮对话 → 工具调用(文件读写、命令执行、搜索等)→ 流式输出。 任务完成后可选朗读最终结果。内置 Node.js 运行时,无需额外安装。
配置
| 模块 | 配置方式 | 存储位置 |
|---|---|---|
| Input LLM | 菜单栏 🎤 Input LLM → Settings |
UserDefaults |
| Assist LLM | 菜单栏 💬 Assist LLM → Settings |
UserDefaults |
| Agent LLM | 菜单栏 🤖 Agent LLM → Settings |
~/Library/Application Support/VoiceInput/models.json |
Agent 支持多模型配置,在 Settings 中添加/编辑/删除。覆盖安装不会丢失配置。
构建
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