Maskinoversættelse · Engelsk original
Nemotron Streaming
To NVIDIA streaming ASR modeller deler NemotronStreamingASR Swift mål. Begge er 600M- parameter cache- aware FastConformer encodere parret med en RNN- T dekoder, begge udsender native punktuation og kapitalisering som regelmæssig BPE tokens, begge kører på Apple Neural Engine via CoreML, og den flersprogede variant derudover har MLX bundter til GPU- residente inferens. Vælg den, der matcher dit program:
| Variant | Dækning | Standardstykke | Upstream |
|---|---|---|---|
| Nemotron 3.5 Flersproget | 40 language- locations (en-US, en-GB, es- ES, fr- FR, de- DE, ja- JP, ko- KR, zh- CN, hi- IN, ar,...) | 320 ms | nvidia / nemotron-3.5-asr-streaming-0.6b |
| Nemotron Speech Streaming (Engelsk) | Kun engelsk - mindre bundt, lavere standard latency | 160 ms | nvidia / nemotron-speech-streaming-en-0.6b |
Delte egenskaber
- Native punktuering og kapitalisering - ingen post- processor behov; perioder, kommaer, og tilfælde er en del af ordforrådet
- 600M- parametre - cache- aware 24- layer FastConformer encoder + 2-layer LSTM RNN- T dekoder + fælles netværk
- Streaming af Cache- aware - opmærksomhed og conv cache flow chunk- to- chunk for kontinuerlig kontekst på tværs af chunk grænser
- Flere stykker størrelser - flersproget: 80, 320, 560, 1120 ms (320 ms default); Engelsk: 80, 160, 560, 1120 ms (160 ms standard)
- Flersproget- kun: en hurtig kerne (Linear) 1152→2048→1024) folder en one-hot sprog slot i hver kodet ramme, så de samme vægte tjene alle 40 Language-locales. Den engelske-kun variant har ingen hurtig kerne.
Arkitektur
Tre CoreML modeller caused per audio chunk:
| Komponent | Varebeskrivelse |
|---|---|
| Encoder | 24-lag cache- aware FastConformer, 1024 Det kræver en... 32-frame mel chunk (320 ms default) plus seks tilstand tensorer - opmærksomhed KV cache [24, 1, 56, 1024], depthwise conv cache [24, 1, 1024, 8], pre_cache mel smutback, og en language_mask 128- slot one- hot der driver den hurtige kerne. |
| Prompt- kerne | Linear (1152 → 2048) → Linear → Lineær (2048 → 1024) - folder sproget one- hot i hver kodet ramme, så de samme 600M vægte tjener alle 40 sprog-loces. |
| AfkoderStencils | Two- layer LSTM forudsigelse netværk, 640 skjult. Forbruger den tidligere non-blank token, udsender en indlejring plus opdateret (h, c) Stat. |
| Fælles | Sikrer encoder og dekoder udgange til logits over 13 087 BPE tokens + blank. Punktuation, kapitalisering, og per- sprog tags er bare flere tokens i BPE vocab - ingen ekstra hoveder. |
Intet EOU-hoved
I modsætning til Parakeet- EOU, Nemotron udsender ikke en dedikeret end-of- ytterance token. To måder at inddele kontinuerlig lyd i udtalelser:
- Ekstern VAD - parre sessionen med Silero VAD; på vedvarende tavshed, opkald
finalize()at forpligte sig til den nuværende udtalelse ogcreateSession()For den næste. - Punktgrænse - når den delvise udskrift slutter i
.,?, eller!Ingen ekstra model, men afhænger af lyden faktisk inducerer terminal punktuering.
Bundler
Fem offentliggjorte varianter af Nemotron-3.5-ASR-Streaming-0.6B, plus den ældre engelsk- kun model på samme Swift mål:
| Variant | On- disk | Streaming peak (M5 Pro) | HuggingFace |
|---|---|---|---|
| CoreML INT8 (standard) | 612 MB | 1238 MB | aufklarer / Nemotron-3.5-ASR-Streaming-0.6B-CoreML-INT8 |
| MLX bf16 | 1217 MB | 1474 MB | aufklarer /... MLX-bf16 |
| MLX 5- bit (oprindelig standard) | 538.6 MB | 800 MB | aufklarer /... MLX-5bit |
| MLX 8- bit | 732.6 MB | 992 MB | aufklarer /... MLX-8bit |
| MLX 4- bit | 473 MB | 747 MB | aufklarer /... MLX-4bit |
| Kun engelsk (CoreML INT8) | ~ 580 MB | — | aufklarer / Nemotron-Speech-Streaming-0.6B-CoreML-INT8 |
Upstream: nvidia / nemotron-3.5-asr-streaming-0.6b (flersproget) nvidia / nemotron-speech-streaming-en-0.6b (Kun engelsk).
På selve cache- aware 320 ms sti MLX 5-bit gennemsnit 11.53% WER på tværs af seks FLEURS sprog versus 11.01% til MLX 8- bit. 5-bit standard gemmer omkring 193 MB på disk og 192 MB for spidsværdi RSS MLX 4-bit forbliver en forskning eksport, fordi dens tab af kvalitet er større.
Hurtig start - indfødt MLX streaming
Den Swift runtime understøtter den offentliggjorte MLX 5- bit og 8- bit bundter. 5-bit, holder hver sessions caches uafhængige, og serialiserer inferens, når sessioner deler en indlæst model. MLX bruger valideret 320 ms geometri og i øjeblikket ikke afsløre ord øge.
import NemotronStreamingASR
let model = try await NemotronStreamingASRMLXModel.fromPretrained(
variant: .int5
)
let session = try model.createSession(language: "en-US")
for chunk in microphoneChunks16kHz {
for partial in try session.pushAudio(chunk) {
print(partial.text)
}
}
let final = try session.finalize().last?.text
Hurtig start - CoreML batch transskription
Former til SpeechRecognitionModel, så det falder ind i enhver kode sti, der tager en generisk STT model:
import NemotronStreamingASR
let model = try await NemotronStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000, language: "en-US")
Hurtig start - async streaming
for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
if partial.isFinal { print("FINAL: \(partial.text)") }
else { print("... \(partial.text)") }
}
Hver PartialTranscript cars text, isFinal (gælder kun for den sidste del efter finalize()), confidenceog en monotonisk segmentIndex.
Long- lived session API (mic input)
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 --language en-US # batch
speech transcribe recording.wav --engine nemotron --language en-US --stream # streaming final
speech transcribe recording.wav --engine nemotron --language ja-JP --stream --partial # partials, Japanese
speech transcribe meeting.wav --engine nemotron --language de-DE # any of the 40 locales
Nemotron vs Parakeet- EOU
| Nemotron Streaming 0.6B | Parakeet- EOU 120M | |
|---|---|---|
| Parametre | 600M | 120M |
| Encoder | 24-lag FastConformer, 1024 skjult | 17- lag FastConformer, 512 skjult |
| AfkoderStencils | 2-lag LSTM, RNN-T | 1-lag LSTM, RNN-T |
| EOU-detektion | Ekstern (VAD eller punktuering) | Bygning - i <EOU> token |
| Punktuering | Inline BPE-tokens | Nej (efter-proces) |
| Sprog | 40 language- locations (en-US, en-GB, es- ES, fr- FR, de- DE, ja- JP, ko- KR, zh- CN, hi- IN, ar,...) | 25 europæiske |
| Standardstykke | 320 ms | 320 ms |
| Bunkestørrelse | 612 MB (CoreML INT8); 538.6 MB (lokalt MLX 5- bit) | ~ 150 MB |
... du har brug for flersproget streaming transskription (nogen af 40 language- locations) med punktuation og kapitalisering ud af boksen, og du er OK segmentering yours (VAD eller punktuation cue). For begrænset-enhed iOS diktation, der er Engelsk- kun med en bygning-i EOU-signal, Parakeet- EOU er stadig det mindre valg.
Regressionstest
Den overlappende-tale regression bruger en checked- i WAV med to Kokoro stemmer: den anden starter 320 ms senere og er dæmpet af 3 dB. Hver afkode skal producere en ikke-tom udskrift uden sprog tags. Den faste lyd fjerner levende syntese variation, og den natlige arbejdsgang kører Nemotron i sin egen skaft. Kør Core ML regression med den samme CPU- kun indstilling som natligt:
SPEECH_COREML_COMPUTE_UNITS=cpuOnly \
swift test --disable-sandbox --no-parallel \
--filter '^NemotronStreamingASRTests[.]E2ENemotronHarshAudioTests/'