grizzdank/vozctl
GitHub: grizzdank/vozctl
开源语音编码平台,结合 NVIDIA Parakeet 语音识别与可编程命令框架,让开发者通过自然语音精准控制代码编辑。
Stars: 0 | Forks: 0
# vozctl
**面向开发者的语音控制。** 开源语音编码平台,结合了最先进的语音识别技术与可编程命令框架。
## 为什么选择 vozctl
- **Talon Voice** 拥有最好的命令框架,但识别能力平庸且闭源
- **Sotto/Wispr/SuperWhisper** 拥有出色的识别能力,但缺乏命令感知
- **Dragon** 已经消亡
- 没有人将现代 STT(NVIDIA Parakeet,6% WER)与可编程命令层结合起来
vozctl 弥合了这一差距:**自然说话,精准编码。**
## 架构(当前)
```
Mic → [Silero VAD] → speech segments → [Parakeet STT] → transcript
↓
[Intent parser / command matcher]
fast path (rules) first
optional SLM for ambiguous cases
↓
[macOS CGEvent key injection]
```
当前运行时行为:
1. **Silero VAD**(通过 sherpa-onnx)对音频进行分段。
2. **Parakeet TDT 0.6B**(通过 sherpa-onnx)离线转录每个分段。
3. **Intent parser**(意图解析器)运行快速路径命令匹配(精确 -> 参数化 -> 格式化器 -> NATO -> 多句拆分)。
4. **Optional SLM path**(可选 SLM 路径)(目前为 Anthropic Haiku API)仅用于模棱两可的混合语音。
5. **Planned SLM direction**(计划的 SLM 方向)是本地推理,目前候选为 **Qwen3-0.6B**,并计划通过 Rust/Candle 实现路径。
6. **Actions**(动作)通过 macOS CGEvent 键注入进行调度。
## 功能
当前(已实现):
- [x] 通过 sherpa-onnx 实现离线 STT(Parakeet TDT)
- [x] Silero VAD 分段
- [x] macOS CGEvent 键注入
- [x] 全局热键切换(默认 `ctrl+alt+v`)
- [x] 统一意图解析器(快速路径 + 回退听写 + 可选 SLM)
- [x] 命令优先级:精确 -> 参数化 -> 格式化器 -> NATO -> 听写回退
- [x] 针对 Parakeet 自动标点的多句拆分
- [x] 重放模式(`--replay`)和自检(`--self-test`)
计划中 / 待办:
- [ ] 使用 Qwen3-0.6B 候选模型的本地 SLM(替代 Haiku API 路径);异步意图解析
- [ ] 声明式 `.voz` 语法文件 / 自定义命令定义
- [ ] 特定于应用程序的语法/上下文切换(IDE vs 终端 vs 浏览器)
- [ ] 带有视觉反馈的流式部分转录
- [ ] 菜单栏应用,显示 COMMAND/DICTATION/PAUSED 状态指示器
- [ ] 跨平台(优先 macOS,后续 Linux、Windows)
- [ ] IDE 插件(VS Code、Neovim、JetBrains)
- [ ] Rust 快速路径重写(音频/VAD/STT 流水线),采用混合迁移路径
- [ ] 多语言听写
## 技术栈
- **当前运行时:** Python 3.11 (`python -m vozctl`)
- **音频:** `sounddevice` (PortAudio)
- **VAD:** Silero via `sherpa-onnx`
- **STT 引擎:** `sherpa-onnx` (Parakeet TDT 0.6B int8)
- **意图解析:** Python 规则 + 可选 Anthropic Haiku API 回退(过渡期)
- **自动化 (macOS):** PyObjC Quartz / ApplicationServices CGEvent
- **计划的 SLM 演进:** 通过 Rust/Candle 提供程序的本地 Qwen3-0.6B(可能会在完整 Rust 移植之前,在提供程序边界后引入)
- **计划的运行时演进:** Rust 快速路径(音频/VAD/STT),迁移期间保留 Python 命令语法
## 项目状态
🚧 **预 Alpha / 研究阶段**
当前实现目标:**macOS(内部测试原型)**。
状态摘要(2026 年 2 月):
- Python 原型已可用于实时麦克风和重放工作流
- 命令匹配和听写行为正在积极演进中
- 延迟诊断已实现;p95 目标工作仍在进行中
- Rust 重写已作为限定范围的迁移工作在 issues 中追踪,尚未开始
技术分析和项目简介请参阅 [docs/research/](docs/research/)。
## 快速开始
原型工作流(macOS):
- 创建/激活 `venv/`
- 安装包 + 依赖项
- 使用 `./scripts/download-models.sh` 下载模型
- 运行 `python -m vozctl --self-test`
- 运行 `python -m vozctl` 或 `python -m vozctl --replay tests/fixtures/test_speech.wav`
## 贡献
我们欢迎贡献!这个项目的存在是因为语音编码社区值得拥有具备现代识别能力的开源工具。指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
Apache 2.0
## 致谢
- [Talon Voice](https://talonvoice.com) & [talonhub/community](https://github.com/talonhub/community) 开创了语音编码的先河
- [NVIDIA Parakeet](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2) 提供了最先进的开源 ASR
- [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx) 提供了本地推理运行时
- [Samsung Montréal TRM research](https://arxiv.org/abs/2510.04871) 提供了微型递归模型方法
*voz + ctl = voice control* 🐙
标签:Anthropic Haiku, CGEvent, macOS自动化, NVIDIA Parakeet, Qwen, Rust, sherpa-onnx, Silero VAD, 人机交互, 代码输入, 命令框架, 开发辅助工具, 开源, 意图解析, 效率工具, 无障碍编程, 本地大模型, 离线STT, 网络流量审计, 语音控制, 语音编程, 语音识别, 语音转文字, 逆向工具