docs: 更新 README,补全三种模式和 Agent 文档

This commit is contained in:
JOJO 2026-04-29 20:21:19 +08:00
parent 26bf147adf
commit 6b9db7ce48

View File

@ -1,21 +1,33 @@
# VoiceInput # VoiceInput
macOS 菜单栏语音输入应用 —— 按住 Fn 键录音,松开自动注入文本 macOS 菜单栏语音输入应用 —— 按住 Fn 键录音,AI 帮你处理
## 功能 ## 功能
- 🎤 **按住 Fn 说话**:全局监听 Fn/Globe 键,按下录音,松开注入 ### 三种模式(双击 Control 切换)
- 📝 **流式识别**Apple Speech Recognition 实时转录,默认简体中文
| 模式 | 图标 | 功能 |
|------|------|------|
| **Input** 语音输入 | 🎤 | 语音转文字 + LLM 纠错 → 注入光标 |
| **Assist** AI 助手 | 💬 | 语音提问 → AI 回复(弹窗 + 可选朗读) |
| **Agent** 智能体 | 🤖 | 多轮对话 + 工具调用(文件读写/命令执行/搜索) |
### 其他亮点
- 🎤 **按住 Fn 说话**:全局监听,长按录音松开注入
- 📝 **流式识别**Apple Speech Recognition 实时转录
- 🌐 **多语言**:简中 / 繁中 / English / 日本語 / 한국어 - 🌐 **多语言**:简中 / 繁中 / English / 日本語 / 한국어
- 🎚 **实时波形**5 条 RMS 驱动的球形波动画,说话时随音量跳动 - 🪟 **刘海弹窗**AI 回复在 DynamicNotch 弹窗展示,支持复制
- 🪟 **胶囊浮动窗**:屏幕底部居中,无边框,入场弹簧动画 - 🔊 **语音朗读**macOS 原生 TTS 朗读 AI 回复Assist/Agent 可独立开关)
- 📋 **智能注入**:剪贴板 + Cmd+V自动检测并切换 CJK 输入法 - 🎚 **实时波形**5 条 RMS 驱动的球形波动画
- 🤖 **LLM 纠错**DeepSeek 优化识别结果,修正同音字 / 拼写 / 术语 - 📋 **智能注入**:自动检测并切换 CJK 输入法
- 🔧 **Agent 工具**:读写文件、执行命令、搜索文件、网络搜索等
## 系统要求 ## 系统要求
- macOS 14+ - macOS 14+
- 辅助功能权限(监听 Fn 键) - 辅助功能权限(监听 Fn 键)
- 输入监控权限Fn 键长按检测)
- 麦克风权限 - 麦克风权限
- 语音识别权限 - 语音识别权限
@ -24,47 +36,69 @@ macOS 菜单栏语音输入应用 —— 按住 Fn 键录音,松开自动注
```bash ```bash
make build # 编译 + 生成 .app make build # 编译 + 生成 .app
make run # 构建并启动 make run # 构建并启动
make dmg # 生成分发包(自动清空 API Key
``` ```
首次运行需**系统设置 → 隐私与安全性 → 辅助功能** 中授权 `VoiceInput.app` 首次运行需授权**辅助功能**和**输入监控**两个系统权限
## 使用 ## 使用
1. 点击任意文本输入框 1. 点击任意文本输入框
2. 按住键盘左下角 **Fn / 🌐 键** 2. 双击 **Control** 切换到想要模式
3. 说话,胶囊窗口显示实时转录 3. 按住键盘左下角 **Fn / 🌐 键**
4. 松开 Fn → 文本自动粘贴到光标位置 4. 说话,胶囊窗口显示实时转录
5. 松开 Fn → 文本注入Input/ AI 回复弹窗Assist/Agent
点击菜单栏 🎤 图标可切换语言或配置 LLM。 点击菜单栏图标可切换语言、模式或配置 LLM。
## 三种模式详解
### Input语音输入
语音转文字 → LLM 纠错(可选)→ 注入光标。适合日常输入。
### AssistAI 助手)
语音提问 → 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 中添加/编辑/删除。覆盖安装不会丢失配置。
## 构建 ## 构建
```bash ```bash
make build # Debug 构建 make build # Debug 构建
make release # Release 构建 make release # Release 构建
make run # 构建并启动
make install # 安装到 /Applications make install # 安装到 /Applications
make dmg # 签名 + 创建 DMG自动清空 API Key
make clean # 清理 make clean # 清理
``` ```
## LLM 纠错
LLM 默认使用 DeepSeek在菜单栏 **LLM Refinement → Enable** 开启。
| 配置项 | 默认值 |
|--------|--------|
| API Base URL | `https://api.deepseek.com` |
| Model | `deepseek-v4-flash` |
设置窗口可修改 API Key 等配置,点击 **Test** 验证连通性。
## 项目结构 ## 项目结构
``` ```
Sources/ Sources/
├── App/ # AppDelegate + 菜单栏控制器 ├── App/ # AppDelegate + 菜单栏控制器
├── Core/ # 按键监听、语音识别、音频电平、文本注入、输入法、LLM ├── Core/ # 按键监听、语音识别、LLM、Agent 桥接、弹窗管理
├── UI/ # 浮动窗口、波形动画、设置窗口 ├── UI/ # 浮动窗口、波形、设置面板、Agent 弹窗
└── Utils/ # 配置持久化 └── Utils/ # 配置持久化
Agent/ # Node.js CLI智能体运行时
├── bin/node # 内置 Node.jsarm64
├── prompts/ # System prompt
├── src/ # bridge.js + 工具实现
└── node_modules/ # npm 依赖
``` ```
## 许可 ## 许可