VoiceInput/README.md

107 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 键长按检测)
- 麦克风权限
- 语音识别权限
## 快速开始
```bash
make build # 编译 + 生成 .app
make run # 构建并启动
make dmg # 生成分发包(自动清空 API Key
```
首次运行需授权**辅助功能**和**输入监控**两个系统权限。
## 使用
1. 点击任意文本输入框
2. 双击 **Control** 切换到想要模式
3. 按住键盘左下角 **Fn / 🌐 键**
4. 说话,胶囊窗口显示实时转录
5. 松开 Fn → 文本注入Input/ AI 回复弹窗Assist/Agent
点击菜单栏图标可切换语言、模式或配置 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
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.jsarm64
├── prompts/ # System prompt
├── src/ # bridge.js + 工具实现
└── node_modules/ # npm 依赖
```
## 许可
MIT