107 lines
3.5 KiB
Markdown
107 lines
3.5 KiB
Markdown
# 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 纠错(可选)→ 注入光标。适合日常输入。
|
||
|
||
### 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 中添加/编辑/删除。覆盖安装不会丢失配置。
|
||
|
||
## 构建
|
||
|
||
```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
|