Moonshine 프로젝트 기술 정리 (2026-02-25)
원문 저장소: https://github.com/moonshine-ai/moonshine
0) 한 줄 요약
Moonshine은 **실시간 음성 인터페이스(ASR + 명령 인식)**를 엣지 디바이스 중심으로 빠르게 구동하기 위한 오픈소스 음성 AI 프레임워크/모델 세트입니다.
1) 무엇을 하는 프로젝트인가?
Moonshine은 단순 STT 모델만 제공하는 것이 아니라, 실제 제품에서 바로 쓰기 쉽게 다음 흐름을 하나의 라이브러리로 제공합니다.
- 마이크 입력
- VAD(음성 구간 검출)
- STT(음성→텍스트)
- 화자 분리(디아리제이션)
- 인텐트(명령) 인식
핵심 방향은 "배치 처리"보다 "라이브 스트리밍/저지연" 입니다.
2) 어떤 언어를 지원하나?
(A) 음성 인식 대상 언어(모델)
README 기준 지원 언어:
- English
- Spanish
- Mandarin(중국어)
- Japanese
- Korean
- Vietnamese
- Ukrainian
- Arabic
추가로 모델 표에서는 아래가 명시되어 있습니다.
- English, Arabic, Japanese, Korean, Mandarin, Spanish, Ukrainian, Vietnamese
(B) 개발 언어/API 측면
동일 API 철학으로 다음 개발 환경을 지원하도록 설계되어 있습니다.
- Python
- Swift(iOS/macOS)
- Java(Android)
- C++ 코어
3) 모델 크기/용량/스펙은?
README에서 강조하는 포인트:
- 상위 정확도 모델은 Whisper Large v3 대비 높은 정확도 사례 제시
- 하위 모델은 tiny 26MB급 배포 타깃까지 포함
공개 모델 스펙(README 표)
| Language | Architecture | Parameters | WER/CER |
|---|---|---|---|
| English | Tiny | 26M | 12.66% |
| English | Tiny Streaming | 34M | 12.00% |
| English | Base | 58M | 10.07% |
| English | Small Streaming | 123M | 7.84% |
| English | Medium Streaming | 245M | 6.65% |
| Arabic | Base | 58M | 5.63% |
| Japanese | Base | 58M | 13.62% |
| Korean | Tiny | 26M | 6.46% |
| Mandarin | Base | 58M | 25.76% |
| Spanish | Base | 58M | 4.33% |
| Ukrainian | Base | 58M | 14.55% |
| Vietnamese | Base | 58M | 8.82% |
모델 포맷:
- ONNX → OnnxRuntime
.ort플랫버퍼(메모리맵 친화) - HuggingFace에는
safetensors체크포인트도 제공
4) 어디에 설치/배포할 수 있나?
README 기준:
- Python
- iOS
- Android
- macOS
- Linux
- Windows
- Raspberry Pi
- (문서상) IoT/wearables 사례 언급
즉, 데스크톱 + 모바일 + 라즈베리파이 + 엣지를 폭넓게 커버하는 구성이 장점입니다.
5) 어떻게 쓰나? (빠른 시작)
Python (가장 빠른 시작)
pip install moonshine-voice
python -m moonshine_voice.mic_transcriber --language en
명령 인식 샘플:
python -m moonshine_voice.intent_recognizer
Linux(C++ 코어 빌드)
cd core
mkdir build
cmake ..
cmake --build .
./moonshine-cpp-test
Windows 예시 흐름
pip install moonshine-voice
cd examples\windows\cli-transcriber
.\download-lib.bat
msbuild cli-transcriber.sln /p:Configuration=Release /p:Platform=x64
python -m moonshine_voice.download --language en
x64\Release\cli-transcriber.exe --model-path <path> --model-arch <num>
핵심 사용 개념:
Transcriber/MicTranscriberTranscriptEventListenerIntentRecognizer
즉, 이벤트 기반으로 실시간 음성 입력을 앱 로직에 연결하는 구조입니다.
6) Whisper 대비 어떤 점이 다른가?
Moonshine 측 주장 요약:
- 고정 30초 윈도우 제약 완화(유연 입력 길이)
- 스트리밍 캐시 지원(중복 계산 감소)
- 라이브 인터페이스 특화 지연시간 최적화
- 엣지/크로스플랫폼 일관성 강화
README 벤치마크 예시(English):
- Medium Streaming 245M: 6.65% WER
- Whisper Large v3 1.5B: 7.44% WER
※ 벤치마크는 환경/데이터셋/설정에 따라 달라질 수 있으므로 실제 제품에서는 재검증 필요.
7) 실무에서 특히 유용한 경우
- 오프라인/온디바이스 음성 처리 필요
- API 키/클라우드 종속 없이 동작해야 하는 제품
- 200ms급 응답성이 중요한 실시간 UI
- 다중 플랫폼(모바일+데스크톱+라즈베리파이) 동시 운영
8) 도입 전 체크리스트
- 목표 언어의 모델 품질(WER/CER) 사전 샘플 평가
- 장치별 CPU/메모리/배터리 예산 측정
- 스트리밍 구간 길이/토큰 설정 튜닝
- 비라틴 문자권 언어는
max_tokens_per_second권장값 확인 - 개인정보/오프라인 정책(녹음 저장 여부) 확정
9) 참고 링크
- GitHub: https://github.com/moonshine-ai/moonshine
- 프로젝트 사이트: https://moonshine.ai
- OpenASR 리더보드: https://huggingface.co/spaces/hf-audio/open_asr_leaderboard
- 논문(Moonshine v2): https://arxiv.org/abs/2602.12241
- 논문(Flavors of Moonshine): https://arxiv.org/abs/2509.02523
- 논문(1세대): https://arxiv.org/abs/2410.15608
10) 결론
Moonshine은 "실시간 음성 UX"를 엣지에서 구현하려는 팀에게 특히 적합합니다.
정확도 경쟁뿐 아니라, 지연시간·온디바이스·크로스플랫폼 통합을 동시에 가져가려는 경우 우선 검토할 만한 선택지입니다.