Strojový překlad · Anglický originál
Nemotron Streaming
Dva NVIDIA streaming ASR modely sdílejí NemotronStreamingASR Swift cíl. Oba jsou 600M- parametr cacheaware FastConformer enkodéry párované s RNN-T dekodér, jak emitovat nativní interpunkce a kapitalizace jako pravidelné BPE tokeny, oba běží na Apple Neural Engine přes CoreML, a multilingual varianta navíc má MLX svazků pro GPU- rezidentní inference. Vyberte si ten, který odpovídá vaší aplikaci:
| Varianta | Pokrytí | Výchozí část | Nahoru |
|---|---|---|---|
| Nemotron 3.5 Vícejazyčné | 40 language- locales (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 (anglicky) | Pouze angličtina - menší svazek, nižší výchozí latence | 160 ms | nvidia / nemotron-speech-streaming-en-0.6b |
Sdílené vlastnosti
- Původní interpunkce a kapitalizace - není potřeba postprocesor; periody, čárky a případy jsou součástí slovní zásoby
- 600M parametry - cache- aware 24- layer FastConformer encoder + 2-layer LSTM RNN-T dekodér + společná síť
- Cacheaware streaming - pozornost a conv caches proudí chunk- to- kus pro kontinuální kontext přes hranice chunk
- Vícenásobné velikosti kusu - mnohojazyčné: 80, 320, 560, 1120 ms (320 ms default); English: 80, 160, 560, 1120 ms (160 ms default)
- Pouze mnohojazyčné: rychlé jádro (Linear 1152 → 2048 Plaza 1024) zasune jeden-horký jazyk slot do každého zakódovaného rámce, takže stejné váhy slouží všem 40 language- locales. Angličtina-pouze varianta nemá žádné rychlé jádro.
Architektura
Tři CoreML modely zabudované na audio kus:
| Součást | Popis |
|---|---|
| Enkodér | 24-vrstva cache- vědomi FastConformer, 1024 Skrytý. 32-frame mel chunk (320 ms default) plus šest státních tensorů - pozornost KV cache [24, 1, 56, 1024], depthwise conv cache [24, 1, 1024, 8], pre_cache mel loopback, a language_mask 128-slot one- hot které řídí hnací jádro. |
| Prompt kernel | Lineární (1152 → 2048) → ReLU → Linear (2048 → 1024) - překládá jazyk one-hot do každého kódovaného rámce, takže stejné váhy 600M slouží všech 40 language- locales. |
| Dekodér | Two- vrstva LSTM predikční síť, 640 skryté. Spotřebuje předchozí non-blank token, emituje vkládání plus aktualizované (h, c) stát. |
| Společné | Pojistky enkodér a dekodér výstupy do logits více než 13 087 BPE tokeny + prázdný. Punktuace, kapitalizace, a per- jazyk tagy jsou jen více tokeny v BPE vocab - žádné extra hlavy. |
Žádná hlava EOU
Na rozdíl od Parakeet- EOU, Nemotron nevydává vyhrazený end- of- utterance token. Dva způsoby, jak segmentovat kontinuální audio do uvozovek:
- Externí VAD - párovat sezení s Silero VAD; na trvalé ticho, volejte
finalize()k odevzdání aktuálního slova acreateSession()pro další. - Hranice přemostění - když částečný přepis končí
.,?nebo!Žádný další model, ale závisí na zvukové vlastně indukci terminálové interpunkce.
Svazky
Pět publikovaných variant Nemotron-3.5-ASR-Streaming-0.6B, plus starší anglicko-jediný model na stejném Swift cíli:
| Varianta | On- disk | Vrchol proudu (M5 Pro) | HuggingFace |
|---|---|---|---|
| CoreML INT8 (přednastaveno) | 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 (výchozí hodnota) | 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 |
| Pouze angličtina (CoreML INT8) | ~ 580 MB | — | aufklarer / Nemotron-Speech-Streaming-0.6B-CoreML-INT8 |
Vnější proud: nvidia / nemotron-3.5-asr-streaming-0.6b (vícejazyčné) a nvidia / nemotron-speech-streaming-en-0.6b (pouze v angličtině).
Na skutečné cache- aware 320 ms cesta, MLX 5-bitové průměry 11.53% WER napříč šestou FLEURS jazyky versus 11.01% pro MLX 8- Kousek. 5-bit implicitní ukládá o 193 MB na disku a 192 MB špičkového RSS; MLX 4-bit zůstává výzkumem export, protože jeho ztráta kvality je větší.
Rychlý start - rodné MLX streaming
V Swift runtime podporuje publikované MLX 5-bit a 8-trochu shluky. 5-bit, udržuje každý relace cache nezávislé, a serializuje inference, když relace sdílejí jeden načtený model. MLX používá ověřené 320 ms geometrie a v současné době nevystavuje slovo posílení.
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
Rychlý start - přepis dávky CoreML
Odpovídá SpeechRecognitionModel, takže to klesne do jakékoli kódové cesty, která má generický STT model:
import NemotronStreamingASR
let model = try await NemotronStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000, language: "en-US")
Rychlý start - asynkové streaming
for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
if partial.isFinal { print("FINAL: \(partial.text)") }
else { print("... \(partial.text)") }
}
Každý PartialTranscript nosy text, isFinal (platí pouze pro poslední část po finalize()), confidence, a monotónní segmentIndex.
Dlouhotrvající relace 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 | |
|---|---|---|
| Parametry | 600M | 120M |
| Enkodér | 24- vrstva FastConformer, 1024 skrytá | 17- vrstva FastConformer, 512 skrytá |
| Dekodér | 2- vrstva LSTM, RNN-T | 1vrstvý LSTM, RNN-T |
| Detekce EOU | Externí (VAD nebo interpunkce) | Built- in <EOU> token |
| Punktuace | Původní inline BPE tokeny | Číslo (post- process) |
| Jazyky | 40 language- locales (en- US, en-GB, es-ES, fr-FR, de-DE, ja-JP, ko-KR, zh-CN, hi-IN, ar,...) | 25 Evropská |
| Výchozí část | 320 ms | 320 ms |
| Velikost poutka | 612 MB (CoreML INT8); 538.6 MB (mateřský MLX 5-bit) | ~ 150 MB |
... potřebuješ mnohojazyčné streaming transkripce (kterýkoli z 40 language- locales) s interpunktuation a kapitalizace z krabice, a jste OK segmentující výroky sami (VAD nebo interpunkční tágo). Pro omezený -zařízení iOS diktace, která je anglický - pouze s built- in EOU signál, Parakeet- EOU je stále menší volbou.
Regresní zkoušky
Regrese překrývající se řečí používá checked- in WAV se dvěma hlasy Kokoro: druhý začíná 320 ms později a je zeslaben 3 dB. Každá dekóda musí produkovat neprázdný přepis bez jazykových značek. Pevný zvuk odstraňuje živou variabilitu syntézy a noční pracovní tok běží Nemotron ve svém vlastním úlomku. Spusťte regresi Core ML s tím samým nastavením CPU-pouze jako noční:
SPEECH_COREML_COMPUTE_UNITS=cpuOnly \
swift test --disable-sandbox --no-parallel \
--filter '^NemotronStreamingASRTests[.]E2ENemotronHarshAudioTests/'