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 / MicTranscriber
  • TranscriptEventListener
  • IntentRecognizer

즉, 이벤트 기반으로 실시간 음성 입력을 앱 로직에 연결하는 구조입니다.


6) Whisper 대비 어떤 점이 다른가?

Moonshine 측 주장 요약:

  1. 고정 30초 윈도우 제약 완화(유연 입력 길이)
  2. 스트리밍 캐시 지원(중복 계산 감소)
  3. 라이브 인터페이스 특화 지연시간 최적화
  4. 엣지/크로스플랫폼 일관성 강화

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) 참고 링크


10) 결론

Moonshine은 "실시간 음성 UX"를 엣지에서 구현하려는 팀에게 특히 적합합니다.
정확도 경쟁뿐 아니라, 지연시간·온디바이스·크로스플랫폼 통합을 동시에 가져가려는 경우 우선 검토할 만한 선택지입니다.