Nemotron Streaming
Nemotron-Speech-Streaming-0.6B NVIDIA का लो-लेटेंसी अंग्रेज़ी स्ट्रीमिंग ASR है: कैश-अवेयर FastConformer एन्कोडर RNN-T डिकोडर के साथ, और विराम चिह्न व कैपिटलाइज़ेशन सामान्य BPE टोकन के रूप में सीधे निकाले जाते हैं। इस साइट पर उपलब्ध CoreML बंडल में INT8 पैलेटाइज़्ड एन्कोडर है और यह Apple Neural Engine पर चलता है।
यह क्या है
- नेटिव विराम चिह्न और कैपिटलाइज़ेशन — पोस्ट-प्रोसेसर की ज़रूरत नहीं; पूर्ण विराम, अल्पविराम और केस शब्दावली का हिस्सा हैं
- 600M पैरामीटर — Parakeet-EOU (120M) से बड़ा, इसलिए चुनौतीपूर्ण ऑडियो पर ट्रांसक्रिप्शन की गुणवत्ता काफ़ी बेहतर
- कैश-अवेयर FastConformer — 24 एन्कोडर लेयर्स; अटेंशन और कन्वॉल्यूशन कैश चंक-दर-चंक बहते हैं जिससे निरंतर संदर्भ बना रहता है
- चार चंक आकार — प्रति इनफ़ेरेंस स्टेप 80, 160, 560, 1120 ms (160 ms डिफ़ॉल्ट है, और यही संस्करण वर्तमान में प्रकाशित है)
- केवल अंग्रेज़ी — अंग्रेज़ी भाषण पर प्रशिक्षित; बहुभाषी उपयोग के लिए देखें Qwen3-ASR या Omnilingual ASR
आर्किटेक्चर
प्रत्येक ऑडियो चंक के लिए तीन CoreML मॉडल पाइपलाइन में चलते हैं:
| Component | Description |
|---|---|
| एन्कोडर | 24-layer cache-aware FastConformer, 1024 hidden. Takes a 17-frame mel chunk (160 ms default) plus five state tensors — attention KV cache [24, 1, 70, 1024], depthwise conv cache [24, 1, 1024, 8], and a pre_cache mel loopback that prepends recent-past audio so chunk boundaries stay continuous. |
| डिकोडर | Two-layer LSTM prediction network, 640 hidden. Consumes the previous non-blank token, emits an embedding plus updated (h, c) state. |
| Joint | Fuses encoder and decoder outputs into logits over 1024 BPE tokens + blank. Punctuation and capitalization are just more tokens in the BPE vocab — no extra heads. |
कोई EOU हेड नहीं
Parakeet-EOU के विपरीत, Nemotron कोई समर्पित एंड-ऑफ-अटरन्स टोकन नहीं देता। निरंतर ऑडियो को उच्चारणों में बाँटने के दो तरीक़े:
- बाहरी VAD — सेशन को Silero VAD के साथ जोड़ें; सतत मौन होने पर वर्तमान उच्चारण कमिट करने के लिए
finalize()और अगले के लिएcreateSession()कॉल करें। - विराम चिह्न सीमा — जब आंशिक ट्रांसक्रिप्ट
.,?, या!पर समाप्त हो, उसे स्वाभाविक कमिट संकेत मानें। कोई अतिरिक्त मॉडल नहीं, लेकिन निर्भर इस पर कि ऑडियो वाकई समाप्ति विराम चिह्न उत्पन्न करे।
मॉडल
| Component | Size | HuggingFace |
|---|---|---|
| Encoder (INT8) | 562 MB | aufklarer/Nemotron-Speech-Streaming-0.6B-CoreML-INT8 |
| Decoder | 14 MB | |
| Joint | 3.3 MB |
Upstream: nvidia/nemotron-speech-streaming-en-0.6b (NeMo .nemo चेकपॉइंट)।
त्वरित शुरुआत — बैच ट्रांसक्रिप्शन
SpeechRecognitionModel का पालन करता है, इसलिए किसी भी जेनेरिक STT मॉडल स्वीकार करने वाले कोड में सीधे प्रयुक्त हो सकता है:
import NemotronStreamingASR
let model = try await NemotronStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000)
त्वरित शुरुआत — एसिंक स्ट्रीमिंग
for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
if partial.isFinal { print("FINAL: \(partial.text)") }
else { print("... \(partial.text)") }
}
प्रत्येक PartialTranscript में text, isFinal (केवल finalize() के बाद अंतिम पार्शियल के लिए true), confidence, और एकदिशीय बढ़ता segmentIndex होता है।
लंबी-अवधि सत्र API (माइक इनपुट)
let session = try model.createSession()
// each mic chunk:
let partials = try session.pushAudio(float32Chunk16kHz)
for p in partials { showPartial(p.text) } // isFinal is false mid-stream
// when the utterance ends (VAD silence or explicit stop):
let trailing = try session.finalize()
for p in trailing { commit(p.text) }
CLI
audio transcribe recording.wav --engine nemotron # batch
audio transcribe recording.wav --engine nemotron --stream # streaming final
audio transcribe recording.wav --engine nemotron --stream --partial # with partials
Nemotron बनाम Parakeet-EOU
| Nemotron Streaming 0.6B | Parakeet-EOU 120M | |
|---|---|---|
| पैरामीटर | 600M | 120M |
| Encoder | 24-layer FastConformer, 1024 hidden | 17-layer FastConformer, 512 hidden |
| Decoder | 2-layer LSTM, RNN-T | 1-layer LSTM, RNN-T |
| EOU डिटेक्शन | बाहरी (VAD या विराम चिह्न) | इनबिल्ट <EOU> टोकन |
| विराम चिह्न | नेटिव इनलाइन BPE टोकन | नहीं (पोस्ट-प्रोसेस) |
| भाषाएँ | केवल अंग्रेज़ी | 25 यूरोपीय |
| डिफ़ॉल्ट चंक | 160 ms | 320 ms |
| बंडल आकार | ~580 MB | ~150 MB |
…जब आप विराम चिह्न और कैपिटलाइज़ेशन के साथ उच्च-गुणवत्ता वाली अंग्रेज़ी ट्रांसक्रिप्शन चाहते हैं, और आप खुद उच्चारण को विभाजित करने (VAD या विराम चिह्न संकेत) के लिए तैयार हैं। बिल्ट-इन EOU सिग्नल वाली सीमित iOS डिक्टेशन के लिए, Parakeet-EOU अभी भी छोटा और सरल विकल्प है।