저는 한동안 Ollama를 로컬에서 실행해 왔는데, 항상 아쉬웠던 점 하나는 음성 기능이었습니다. 제가 찾은 모든 솔루션은 오디오를 클라우드로 전송하거나, GPU가 필요하거나, macOS에 종속되어 있었습니다.
그래서 저는 그 중 어느 것도 해당하지 않는 시스템을 구축했습니다.
전체 스택 — 모두 로컬, 모두 CPU, 모두 ONNX 기반:
Silero VAD — 신경망 음성 활동 감지 (Voice Activity Detection), 어떤 CPU에서도 프레임당 약 5ms 소요. 푸시 투 토크 (Push-to-talk)나 수동 클리핑이 필요 없습니다. 사용자가 말을 시작하고 멈추는 시점을 알아서 감지합니다.
Parakeet TDT 0.6B — ONNX INT8 전사 (Transcription). 25개 언어 지원, 일반 노트북 CPU에서 약 200500ms 소요. :5093 포트에서 OpenAI 호환 API 제공. Whisper API나 클라우드 STT를 사용하지 않습니다.
Supertonic TTS 3 — ONNX 합성 (Synthesis), CPU에서 약 100500ms 소요. 다국어 지원 (EN/ES/KO/PT/FR). 진정으로 뛰어난 품질. ElevenLabs나 클라우드 TTS를 사용하지 않습니다.
개인정보 보호 측면 (가장 먼저 언급했어야 할 부분):
이 시스템을 Ollama + OpenCode 또는 LM Studio와 결합하면, 전체 데이터 흐름은 다음과 같습니다:
사용자의 음성 → Silero VAD (사용자의 CPU) → Parakeet STT (사용자의 CPU) → Ollama / LM Studio (사용자의 기기) → Supertonic TTS 3 (사용자의 CPU) → 사용자의 스피커
이것이 전부입니다. 단 0바이트의 데이터도 하드웨어를 벗어나지 않습니다. 전사(Transcription) API도, 합성(Synthesis) API도, 추론(Inference) 클라우드도 없습니다. 당신의 대화는 완전히 비공개로 유지됩니다.
교차 플랫폼 지원 — macOS, Linux, Windows:
macOS/Linux에서의 명령어 한 줄:
git clone https://github.com/groxaxo/opencode-voice-service && cd opencode-voice-service && ./setup.sh
Windows (PowerShell):
.setup.ps1
설치 프로그램은 대화형으로 작동합니다. 어떤 구성 요소(Parakeet, Supertonic, VAD venv)를 원하는지, 어떤 에이전트 통합(Claude Code, OpenCode, OpenClaw, Hermes, Codex)을 설정할지 묻습니다. macOS의 launchd, Linux의 systemd, Windows의 작업 스케줄러(Task Scheduler)를 자동으로 인식합니다.
4년 된 ThinkPad에서 테스트했습니다. GPU 없이도 잘 작동합니다.
GitHub: https://github.com/groxaxo/opencode-voice-service
VAD 튜닝이나 특정 하드웨어에서의 ONNX 성능에 관한 질문이 있다면 기꺼이 답변해 드리겠습니다.