완전 로컬 음성 비서는 웨이크워드 감지, 음성 인식, 명령 실행, 답변 생성, 음성 합성까지 기기 안에서 처리하는 구조다. Platypush 글은 Raspberry Pi급 장비에서도 구성할 수 있는 실전 파이프라인을 제시한다.
전체 파이프라인
| 단계 | 역할 | 예시 도구 |
|---|---|---|
| 웨이크워드 | 호출어를 계속 감지 | assistant.openwakeword |
| STT | 음성을 텍스트 명령으로 변환 | assistant.vosk |
| 명령 라우팅 | 로컬 규칙 또는 LLM 호출 | Platypush hooks, 로컬 OpenAI 호환 서버 |
| TTS | 응답을 음성으로 출력 | tts.piper |
핵심은 음성 입력을 무조건 클라우드로 보내지 않는 것이다. 단순 명령은 로컬 규칙으로 처리하고, 자연어 답변이 필요한 경우에도 llama.cpp, Ollama, vLLM 같은 로컬 OpenAI 호환 서버로 보낼 수 있다.
언제 유용한가
- 집 안 자동화처럼 개인정보가 많이 섞이는 명령을 처리할 때
- 네트워크가 끊겨도 기본 명령이 동작해야 할 때
- 특정 도메인 명령만 빠르게 처리하는 가벼운 음성 인터페이스가 필요할 때
- 상용 스마트 스피커의 계정·클라우드 의존성을 줄이고 싶을 때
설계상 주의점
음성 비서는 항상 듣는 시스템이므로 보안 경계가 중요하다. 웨이크워드 감지와 녹음 저장 정책을 명확히 하고, 로컬 명령 실행은 allowlist 방식으로 제한해야 한다. LLM을 붙일 경우에도 셸 명령 실행, 홈 오토메이션 제어, 개인 데이터 조회는 별도 승인 단계를 두는 것이 안전하다.
관련 문서
- whisper-cpp — 로컬 음성 인식과 자막 생성에 쓰는 경량 STT 도구
- moss-tts — 고표현력 음성·사운드 생성을 위한 오픈소스 TTS 모델 패밀리
- sglang-omni — 음성 출력 LLM과 옴니모달 모델을 위한 멀티스테이지 서빙 프레임워크
참고 자료
- Build a fully local voice assistant in 2026 — Platypush Blog (2026-06)