Konekäännös · Englanninkielinen alkuperäinen
Nemotron Streaming
Kaksi NVIDIA streaming ASR -mallia jakavat NemotronStreamingASR Swift -tavoitteen. Molemmat ovat 600M-parametrivälimuistia FastConformer-koodaajat, jotka on yhdistetty RNN-T-koodereihin, ja molemmat lähettävät natiivia välimerkkiä ja pääomitusta tavallisina BPE-poltteina, molemmat toimivat Apple Neural Engine -laitteella CoreML -laitteella ja monikielisessä muunnoksessa on lisäksi MLX -yhdistelmät GPU:ssa.
| Variantti | Kattavuus | Oletuspala | Ylävirta |
|---|---|---|---|
| Nemotron 3.5 Monikielinen | 40 kieli-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 Puhestreaming (englanti) | Englanti vain ... pienempi nippu, pienempi oletus latenssi | 160 ms | nvidia/ nemotron-speech-streaming-en-0.6b |
Yhteiset kiinteistöt
- Päivämerkit ja kapitalisointi ... Ei jälkiprosessoria tarvita; jaksot, pilkut ja tapaus ovat osa sanastoa
- 600M-parametrit 24-soitin FastConformer-koodaaja + 2 -layer LSTM RNN-T-dekooderi + yhteinen verkko
- Kaapelitietoinen streaming
- Monipalaset Monikielinen: 80, 320, 560, 1120 ms (320 ms oletus); englanti: 80, 160, 560, 1120 ms (160 ms oletus)
- Multilingual-only : nopea ydin (Linear 1152→2048→1024) taittaa yhden kuumin kielen aukkoon jokaiseen koodattuun kehykseen, joten samat painot palvelevat kaikkia 40 kieli-lokalia. Englanti-vain versio ei ole nopea ytimen.
Arkkitehtuuri
Kolme CoreML -mallia, jotka on liitetty äänikappaletta kohti:
| Osa | Tavaran kuvaus |
|---|---|
| Koodain | 24-Kaapelikaappitietoinen FastConformer 1024 Se on piilossa. 32- frame mel chunk (320 ms oletus) plus kuusi tila tensors ... Huomio KV välimuisti [24, 1, 56, 1024], syvyyssuunnassa conv välimuisti [24, 1, 1024, 8], pre_cache mel loopback, ja a language_mask 128-välin yksi-kuuma joka ajaa nopeaa ydintä. |
| Nopeus | Lineaarinen(1152→2048) → ReLU → Lineaariset(2048→1024) ... .. taittaa kielen yhden hotin jokaiseen koodattuun kehykseen, joten samat 600M-painot palvelevat kaikkia 40:tä kieli-lokalia. |
| Purkaja | Kaksikerroksinen LSTM-ennustusverkko, 640 piilotettu. Koostaa edellisen tyhjän tunnuksen, lähettää upotuksen sekä päivitetyn (h, c) tilan. |
| Yhteinen | Fuses encoder ja dekooderi lähdöt kirjautuminen yli 13 087 BPE kuponkia + tyhjä. Merkintä, kapitalisointi, ja per-kieli tags ovat vain enemmän kuponkia BPE vicab . |
Ei vientiin suuntautunutta päätä
Toisin kuin Parakeet-EOU, Nemotron ei lähetä omalaatuista tulostusmerkkiä.
- Ulkoinen VAD ... pari istunto Silero VAD; pysyvällä hiljaisuudella, kutsu
finalize()sitoa nykyinen lause jacreateSession() - Välimerkit ... Kun osittainen transkriptio päättyy
.,?tai!, kohdelkaa sitä luonnollisena toimitusmerkkinä. Ei lisämallia, mutta riippuu siitä, mikä ääni todella aiheuttaa päätevälimerkit.
Bundles.
Viisi julkaistua versiota Nemotron-3.5-ASR-Streaming-0.6B sekä vanhempi englantilainen vain malli samalla Swift -tavoitteella:
| Variantti | Levyllä | Virtaushuippu (M5 Pro) | HuggingFace |
|---|---|---|---|
| CoreML INT8 (oletus) | 612 Mt | 1238 Mt | aufklarer/Nemotron-3.5-ASR-Streaming-0.6B-CoreML-INT8 |
| MLX bf16 | 1217 Mt | 1474 Mt | aufklarer/...MLX-bf16 |
| MLX 5-bit (natiivinen oletus) | 538,6 MB | 800 MB | aufklarer/...MLX-5bit |
| MLX 8-bittinen | 732,6 Mt | 992 Mt | aufklarer/...MLX-8bit |
| MLX 4-bittinen | 473 MB | 747 MB | aufklarer/...MLX-4bit |
| Ainoastaan englanniksi (CoreML INT8) | ~580 Mt | — | aufklarer/Nemotron-Speech-Streaming-0.6B-CoreML-INT8 |
Ylävirta: nvidia/nemotron-3.5-asr-streaming-0.6b (monikielinen) ja nvidia/nemotron-speech-streaming-en-0.6b (vain englanniksi).
Akulla... 320 Ms polku MLX 5- bittikeskiarvot 11.53% WER yli kuuden FLEURS kieli vs. 11.01% B. MLX 8-Bit... 5-bit tallentaa 193 MB levyllä ja 192 MB on RSS-huippu; MLX 4-bitti on edelleen tutkimusvientiä, koska sen laadun menetys on suurempi.
Nopea käynnistys ... natiivi MLX suoratoisto
Swift runtime tukee julkaistua MLX 5-bittistä ja 8-bittistä nippua. Se on oletusarvoinen 5-bittiselle, pitää jokaisen istunnon välimuistit riippumattomina ja serialisoi päätteen, kun istunnot jakavat yhden ladatun mallin. MLX käyttää validoitua 320 ms:n geometriaa eikä tällä hetkellä altista sananvahvistamista.
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
Pikakäynnistys CoreML erän transkriptio
Muotoilee SpeechRecognitionModel, joten se putoaa mihin tahansa koodipolkuun, jossa käytetään STT-mallia:
import NemotronStreamingASR
let model = try await NemotronStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000, language: "en-US")
Nopea käynnistys async- streaming
for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
if partial.isFinal { print("FINAL: \(partial.text)") }
else { print("... \(partial.text)") }
}
Jokaisessa PartialTranscript on text, isFinal (tosi vain viimeisen osittaisen jälkeen finalize()), confidence ja monotoninen segmentIndex.
Pitkäaikainen istunto 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) }
KLI
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 Virtaus 0,6B | Parakeet-EOU 120M | |
|---|---|---|
| Parametrit | 600M | 120M |
| Koodain | 24-kerroksinen FastConformer, 1024 piilotettu | 17-kerroksinen FastConformer, 512 piilotettu |
| Purkaja | 2-kerros LSTM, RNN-T | 1-kerros LSTM, RNN-T |
| EOU:n havaitseminen | Ulkoinen (VAD tai välimerkki) | Sisäänrakennettu <EOU> rahake |
| Välimerkit | Omat BPE-rahat | Ei (prosessin jälkeinen) |
| Kieli | 40 kieli-locales (en-US, en-GB, es-ES, fr-FR, de-DE, ja-JP, ko-KR, zh-CN, hi-IN, ar, ...) | 25 |
| Oletuspala | 320 ms | 320 ms |
| Syöttökoosta | 612 MB (CoreML INT8); 538,6 MB (natiivi MLX 5-bit) | ~150 Mt |
... tarvitset monikielinen suoratoiston (mikä tahansa 40 kieli-locals) välimerkit ja kapitaloinnin pois laatikosta, ja olet OK segmentoimalla lauseita itse (VAD tai välimerkit cue). Rajoitettu laite iOS sanelu, joka on vain Englanti-vain sisäänrakennettu EOU-signaali, Parakeet-EOU on edelleen pienempi valinta.
Regressiotestit
Toisio-puheregression yhteydessä käytetään kirjautumista WAV kahdella Kokoro -äänellä: toinen alkaa 320 ms myöhemmin, ja sitä heikennetään 3 dB:llä. Jokaisen dekooderin on tuotettava ei-tyhjä transkriptio ilman kielitunnisteita. Kiinteä ääni poistaa elävän synteesin vaihtelun ja yötyön virtaus kulkee Nemotron -säikeessä. Suorita Core ML -regressio samalla CPU-asennalla kuin yöllä:
SPEECH_COREML_COMPUTE_UNITS=cpuOnly \
swift test --disable-sandbox --no-parallel \
--filter '^NemotronStreamingASRTests[.]E2ENemotronHarshAudioTests/'