我构建了一个 Voice-to-Code VS Code 扩展,完全在设备上运行
Source: Dev.to
每个 AI 编码助手都需要打字。GitHub Copilot、Continue、Kiro——它们都要求你输入提示。但如果可以直接说话呢?这就是我创建 VoxPilot 的原因。
开发者经常花时间输入诸如 “将此函数重构为使用 async/await 并加入适当的错误处理,还要添加单元测试” 之类的提示。这大约需要 15 秒的打字,而口头表达只需 3 秒。对于患有 RSI 或腕管综合症的人来说,打字不仅慢,而且疼痛。
VoxPilot 是一个 VS Code 扩展,它捕获你的语音,使用 Moonshine ASR 本地 转录,并将生成的文本发送给你的编码助手。关键字是 本地:你的音频永远不会离开你的机器。没有 API 密钥、没有云调用,也没有遥测。ASR 模型仅 27 MB,使用 ONNX Runtime 运行。
VoxPilot 工作原理
音频捕获
原生 CLI 工具以 16 kHz 捕获原始 PCM 音频:
- Linux:
arecord - macOS:
sox - Windows:
ffmpeg
语音活动检测
基于能量的 VAD 检测你何时开始和停止说话,因此无需按按钮——只要说话即可。
转录
Moonshine 的编码器‑解码器架构通过 ONNX Runtime 处理音频:
- Tiny 模型(27 MB): 适合短指令,速度快。
- Base 模型(65 MB): 更适合较长的口述。
交付
转录文本被发送到 VS Code 的 Chat API,目标是你配置的任意参与者(Copilot、Continue 等)。
Microphone → PCM Audio → Voice Activity Detection → Moonshine ASR → Text → VS Code Chat
隐私
语音数据属于敏感信息,VoxPilot 在 内存中 处理所有内容,绝不将音频写入磁盘或通过网络发送。这种以隐私为先的做法是不可妥协的。
链接
- Open VSX:
- GitHub:
采用 MIT 许可证。欢迎提交 PR。⭐️ 如果觉得有用,请给仓库点星。