Add Nemotron Unified ASR 0.6B (25 European languages) as an opt-in streaming model for German + English dictation
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 34/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- machine-learning, rust
- Domain
- audio-video-rtc, backend
Research direction
Start by reading the existing Parakeet Unified English model integration and the linked transcribe.cpp#250 request, then check how models are exposed in the picker. The issue asks for Nemotron Unified as an opt-in streaming model with a final pass on the same model. Measure Auto behavior on German and English clips that switch languages and at openings, comparing results with Parakeet Ultra; the payload does not name test files or an existing test command.
Written by the indexing model from the issue text.
Description
What are you trying to do?
I dictate all day in German and English, often both in one dictation, on macOS (M4 Pro). Today I choose between live text and accuracy. Nemotron 3.5 streams, but it lost or garbled the opening of 6 of 33 of my dictations on Auto (#1517). Parakeet Ultra on Auto got all 33 right and is what I use now, but it doesn't stream.
NVIDIA released nvidia/nemotron-labs-unified-asr-0.6b on 27.10. It's the multilingual version of the Parakeet Unified English that Hex already ships: the same 0.6B unified FastConformer-RNNT, the same buffered streaming with 5.6 s left context, chunk and right context set from 2.08 s down to 0.16 s, punctuation and capitalization, and 25 European languages behind a language-ID prompt (target_lang="de", "en", … or "auto"). License OpenMDW-1.1, like Nemotron 3.5.
From its card, WER % with the language given:
offline 1.12 s 0.56 s 0.32 s 0.16 s
German (FLEURS+MCV+MLS average) 4.32 5.45 6.30 7.47 10.01
English, 7 cleaned sets 4.68 5.41 5.68 6.27 7.87
Nemotron 3.5 streaming, English - 7.26 7.58 7.97 8.90
Parakeet v3, English (offline) 4.93
FLEURS German alone is 3.87 offline and 5.24 at 1.12 s. Nemotron 3.5 streaming's card gives about 8.2 at 1.12 s. So at 1.12 s it streams German at about v3's offline level, and well ahead of Nemotron 3.5.
Mac ports already exist and look fast enough:
- FluidAudio CoreML: ~11–12 ms per 0.56 s step on the Neural Engine (M5 Pro).
- mlx-community: 27–69 ms per 80 ms step on an M1 Pro, 896 MB peak.
It isn't in transcribe.cpp yet. That's requested in handy-computer/transcribe.cpp#250.
What would help?
Nemotron Unified as an opt-in model in the picker, next to Parakeet Unified English, once transcribe.cpp carries it. Streaming for dictation, with a final pass on the same model.
One thing needs measuring before it's recommended for mixed-language dictation. The card's numbers are all with an explicit language. It warns that on auto at latencies of 0.56 s or less, "the first chunks do not contain enough speech" and it "can begin emitting tokens belonging to a different language", which can't be revised. That's the #1517 failure. It says the effect is "much smaller" at higher latency, but publishes no auto numbers. So:
- Default it to
autoat 1.12 s (or 2.08 s) for users on Auto, not a low-latency setting. - Check
autoon German + English clips that switch mid-sentence, and on openings, against Parakeet Ultra's final pass. The #1520 fallback (re-transcribe when the live text loses its start or switches language) would catch the rest.
I can run it on my saved dictations (Keep recordings) as soon as there's a dev build, and report openings lost and German error against Ultra, as I did on #1517.
- Dominant language
- Rust
- Stars
- 5.7k
- Forks
- 337
- Avg merge
- 2h 57m
- Merged PRs (30d)
- 891
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from anomalyco/hex
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
anomalyco/hex#456 · 4 comments ·
Maintainers usually reply within 1 day
-
macOS: with the lid closed and the Mac asleep, dictation reopens a Bluetooth headset's mic every 4 s, and the Mac wakes every 8–10 sPossibly taken @thdxr claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
-
Support selecting multiple dictations in historyPossibly taken @thdxr claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 55/100
Maintainers usually reply within 1 day
-
Please add a model which support Urdu LanguagePossibly taken @thdxr claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 42/100
Maintainers usually reply within 1 day
Similar issues
-
ci javascript tests
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jonathanong/no-mistakes#3258 ·
Maintainers usually reply within 1 day
-
area: cpu-engines area: fuzzer good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
hffgzktbcc-blip/ounce-core#402 ·
Maintainers usually reply within 1 day
-
compiler
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
HerringtonDarkholme/hd-lang#1699 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
swc-project/swc-ai-issues#432 ·
-
SPLADE `/embed_sparse` output depends on the other inputs in the batch (candle BertModel / DistilBertModel)Possibly taken @0z5a claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
huggingface/text-embeddings-inference#979 ·
Maintainers usually reply within 1 day