나는 온-디바이스에서 완전히 실행되는 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을 환영합니다. ⭐️ 유용하다면 레포지토리에 별을 달아 주세요.