Awtomatikong salin · Orihinal sa Ingles

Nemotron Pag - aayos

Dalawang modelong NVIDIA na dumadaloy na ASR ang magkatulad sa mga modelo NemotronStreamingASR Ang Swift target. parehong 600M-parameter cache-awar FastConformers ay nakatambal ng isang RNN-T decoder, parehong naglalabas ng mga katutubong bantas at capitalization bilang mga regular na BPE tokens, parehong tumatakbo sa Apple Neural Engine sa pamamagitan ng CoreML, at ang multinasyonal na varisequest ay may mga MLX na mga bungkos para sa GPU-COPANCANC ang isa na naglalaban sa inyong aplikasyon: ang inyong ZXQXQXZ.

Kaurian Pagtatakip PagkawasakPampasulong
Nemotron 3.5 Multilingual40 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 Speak Streaming (Ingles) Ingles — mas maliit na bungkos, mas mababang default latency160 m nvidia/nemotron-speech-streaming-en-0.6b

Ibahagi ang mga katangian

Arkitektura

Tatlong modelong CoreML ang naka - pipeline sa bawat audio function:

Nakikipagtulungan Paglalarawan
Mang - aakit24-layer cache-aware FastConmer, 1024 Nagtatago. 32-frame mel fruity (frame mel fleet)320 Ms default) pati na ang anim na teor ng estado — ang KV cache.24, 1, 56, 1024], malalim na conv cache [24, 1, 1024, 8], pre_cache " mel loopback, " at isang mel loopback language_mask 128-slot one-hot na nagpapatakbo sa mabilis na kernel.
Kaagad na kernelLinear(1152→2048) → ReLU → Linear(2048→1024) — ititiklop ang wikang one-hot sa bawat grapikong balangkas kaya ang parehong 600M na mga pabigat ay nagsisilbi sa lahat ng 40 wika-locales.
Decoder Ang dalawang-layer na LSTM premise network, 640 nakatago. dinadaglat ang nakaraang non-blank na token, ay naglalabas ng isang embeding plus reaptified (h, c) na estado.
MagkasamaFuses regulator at decoder outputs in logits sa 13 087 BPE tokens + blank. Punctuation, capitization, at per-gage tags ay mas marami lamang na mga tokens sa BPE vocab – walang mga ekstrang heads.

Walang EOUU head

Hindi tulad ng Parakeet-EOU, ang Nemotron ay hindi naglalabas ng isang dedikadong dulo-of-bigkas na token. ang dalawang paraan upang bahagiin ang patuloy na audio sa mga kasabihan:

  1. External VAD — Magtambal sa sesyon na may Silero VAD; sa patuloy na katahimikan, tumawag finalize() upang ipahayag ang kasalukuyang sinasabi at createSession() para sa susunod.
  2. Hangganan ng Parokya — kapag ang bahaging kopya ay nagtatapos sa loob ., ?, o !, ituring mo iyan bilang isang natural na palatandaan, walang ekstrang modelo, kundi depende sa audio na aktuwal na lumilikha ng mga bantas ng terminal.

Mga Buto

Limang inilathalang variant ng Nemotron-3.5-ASR-Streaming-0.6B, pati na ang mas lumang modelong Ingles-lamang sa parehong Swift target:

KaurianOn-diskStreaming peak (M5 Pro)HuggingFace
CoreML INT8 (default)612 MB1238 MB Aufklarer/Nemotron-3.5-ASR-Streaming-0.6B-CoreML-INT8
MLX bf161217 MB1474 MB Aufklarer/...MLX-bf16
MLX 5-bit (nauuring default)538.6 MB800 MB Aufklarer/...MLX-5bit
MLX 8-bit732.6 MB992 MB Aufklarer/...MLX-8bit
MLX 4-bit473 MB747 MB Aufklarer/...MLX-4bit
Tagalog-lamang (CoreML INT8)°580 MB— Aufklarer/Nemotron-Speech-Streaming-0.6B-CoreML-INT8

Itaas: nvidia/nemotron-3.5-asr-streaming-0.6b (Ulit na grupo) at nvidia/nemotron-speech-streaming-en-0.6b (Ingles-lamang).

Sa aktuwal na cache-aware 320 landas, MLX 5- Hindi katamtamang dami 11.53% WER anim pa FLEURS wika laban sa 11.01% para sa MLX 8-bit. 5-bit default ay nakatitipid 193 Ang MB ay bilog at 192 MB ng pinakamataas na RSS; MLX 4--bit ay nananatiling isang export ng pananaliksik dahil mas malaki ang kalidad nito.

Mabilis na simula — katutubong MLX agos

Ang Swift runtime ay sumusuporta sa inilathalang MLX 5-bit at 8-bit na bungkos. Ito ay may default sa 5-bit, pinananatili ang mga cache ng bawat sesyon nang independiyente, at ang mga serializes ay nagbabahagi ng isang load model. MLX ay gumagamit ng venue 320 ms thoometicing at sa kasalukuyan ay hindi naglalantad ng salita na nagpapalakas.

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

Mabilis na simula — CoreML na transcription

Ang mga sumusunod sa SpeechRecognitionModel, kaya't ito'y nahuhulog sa anumang landas ng kodigo na kumukuha ng isang modelong generic STT:

import NemotronStreamingASR

let model = try await NemotronStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000, language: "en-US")

Mabilis na pagsisimula — pag - agos ng async

for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
    if partial.isFinal { print("FINAL: \(partial.text)") }
    else               { print("... \(partial.text)") }
}

Ang bawat PartialTranscript ay nagdadala ng text, isFinal (totoo lamang para sa huling bahagi pagkatapos ng finalize()), confidence, at isang monotonic segmentIndex.

Mahabang-buhay na sesyon 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.6BParakeet-EOU 120M
Mga Parameter600M120M
Mang - aakit24-layer FastConformer, 1024 nakatago17-layer FasteConformer, 512 nakatago
Decoder2-layer LSTM, RNN-T1-layer LSTM, RNN-T
PAG - ALALA SA EOUExternal (VAD o bantas) Itinayo-in <EOU> token
Pagpapaalis Mga pananda ng Katutubong Inline BPEHindi (post-process)
Wika40 language-locales (en-US, en-GB, es-ES, fr-FR, de-DE, ja-JP, ko-KR, zh-CN, hi-IN, ar, ...)25 Europeo
Pagkawasak320 ms320 ms
Maliit na sukat612 MB (CoreML INT8); 538.6 MB (native MLX 5-bit)°150 MB
Pumili ng Nemotron kapag...

... kailangan mo Iba't Ibang Wika Dumagsang transcription (anuman sa 40 language-locales) na may bantas at capitalization na lumabas sa kahon, at OK segmenting staters sorry (VAD o bantas clause). Para instrained-device iOS idictation na Ingles-lamang na may isang na-in EOU signal, Parakeet-EOU ang mas maliit pa ring pagpipilian.

Mga pagsubok sa Regressiyon

Ang couple-speech regresyon ay gumagamit ng isang check-in WAV kasama ng dalawa Kokoro mga tinig: ang ikalawa ay nagsisimula 320 Mga m mamaya at ay itenued sa pamamagitan ng 3 Ang bawat decode ay kailangang gumawa ng isang nonfluential transcription na walang mga tag ng wika.Ang nakapirmeng audio ay nag-aalis ng live synthesis variable, at ang nightly workflow ay tumatakbo Nemotron sa sarili nitong matigas, patakbuhin ang Core ML Regresyon na may parehong CPU-lamang pagtatakda bilang nightly:

SPEECH_COREML_COMPUTE_UNITS=cpuOnly \
  swift test --disable-sandbox --no-parallel \
    --filter '^NemotronStreamingASRTests[.]E2ENemotronHarshAudioTests/'