Nemotron Streaming
Nemotron-Speech-Streaming-0.6B, NVIDIA'nın düşük gecikmeli İngilizce akışlı ASR'sidir: RNN-T decoder ile eşleştirilmiş önbellek farkındalıklı bir FastConformer encoder ve yerel noktalama ile büyük harf kullanımı normal BPE token'ları olarak yayılır. Bu sitedeki CoreML paketi INT8 palettized encoder ile gelir ve Apple Neural Engine üzerinde çalışır.
Nedir
- Yerel noktalama ve büyük harf kullanımı — son işlemci gerekmez; noktalar, virgüller ve büyük/küçük harf sözcük dağarcığının bir parçasıdır
- 600M parametre — Parakeet-EOU'dan (120M) daha büyük olduğu için zorlu seslerde transkripsiyon kalitesi belirgin şekilde daha yüksektir
- Önbellek farkındalıklı FastConformer — sürekli bağlam için parçadan parçaya akan attention + conv önbellekleriyle 24 encoder katmanı
- Dört parça boyutu — çıkarım adımı başına 80, 160, 560, 1120 ms (160 ms varsayılandır ve bugün yayımlanan varyanttır)
- Yalnızca İngilizce — İngilizce konuşma üzerinde eğitilmiştir; çok dilli kullanım için Qwen3-ASR veya Omnilingual ASR'ye bakın
Mimari
Ses parçası başına boru hattına alınan üç CoreML modeli:
| Bileşen | Açıklama |
|---|---|
| Encoder | 24 katmanlı önbellek farkındalıklı FastConformer, 1024 hidden. 17 frame'lik bir mel parçası (varsayılan 160 ms) artı beş durum tensörü alır — attention KV önbelleği [24, 1, 70, 1024], depthwise conv önbelleği [24, 1, 1024, 8] ve parça sınırlarının sürekli kalması için yakın geçmiş sesi başa ekleyen bir pre_cache mel geri besleme. |
| Decoder | İki katmanlı LSTM tahmin ağı, 640 hidden. Önceki non-blank token'ı tüketir, bir gömme ve güncellenmiş (h, c) durumu yayar. |
| Joint | Encoder ve decoder çıktılarını 1024 BPE token + blank üzerinde logit'lere kaynaştırır. Noktalama ve büyük harf kullanımı BPE sözcük dağarcığındaki ek token'lardan ibarettir — fazladan kafa yoktur. |
EOU kafası yok
Parakeet-EOU'nun aksine, Nemotron özel bir end-of-utterance token'ı yaymaz. Sürekli sesi söylenişlere ayırmanın iki yolu:
- Harici VAD — oturumu Silero VAD ile eşleştirin; sürekli sessizlikte, mevcut söylenişi kaydetmek için
finalize(), bir sonraki içincreateSession()çağırın. - Noktalama sınırı — kısmi transkript
.,?veya!ile bittiğinde, bunu doğal bir kaydetme ipucu olarak değerlendirin. Ek model gerekmez, ancak sesin gerçekten son noktalama getirmesine bağlıdır.
Model
| Bileşen | Boyut | 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 checkpoint).
Hızlı başlangıç — toplu transkripsiyon
SpeechRecognitionModel'a uyduğu için, genel bir STT modeli alan herhangi bir kod yoluna takılabilir:
import NemotronStreamingASR
let model = try await NemotronStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000)
Hızlı başlangıç — eşzamansız akış
for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
if partial.isFinal { print("FINAL: \(partial.text)") }
else { print("... \(partial.text)") }
}
Her PartialTranscript, text, isFinal (yalnızca finalize() sonrası son kısmi için true), confidence ve monoton bir segmentIndex taşır.
Uzun ömürlü oturum API'si (mikrofon girişi)
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
speech transcribe recording.wav --engine nemotron # batch
speech transcribe recording.wav --engine nemotron --stream # streaming final
speech transcribe recording.wav --engine nemotron --stream --partial # with partials
Nemotron vs Parakeet-EOU
| Nemotron Streaming 0.6B | Parakeet-EOU 120M | |
|---|---|---|
| Parametre | 600M | 120M |
| Encoder | 24 katmanlı FastConformer, 1024 hidden | 17 katmanlı FastConformer, 512 hidden |
| Decoder | 2 katmanlı LSTM, RNN-T | 1 katmanlı LSTM, RNN-T |
| EOU algılama | Harici (VAD veya noktalama) | Yerleşik <EOU> token |
| Noktalama | Yerel satır içi BPE token'ları | Yok (son işlem) |
| Diller | Yalnızca İngilizce | 25 Avrupa dili |
| Varsayılan parça | 160 ms | 320 ms |
| Paket boyutu | ~580 MB | ~150 MB |
…kutudan çıktığı gibi noktalama ve büyük harf kullanımıyla daha yüksek kaliteli İngilizce transkript istiyorsanız ve söylenişleri kendiniz segmentlere ayırmaya (VAD veya noktalama ipucu) razıysanız. Yerleşik EOU sinyaliyle kısıtlı cihaz iOS diktesi için Parakeet-EOU hâlâ daha küçük ve daha basit seçenektir.