Terjemahan mesin · Versi asli bahasa Inggris

Nemotron Streaming

Dua NVIDIA streaming ASR model berbagi NemotronStreamingASR Swift Sasaran. keduanya adalah 600M-parameter kakhe- sadar Enkoder FastConformer dipasangkan dengan sebuah decoder RNNT, keduanya memancarkan tanda baca asli dan kapitalisasi sebagai token BPE reguler, keduanya berjalan di Apple Neural Engine via CoreML, dan multibahasa variant tambahan memiliki MLX bundles untuk inferensi GPU-resident. Pilih salah satu yang cocok dengan aplikasi Anda:

VarianLiputPotongan bawaanUpstream
Nemotron 3.5 Multibahasa40 lesu - locales (En-US, en-GB, es- ES, fr-FR, de- DE, ja- JP, ko- KR, zh-CN, hi- IN, ar,...)320 mdnvidia / nemotron-3.5-asr-streaming-0.6b
Nemotron Speech Streaming (English)Bahasa Inggris saja - bundel lebih kecil, latensi baku lebih rendah160 mdnvidia / nemotron-speech-streaming-en-0.6b

Properti bersama

Arsitektur

Tiga CoreML model pipelined per potongan audio:

KomponenDeskripsi
Enkoder24-layer cache- aware FastConformer, 1024 {\ fnCandara\ fs55\ b1\ 4cH000000\ 4aH80} Tersembunyi. 32-frame mel sepotong (320 ms baku) plus enam tensor keadaan - perhatian kV cache [24, 1, 56, 1024], depthwise conv cache [24, 1, 1024, 8], pre_cache mel loopback, and a language_mask 128-slot satu-hot yang mendorong kernel prompt.
Prompt kernelLinear (1152→2048) Apakah Anda mengerti?2048→1024) - Lipat bahasa satu - panas ke dalam setiap bingkai terkode sehingga sama 600M bobot melayani semua 40 Terasingkan - locales.
DecoderDua lapis jaringan prediksi LSTM, 640 tersembunyi. Menggunakan token non- kosong sebelumnya, memancarkan penggelaran plus diperbarui (h, c) Negara.
GabunganFusses encoder and decoder outputs into logits over 13 087 BPE token + blank. Puntuation, capitalisasi, and per-language tag are just more token in the BPE vocab - no extra heads.

Tidak ada kepala EOU

Tidak seperti Parakeet- EOU, Nemotron tidak memancarkan akhir yang didedikasikan tanda-tanda ucapan. Dua cara untuk segmen audio kontinyu ke dalam pernyataan:

  1. Eksternal VAD - pasangan sesi dengan Silero VAD; pada keheningan berkelanjutan, panggilan finalize() untuk melakukan ucapan saat ini dan createSession() untuk yang berikutnya.
  2. Batas tanda baca - ketika transkrip parsial berakhir di ., ?, atau !Tidak ada model tambahan, tapi tergantung pada audio sebenarnya menginduksi tanda baca terminal.

Bundles

Lima varian yang diterbitkan dari Nemotron-3.5-ASR-Streaming-0.6B, ditambah yang lebih tua Inggris - hanya model pada target Swift yang sama:

VarianOn- diskPuncak stream (M5 Pro)HuggingFace
CoreML INT8 (bawaan)612 MB1238 MBaufklarer / Nemotron-3.5-ASR-Streaming-0.6B-CoreML-INT8
MLX bf161217 MB1474 MBAufklarer /... MLX-bf16
MLX 5- bit (baku asli)538.6 MB800 MBAufklarer /... MLX-5bit
MLX 8- bit732.6 MB992 MBAufklarer /... MLX-8bit
MLX 4- bit473 MB747 MBAufklarer /... MLX-4bit
Inggris - hanya (CoreML INT8)~ 580 MB—aufklarer / Nemotron-Speech-Streaming-0.6B-CoreML-INT8

Upstream: nvidia / nemotron-3.5-asr-streaming-0.6b (multibahasa) dan nvidia / nemotron-speech-streaming-en-0.6b (Inggris - saja).

Pada kakhe-sadar aktual 320 jalur ms, MLX 5-bit rata-rata 11.53% WER di atas enam FLEURS bahasa versus 11.01% untuk MLX 8-Bit. 5-bit default simpan tentang 193 MB pada disk dan 192 MB dari puncak RSS; MLX 4-bit tetap sebuah ekspor penelitian karena kerugian kualitas lebih besar.

Awal cepat - asli MLX streaming

The Swift waktu-jalan mendukung penerbitan MLX 5-bit dan 8-bit bundles. Ini default untuk 5-bit, terus setiap sesi cache independen, dan serializes inferensi ketika sesi berbagi satu model dimuat. MLX menggunakan validasi 320 ms geometri dan saat ini tidak mengekspos kata meningkatkan.

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

Awal cepat - CoreML batch transkripsi

Konform ke SpeechRecognitionModel, sehingga jatuh ke setiap jalur kode yang mengambil model STT generik:

import NemotronStreamingASR

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

Awal cepat - streaming async

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

Setiap orang PartialTranscript membawa text, isFinal (Hanya untuk parsial terakhir setelah finalize()), confidence, dan monotonik segmentIndex.

Sesi panjang API yang hidup (masukan mic)

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.6BParkit-EOU 120M
Parameter600M120M
Enkoder24- layer FastConformer, 1024 hidden17-layer FastConformer, 512 tersembunyi
Decoder2-layer LSTM, RNN-T1-layer LSTM, RNN-T
Deteksi EOUEksternal (VAD atau tanda baca)Bangun. <EOU> token
Tanda BacaToken BPE inline asliTidak (proses-posting)
Bahasa40 lesu - locales (En-US, en-GB, es- ES, fr-FR, de- DE, ja- JP, ko- KR, zh-CN, hi- IN, ar,...)25 Eropa
Potongan bawaan320 md320 md
Ukuran bundle612 MB (CoreML INT8); 538.6 MB (asli MLX 5-bit)~ 150 MB
Pilih Nemotron ketika...

... Anda perlu multibahasa transkripsi streaming (apapun dari 40 language-locales) dengan tanda baca dan kapitalisasi keluar dari kotak, dan Anda OK segmenting ascoransi sendiri (VAD atau tanda baca isyarat). Untuk perangkat batasan iOS diktasi yang Inggris - hanya dengan membangun - dalam sinyal EOU, Parakeet - EOU masih pilihan yang lebih kecil.

Tes regresi

Regresi terlalu overlapping-pidato menggunakan pemeriksaan-in WAV dengan dua Kokoro Suara: yang kedua dimulai 320 ms kemudian dan digemari oleh 3 dB. Setiap decode harus menghasilkan transkrip tidak kosong tanpa tag bahasa. Audio tetap menghapus variasi sintesis hidup, dan aliran kerja malam berjalan Nemotron dalam tembikar sendiri Jalankan Core ML regresi dengan CPU yang sama hanya pengaturan sebagai malam:

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