Moonshine
엣지 디바이스용 고속·고정확도 음성 인식(ASR) 오픈소스
About
- 모든 처리를 온디바이스에서 수행하는 실시간 음성 인식 프레임워크
- 스트리밍 기반 모델 구조를 통해 사용자가 말하는 동안에도 실시간으로 텍스트를 생성하며, Whisper Large v3보다 낮은 오류율(WER 6.65%) 을 달성
- Python, iOS, Android, MacOS, Linux, Windows, Raspberry Pi 등 다양한 플랫폼에서 동일한 API로 동작하며, C++ 코어와 OnnxRuntime을 기반으로 최적화
- 언어별 모델(영어, 한국어, 일본어, 스페인어 등) 과 명령 인식(Intent Recognition) 기능을 포함해, 개발자가 손쉽게 음성 인터페이스를 구축 가능
- Whisper의 30초 고정 입력·캐시 부재·언어 정확도 한계를 개선해, 엣지 환경에서의 저지연 음성 인터페이스 구현에 적합한 대안으로 주목
Moonshine Voice 개요
- Moonshine Voice는 실시간 음성 애플리케이션 개발용 오픈소스 AI 툴킷
- 모든 연산이 로컬 디바이스에서 수행되어 빠른 응답과 개인 정보 보호 보장
- 스트리밍 처리로 사용자가 말하는 중에도 텍스트 업데이트 가능
Whisper 대비 주요 개선점
- Whisper의 30초 고정 입력 윈도우를 제거해, 가변 길이 입력을 지원
- 캐싱 기능을 추가해 스트리밍 중 중복 연산을 줄이고 지연(latency)을 대폭 단축
- 언어별 단일 모델 학습으로 동일 크기 대비 더 높은 정확도 확보
- 크로스플랫폼 C++ 코어 라이브러리를 통해 Python, Swift, Java 등에서 동일 API 사용 가능
- Whisper Large v3(1.5B 파라미터) 보다 작은 245M 파라미터 모델로 더 낮은 오류율 달성
주요 기능 및 API 구조
- 음성 인식 파이프라인을 단일 라이브러리로 통합해 마이크 입력, 음성 감지(VAD), 텍스트 변환, 화자 식별, 명령 인식을 일괄 처리
- 핵심 클래스:
- Transcriber: 오디오 입력을 텍스트로 변환
- MicTranscriber: 마이크 입력 자동 처리
- IntentRecognizer: 자연어 기반 명령 인식
모델 및 성능
- Moonshine Medium Streaming (245M): WER 6.65%, Whisper Large v3(7.44%)보다 우수
- Moonshine Small Streaming (123M): WER 7.84%
- Moonshine Tiny Streaming (34M): WER 12.00%
- 한국어 Tiny 모델은 WER 6.46%로 평가됨
- 모든 모델은 OnnxRuntime 기반 .ort 포맷으로 제공되며, 8비트 양자화로 경량화
개발 및 배포
- Python (pip install moonshine-voice), Swift (SPM), Android (Maven), Windows (C++ 헤더) 등 주요 환경에서 설치 가능
- Raspberry Pi 최적화 패키지 제공, USB 마이크로 실시간 인식 가능
- MIT 라이선스(영어 모델) 및 Moonshine Community License(기타 언어 모델)로 공개
- 향후 로드맵: 모바일용 바이너리 경량화, 추가 언어, 개선된 화자 식별, 도메인 커스터마이징
벤치마크 및 활용
- Whisper 대비 5배 이상 빠른 처리 속도로 실시간 음성 인터페이스에 적합
- 200ms 이하 응답 지연 목표로 설계되어, 대화형 애플리케이션에 활용 가능
- 명령 인식 예제를 통해 “Turn on the lights” 등 자연어 변형 명령도 인식 가능
- HuggingFace OpenASR Leaderboard에서 공개 성능 검증 완료