- पूरी processing on-device पर करने वाला real-time speech recognition framework
- streaming-based model architecture के जरिए यूज़र के बोलते समय भी real-time में text generate करता है, और Whisper Large v3 से कम error rate (WER 6.65%) हासिल करता है
- Python, iOS, Android, MacOS, Linux, Windows, Raspberry Pi सहित कई platforms पर एक ही API के साथ काम करता है, और C++ core तथा OnnxRuntime पर आधारित optimized implementation देता है
- language-specific models (English, Korean, Japanese, Spanish आदि) और command recognition (Intent Recognition) फीचर शामिल हैं, जिससे developers आसानी से voice interfaces बना सकते हैं
- Whisper की 30-second fixed input, cache की कमी, और language accuracy limitations को बेहतर बनाकर, edge environments में low-latency voice interfaces लागू करने के लिए उपयुक्त विकल्प के रूप में ध्यान आकर्षित कर रहा है
Moonshine Voice का overview
- Moonshine Voice, real-time voice applications के development के लिए open source AI toolkit है
- सभी computations local device पर होती हैं, जिससे fast response और privacy protection सुनिश्चित होती है
- streaming processing के कारण यूज़र के बोलते समय भी text updates संभव हैं
- मॉडल, in-house research पर आधारित scratch से trained architecture है, और Whisper Large v3 से बेहतर accuracy प्रदान करता है
- 26MB ultra-compact model से 245M-parameter mid-size model तक कई sizes उपलब्ध हैं
- English, Korean, Japanese, Chinese, Spanish, Vietnamese, Arabic, Ukrainian सहित multilingual support
Whisper की तुलना में मुख्य सुधार
- Whisper की 30-second fixed input window हटाकर variable-length input support जोड़ा गया है
- caching feature जोड़कर streaming के दौरान duplicate computation कम की गई है और latency को काफी घटाया गया है
- language-specific single-model training के जरिए समान size पर अधिक accuracy हासिल की गई है
- cross-platform C++ core library के माध्यम से Python, Swift, Java आदि में एक ही API इस्तेमाल किया जा सकता है
- Whisper Large v3 (1.5B parameters) से छोटे 245M-parameter model के साथ कम error rate हासिल किया गया है
मुख्य फीचर्स और API structure
- speech recognition pipeline को एक single library में integrate करके microphone input, voice activity detection (VAD), text conversion, speaker identification, command recognition को एक साथ process करता है
- core classes:
- Transcriber: audio input को text में बदलता है
- MicTranscriber: microphone input को automatic तरीके से process करता है
- IntentRecognizer: natural language आधारित command recognition
- event-based architecture के साथ LineStarted / LineUpdated / LineCompleted जैसी state changes को real-time में detect किया जा सकता है
मॉडल और performance
- 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%
- Korean Tiny model का मूल्यांकन WER 6.46% के साथ किया गया है
- सभी models OnnxRuntime-based .ort format में उपलब्ध हैं, और 8-bit quantization से lightweight बनाए गए हैं
development और deployment
- Python (pip install moonshine-voice), Swift (SPM), Android (Maven), Windows (C++ headers) आदि प्रमुख environments में install किया जा सकता है
- Raspberry Pi optimized package उपलब्ध है, जिससे USB microphone के साथ real-time recognition संभव है
- MIT license (English models) और Moonshine Community License (अन्य language models) के तहत जारी
- आगे की roadmap: mobile binaries को lightweight बनाना, अतिरिक्त भाषाएँ, बेहतर speaker identification, domain customization
benchmark और उपयोग
- Whisper की तुलना में 5x से अधिक तेज processing speed के कारण real-time voice interfaces के लिए उपयुक्त
- 200ms से कम response latency target के साथ design किया गया है, इसलिए conversational applications में उपयोग किया जा सकता है
- command recognition example के जरिए “Turn on the lights” जैसी natural-language variation commands भी पहचानी जा सकती हैं
- HuggingFace OpenASR Leaderboard पर public performance verification पूरा हो चुका है
1 टिप्पणियां
Hacker News की राय
OpenASR Leaderboard के अनुसार Parakeet V2/V3 और Canary-Qwen (Qwen का fine-tuned version) का प्रदर्शन Moonshine से बेहतर है
तीनों मॉडल open source हैं, लेकिन Parakeet सबसे छोटा मॉडल है
मैं Parakeet V3 को Handy के साथ लोकल में इस्तेमाल कर रहा हूँ, और यह बहुत अच्छा काम करता है
इसलिए मुझे लगता है कि सीधी तुलना करना मुश्किल है
यह हैरानी की बात है कि leaderboard में model size की जानकारी नहीं है
यह पोस्ट भी मैं अभी Handy में बोलकर लिख रहा हूँ
Punctuation अपने-आप संभालना भी शानदार है, और लोकल में सीधे speech-to-text होने से यह Google Docs से कहीं ज़्यादा सुविधाजनक है
पहले voice input के लिए Chrome-आधारित सुविधा इस्तेमाल करने हेतु मैंने Orion browser तक इंस्टॉल किया था, लेकिन अब सिर्फ Handy ही काफ़ी है
मेरी typing speed 100~120WPM थी, और यह उससे भी तेज़ है
यह सच में life quality बेहतर करने वाला tool है
macOS पर codex-cli और Handy को साथ इस्तेमाल करते समय default shortcut (Option+Space) बोलते-बोलते बीच में space डाल देता है
उसकी जगह Left Ctrl + Fn संयोजन साफ़-सुथरे तरीके से काम करता है
जानना चाहूँगा कि दूसरे लोग कौन-से shortcuts इस्तेमाल करते हैं
खुद इस्तेमाल करके देखा तो यह सचमुच शानदार है
अब मैं इसे सभी client work में default app की तरह इस्तेमाल करने वाला हूँ
नतीजों के लिए बधाई
व्यक्तिगत रूप से मुझे streaming feature सबसे दिलचस्प लगता है
मैंने Voxtral Realtime पर आधारित macOS के लिए dictation app LocalVoxtral बनाया है, और streaming तथा offline STT के UX में बहुत बड़ा अंतर होता है
जब बोलते समय शब्द तुरंत दिखने लगते हैं, तो feedback loop पूरी तरह बदल जाता है
errors को real time में पकड़कर वाक्य सुधारना संभव होता है, इसलिए अनुभव कहीं ज़्यादा स्वाभाविक लगता है
मैं जानना चाहता हूँ कि Moonshine की streaming latency वास्तव में कितनी है
साथ ही यह भी जानना चाहूँगा कि क्या OpenAI Realtime-compatible WebSocket endpoint उपलब्ध है
Moonshine को default रखने की वजह यह है कि accuracy और latency का संतुलन सबसे अच्छा है
आगे चलकर मैं एक objective benchmark जोड़ने वाला हूँ, जिसमें कई models को उसी audio data पर compare किया जाएगा
साथ ही Sherpa-onnx API को देखकर बनाया गया एक custom WebSocket server भी है (rift-local)
यह single connection के लिए optimized है, इसलिए multiple connections के लिए उपयुक्त नहीं है
मैंने कई Twitch streamers को obs-localvocal के ज़रिए stream में transcription और translation feature जोड़ने में मदद की है
इसका मुख्य उपयोग German speech को English subtitles में बदलना था
Whisper से तेज़ और अधिक accurate विकल्प की ज़रूरत है, लेकिन streamers installable OBS plugin का रूप पसंद करते हैं
Moonshine में translation feature नहीं है, और यह multilingual auto-detection भी सपोर्ट नहीं करता, इसलिए बार-बार code-switching करने वाले streamers के लिए इसकी सीमाएँ हैं
अगर भाषा अपने-आप पहचानकर model switch करने की सुविधा हो, तो वह आदर्श होगा
Whisper Large v3 से अधिक accuracy का दावा करना काफ़ी साहसी कोशिश है
evaluation के समय क्या Whisper के hallucination loop मुद्दे को ध्यान में रखा गया था, यह जानना चाहूँगा
साथ ही edge device deployment में इसका VRAM उपयोग 8GB Mac के लिए उपयुक्त है या नहीं, यह भी जानना चाहता हूँ
अगर यह quantization के बिना चलता है, तो यह काफ़ी महत्वपूर्ण बात होगी
streaming environment में साधारण WER से ज़्यादा partial stability महत्वपूर्ण होती है
voice assistant के मामले में अगर partial transcription हर कुछ सौ ms में बदलती रहे, तो UX खराब हो जाता है
first-token latency, real-time factor, और 1 सेकंड/3 सेकंड बाद revised token ratio जैसे metrics हों, तो तुलना कहीं ज़्यादा व्यावहारिक लगेगी
अगर ये आँकड़े अच्छे हों, तो यह local assistant pipeline के लिए बहुत आशाजनक है
मुझे भी बोलते समय खुद पीछे जाकर अर्थ दोबारा समझने जैसा अनुभव होता है, और लगता है कि यह अवचेतन रूप से भी अक्सर होता होगा
अगर ऐसा है, तो शायद इस ratio का बहुत कम होना ज़रूरी नहीं होगा
वर्तमान में समर्थित भाषाएँ English, Arabic, Japanese, Korean, Chinese, Spanish, Ukrainian, और Vietnamese हैं, और इनमें से अधिकांश Base (58M parameters) आकार की हैं
Raspberry Pi installation guide में
'sudo pip install --break-system-packages moonshine-voice'की सिफारिश क्यों की गई है, यह समझ नहीं आताहालांकि documentation में uv का उपयोग करने वाला विकल्प भी दिया गया है
uv run इस्तेमाल करने पर अलग से source command चलाने की ज़रूरत नहीं पड़ती
यह स्पष्ट नहीं है कि “accuracy improvement” English के आधार पर है या multilingual आधार पर
तुलना संभव बनाने के लिए कम-से-कम भाषा-वार WER table दी जानी चाहिए
मैं जानना चाहता हूँ कि browser में JavaScript support की कोई योजना है या नहीं
पहले कोई demo था, लेकिन अब वह गायब हो गया है
यह कभी लोकल में काम करता था, लेकिन किसी समय के बाद बिना कारण टूट गया
साथ ही browser के अंदर offline transcription solutions को समेटने वाला एक comparison document भी है
transformers.js (WebGPU उपयोग, WASM fallback) पर आधारित अलग Moonshine demo भी मौजूद है
अगर browser GUI में Moonshine आज़माना हो, तो नीचे दिया गया command चलाएँ
इससे लोकल transcription के लिए web frontend RIFT खुल जाएगा, और इसमें copy button भी है
Web Speech API तथा दूसरे models (cloud API सहित) के साथ comparison भी किया जा सकता है
संबंधित लिंक: rift-local, RIFT डेमो