Nemotron 3.5 Transcribe on one 32 GB card: a prompt picks the transcript, 3 minutes in 4.4 seconds
NVIDIA's open speech model turned a 3-minute, two-speaker recording into timed, speaker-tagged text in 4.4 s on one 32 GB Blackwell card. 24 GB ran slower.
Ask Nemotron 3.5 Transcribe for speaker tags. A three-minute doctor's visit comes back in 4.4 seconds of GPU time, split into doctor and patient, with a start and end time on each of its 561 words. Ask for a clean transcript and the same model drops the "um"s instead.
We ran NVIDIA's new open speech model on one 32 GB Blackwell graphics card, with the open-source software NVIDIA ships. For anyone who runs their own GPUs, it means one deployment hands back the transcript each team needs, chosen per request. On 40 standard test clips it got 6.82% of words wrong, in the same range as the models we compared. A 24 GB share of a bigger Blackwell card also ran it, four to eight times slower. Our SDK example deploys it on your own Blackwell GPU.

Same recording, same card, two prompts. The clean version on the right adds speaker tags nobody asked for.

One model, and the instruction decides what kind of transcript you get
Nemotron 3.5 Transcribe works more like a chat model that listens. You send the audio plus a sentence of instruction, and the instruction picks the transcript.
NVIDIA's model page lists what that sentence can ask for. Word for word, with every filler. Cleaned up for reading. Tagged by speaker, with a time for every word. Translated. It can also name the language or answer a question about the audio. It covers 40 languages and recordings up to one hour.
For a team, that is the difference between running three systems and running one. A medical scribe wants the clean version, a compliance team wants every "um", and a meeting tool wants who said what. Without it, speaker labels and cleanup are separate steps you add yourself. Here it is closer to a studio that records one take and mixes it differently for each listener: one loaded copy, a different sentence in each request.
The model is big for speech. It has 34 billion parameters in total, but only about 4.3 billion work on each piece of audio. Picture a large team of specialists where each word consults a handful of them while the rest wait. That is why it runs fast for its size.
NVIDIA released it on 28 October in three file sizes: 67.5 GB, 34.7 GB and 21.6 GB. The smallest file only runs on NVIDIA's newest generation of cards, Blackwell. NVIDIA says it is almost as accurate: 3.6% more errors than the largest version.
The license is OpenMDW-1.1. It lets you use, change and share the model without restriction, keeping the notice. It puts no conditions on what you do with the transcripts. NVIDIA's page states plainly that commercial use is allowed.
NVIDIA built the model and its open serving recipe, and open-source projects built the engine it runs on. We spotted it in the AI Search news video of 1 November. We packaged it, ran it on cards a team can rent and counted the errors. The appendix credits everyone by name.
NVIDIA's numbers are strong, and its fastest figure is not open yet
On NVIDIA's own tests the model leads the open speech models it compares against. On nine standard English test sets it averages 4.71% wrong words, against 4.94% for Qwen3-ASR-1.7B. In seven other languages it scores 4.62% against 6.49% for the same Qwen model. When people talk over each other, it gets about 16 words in 100 wrong or given to the wrong speaker (15.80), against 16.83 for the strongest comparison NVIDIA lists. Those are NVIDIA's runs of the largest version, captured on 12 October. We did not reproduce them.
The speed claim needs a closer read. NVIDIA's page says one 96 GB RTX PRO 6000 Blackwell transcribes up to 2,238 seconds (about 37 minutes) of audio every second. The page adds that this figure comes from NVIDIA's own packaged engine. Those optimizations "are not yet part of the open-source release". The open version shipped on release day "is expected to be roughly two times slower". We used the open version, so our numbers come from that slower path.
One more limit, also from NVIDIA's page: this is an offline model. You hand it a finished recording and get a transcript back. It does not caption a live call as people speak.
The test: one 32 GB RTX PRO 4500 Blackwell and the open software
What does one 32 GB Blackwell card give you with the software anyone can download? NVIDIA's page lists the RTX 5090, a 32 GB gaming card, as compatible with the small file. No RTX 5090 was available on our cloud that day. We used an RTX PRO 4500 Blackwell, a workstation card with the same 32 GB and chip generation. Its memory is about half as fast as a 5090's. We did not measure a 5090.
We fed it three kinds of audio:
- the first three minutes of a PriMock57 consultation, a staged doctor-patient visit with a human transcript
- five minutes of earnings-call audio, stitched from 33 segments of a public test set
- the same 40 short English clips from a public speech-recognition benchmark that we used to compare Underdog Bark and Qwen3-ASR last week.
That gives a direct comparison with two models we already know. One of them, Qwen3-ASR, is the speech model we already run for our own transcription. The sample is small: 924 words of clips, one three-minute and one five-minute file, one request at a time.
Three minutes of a doctor's visit in 4.4 seconds, with who said what and when
Each prompt in the table took under five seconds of GPU time for three minutes of audio, about forty times faster than the recording plays.
| Prompt | GPU time for 3 minutes | What came back |
|---|---|---|
| verbatim | 4.1 s | 11.74% word errors against the human transcript, 33 of the 34 "um" and "uh" kept |
| clean | 4.1 s | every filler removed (see below) |
| speakers + word timestamps | 4.4 s | doctor and patient turns, 561 words with a start and end time |
Verbatim kept the hesitations a compliance team needs, and speakers split the turns. The turns line up with the human reference when you read them side by side, but we checked that by eye: we scored the words, not the speaker labels. A fourth prompt, "translate to Spanish", came back in Spanish after 4.9 seconds on the GPU. We did not score it.
The five-minute earnings-call file took 4.8 seconds on the GPU, in one request. It got 16.11% of the words wrong, but the stitched reference has gaps where the segments meet, so only the comparison carries weight: Bark got 18.69% on the same file in last week's test, and Qwen3-ASR, in last week's setup, stopped partway through it.
On the 40 short clips, the accuracy number that compares across models, it got 6.82% wrong. Bark 3.0 Pro got 6.28% and Qwen3-ASR-1.7B 7.03% on the same clips, scored the same way. So Nemotron sits between them, closer to Qwen. Those two ran on a different card in last week's test, so the error rates compare and the speeds do not.
Where it slips: the clean prompt over-tags, and meetings are its weakest set
The clean prompt is the one to test before you trust it. Our clean instruction says "omit fillers and accidental repetitions; keep the remaining spoken wording unchanged" and ends "Output: transcript only". It asks for no tags. The model removed every filler and also added 50 speaker tags in three minutes. It left a false start, "Hello, how.", that a reader would expect gone. If your pipeline expects plain prose, strip the tags or use the speaker prompt on purpose.
On the 40 clips it was best of the three on audiobook speech: 0.94% wrong, against 1.88% for Qwen3-ASR and 2.35% for Bark. AMI, recorded office meetings with people talking over each other, was its weakest set at 14.62%, behind Bark (11.54%) and ahead of Qwen3-ASR (16.92%). A meeting tool should check its own recordings before switching.
Which GPU: a real 24 GB slice worked, four to eight times slower
The smallest hardware that worked was a real 24 GB slice of a Blackwell card. The 32 GB card is the fast option, not the minimum.
That slice comes from an RTX PRO 6000 Blackwell, a 96 GB card that can be cut into isolated pieces. Each piece gets 24 GB of memory and a quarter of the card's compute. On it, the three-minute speaker run took 35.3 seconds instead of 4.4. That is eight times slower, and still about five times faster than the recording plays. Short clips were about four times slower, the five-minute file about seven.
The two setups that worked:
| Hardware | Settings | Result |
|---|---|---|
| RTX PRO 4500 Blackwell, 32 GB | fastest settings | works, the numbers above, about 30 GB in use at peak |
| 24 GB Blackwell slice | slower settings, shorter recordings, 2 requests at once | works |
In its fast mode the model did not fit in the 24 GB slice. We did not try a full 24 GB Blackwell card, 16 GB, the mid-size file on a 48 GB card, or many requests at once.
On InferenceKey: one loaded copy answers every style
One running copy on one rented card answered all four styles at the same address, so a new transcript style costs a sentence, not another deployment. Through the platform, a restart was ready in 88 seconds. A fresh machine was ready in 217 seconds. Our very first start took about six minutes while one-time GPU code was built.
It took a custom backend, a short Python file that tells our platform how to install and run a model on each GPU machine. Our built-in option installs the serving engine alone and cannot add NVIDIA's speech add-on, so our file builds both from NVIDIA's recipe. Our backend exposes the standard OpenAI speech route, /v1/audio/transcriptions. Our Qwen3-ASR deployment answers on the same route, so the request a team already sends keeps its shape. The new part is the prompt field.
One limit you will hit is still open. Our transcription address takes files up to 2 MB, about eight minutes of compressed speech. The model takes an hour of audio, so cut longer recordings for now, or compress them hard. Each request is diarized on its own, so speaker labels may not carry over between pieces; we did not test split recordings.
Should you use it? Yes for several transcript styles from one Blackwell card
- You need different transcripts for different teams. One deployment gives verbatim, clean, speaker-tagged and translated text. Check the clean output for stray tags.
- You need the lowest error rate on English clips. It is in the same range as Bark 3.0 Pro and Qwen3-ASR-1.7B on our sample, not ahead. Its gain is the choice of output, not raw accuracy.
- You have a 32 GB Blackwell card. It runs fast. A 24 GB Blackwell slice also runs, slower.
- You run RTX 4090s or older cards. The small file will not run, it needs Blackwell. NVIDIA lists the mid-size file on a 48 GB L40S.
- You need live captions. Not this model, it is offline only.
Follow the Nemotron 3.5 Transcribe SDK example to get the three transcripts of your own recording on your own Blackwell GPU. Fill in .env, run python publish.py once and then python main.py. It needs a 32 GB card for the defaults, about 50 GB of disk and an audio file under 2 MB.
For engineers
Credits
- NVIDIA: the model, the NeMo Speech vLLM plugin (
nemo_speechlm, Apache-2.0), the serving recipe and the benchmarks. - vLLM project: the serving engine (0.32.0) the open path runs on.
- FlashInfer team: the prebuilt sm120 kernels (
flashinfer-jit-cache,flashinfer-jit-cache-sm120f) from flashinfer.ai. - SGLang-Omni (sgl-project/sglang-omni, Apache-2.0): the alternative serving path, release v0.2.0 on 2026-10-27.
- Babylon Health: PriMock57 (CC BY 4.0), the doctor-patient recordings. Our 3-minute cut of
day1_consultation01came from the demo data in NVIDIA's Hugging Face Space. - hf-audio: the Open ASR Leaderboard test data the 40 clips come from.
- AI Search: where we spotted it (video, chapter at 32:04).
- InferenceKey: the custom backend, the deployment, the measurements and the SDK example.
Model and files
| Model | Speech encoder and speaker encoder in front of the Nemotron 3.5 Lightning language model: Mamba-2/Transformer hybrid MoE LM (Nemotron 3.5 Lightning 30B-A3B: Mamba-2 x23, MoE x23, attention x6, 128 experts top-6) + Parallel Expert Encoder (600M ASR transformer, ~99M Sortformer speaker encoder) + 47M CTC timestamp heads. 34B total, ~4.3B active incl. the audio encoder. 65,536-token context |
| Speculative decoding | native MTP head; optional DFlash2 draft (1.14 GB, no word timestamps with it) |
| Checkpoints (HF API, sum of files; the card does not print sizes) | BF16 67.52 GB; FP8 34.69 GB; NVFP4 21.58 GB |
| Used | NVFP4 sha 66c6adc4020179567074d0399cda2a4eeb2bb347: 2 NVFP4 shards 9.99 + 9.19 GB, perception 0.84 GB, MTP FP8 1.34 GB, CTC BF16 0.20 GB. ModelOpt mixed export (NVFP4 decoder, FP8 Mamba layers, FP8 audio encoder, FP8 MTP head); Blackwell only; --kv-cache-dtype fp8; quantized kernels need nvcc from CUDA 13 |
| Quality cost per card | NVFP4 3.6% higher error than BF16 (relative), FP8 1.0% |
| Release | 10/28/2026 on build.nvidia.com, GitHub, Hugging Face and NGC; HF lastModified 2026-10-29T23:04Z |
| License | OpenMDW-1.1 |
What the card says about hardware
The card's compatibility table has no memory sizes. It lists: A100 80GB SXM (BF16); B200, GB200, GB300, DGX Spark, Jetson Thor (BF16, FP8, NVFP4); RTX 5090 (NVFP4, with vLLM 0.32.0, Transformers, GGML); RTX PRO 6000 Blackwell Server Edition (BF16, FP8, NVFP4; also SGLang-Omni 0.2.0); H100 (BF16, FP8; also SGLang-Omni); H200 (BF16, FP8); L40S PCIe 48GB (FP8). The "Deployment" rows: BF16 card "1x H100 80 GB"; NVFP4 and FP8 cards "1x RTX PRO 6000 Blackwell (96 GB)". RTX 5090 and L40S appear only as compatibility rows.
Serving paths and endpoints
- vLLM 0.32.0 + NeMo Speech plugin (what we used). The card documents
/v1/chat/completions(base64audio_url+ text prompt); word timestamps come back in a top-levelctc_timestampsobject (wordswith start/end/speaker,diarization,speaker_tag_to_diarization_speaker,error). Timestamp requests take one recording,stream=false,n=1. Our custom backend wraps this and exposes the OpenAI/v1/audio/transcriptionsroute on the platform. - SGLang-Omni 0.2.0 (pins SGLang 0.5.22). Serves whole-file transcription on
/v1/audio/transcriptions, one GPU, BF16 or FP8 only (validated on one H100 80 GB and one RTX PRO 6000 Blackwell), no NeMo needed. Per the card, "word timestamps, speaker-attributed output, translation and speculative decoding are not part of this integration". The cookbook offersstream=truetext deltas after the whole upload is encoded, which is not live streaming. It reports RTFx 23.40 at concurrency 1 and 102.17 at 16 on one H100 BF16 with short clips. - NIM: the optimized vLLM behind the 2,238 s/s figure (NVFP4 + DFlash2 on an RTX PRO 6000 Blackwell Server Edition). Not open source yet.
Setup
| Main GPU | RTX PRO 4500 Blackwell 32 GB (32,623 MiB, GB203, sm_120), 200 W limit, driver 595.91.07 (CUDA 13.2), nvcc 13.0.88, container 62 GB RAM / 10.2 CPUs, 100 GB disk |
| Why not a 5090 | RTX 5090 not available on our cloud at test time. The PRO 4500 has the same 32 GB and sm_120, about half a 5090's memory bandwidth, and ran at a 200 W limit. Not measured on a 5090 |
| Ladder GPU | RTX PRO 6000 Blackwell Server Edition, MIG 1g.24gb slice |
| Stack | local InferenceKey manager (never production), custom backend nemotron-transcribe 0.1.4 |
| Backend | downloads NeMo Speech at e5d79d5a49cbec49d79440b0070aac0c32a8dbb8; uv venv --python 3.13; uv sync --extra asr --extra vllm --locked --no-install-project; -e .; av==19.0.2, opencv-python-headless==5.0.0.93; FlashInfer prebuilt kernels 0.7.0.post1+cu130; MAX_JOBS=6; snapshot_download of the pinned revision |
vllm serve | VLLM_PLUGINS=nemo_speechlm; fp8 KV cache, --use-replayssm, --mamba-backend flashinfer, CTC timestamp middleware, --reasoning-parser nemotron_v3, MTP 8; util 0.92, --max-model-len 65536, 8 sequences; one audio per prompt up to 57,600,000 samples; warm-up on 2 s of silence. The authors' recipe targets an H100 80 GB (util 0.94, 192 sequences) |
| Requests | multipart file, prompt (style name verbatim, clean, speakers, nearfield, translate, or free text), timestamp_granularities[]=word; temperature 0, thinking off |
| Style text sent | verbatim: "Audio transcription. Language: as spoken. Wording: verbatim, including fillers and repetitions. Formatting: punctuation and capitalization. Output: transcript only." clean: "Audio transcription. Language: as spoken. Wording: omit fillers and accidental repetitions; keep the remaining spoken wording unchanged. Formatting: punctuation and capitalization. Output: transcript only." speakers: "Transcribe this audio with punctuation and capitalization. Include all spoken words and verbal fillers. Write numbers in their standard written form. Put speaker tags spk:0 spk:1 spk:2 spk:3 on the transcription." (STYLES in backend.py; the model never sees the style name) |
| Scoring | jiwer with the Whisper English normalizer; speaker tags stripped before scoring |
Step by step with the SDK example
The example (commit 5017429 on main) has backend.py, publish.py, main.py, requirements.txt and .env.example.
cp .env.example .env # INFERENCEKEY_SDK_TOKEN, INFERENCEKEY_API_KEY,
# INFERENCEKEY_PROJECT, IK_WORKER_ID, IK_AUDIO (< 2 MiB),
# INFERENCEKEY_TENANT_ID, INFERENCEKEY_USER_TOKEN (for publish.py)
pip install inferencekey requests openai # client side; requirements.txt is the backend's
python publish.py # once: packages dist/*.tar.gz and uploads it to your tenant;
# without the two publish variables, upload that file from
# Dashboard -> Custom backends
python main.py # ensure, wait, verbatim/clean/speakers on IK_AUDIO, delete
IK_KEEP_ALIVE=1 keeps the workload. Needs: a Blackwell GPU, a CUDA 13 driver, about 50 GB of disk, 32 GB of VRAM for the defaults. For a 24 GB card, set what ran on the MIG slice:
NEMOTRON_GPU_MEMORY_UTILIZATION=0.93
NEMOTRON_MAX_MODEL_LEN=16384
NEMOTRON_MAX_NUM_SEQS=2
NEMOTRON_MTP=0
NEMOTRON_ENFORCE_EAGER=1
Calling the deployed workload with the OpenAI client:
from openai import OpenAI
client = OpenAI(base_url="https://cloud.inferencekey.com/endpoint/<project>/nemotron-transcribe/v1",
api_key="ik_live_...")
out = client.audio.transcriptions.create(model="default", file=open("meeting.ogg", "rb"),
prompt="speakers", timestamp_granularities=["word"])
Full measurements
Main run through the platform, RTX PRO 4500 Blackwell, NVFP4, MTP 8, CUDA graphs. GPU time inside the backend; round trip from the client.
| Input | Prompt | GPU s | Round trip s | Result |
|---|---|---|---|---|
| consult 3 min (178.61 s) | verbatim | 4.113 | 4.62 | 11.74% WER vs PriMock57 human transcript (S 17, D 32, I 15); 33 um/uh kept (ref 34) |
| consult 3 min | clean | 4.054 | 4.58 | 14.68% vs the verbatim reference (fillers removed by design); 50 unrequested speaker tags |
| consult 3 min | speakers + word timestamps | 4.401 | 4.97 | 13.58% (tags stripped); 57 tags, mapping {"0":0,"1":1}, 561 timed words, error: null |
| consult 3 min | "Please translate the given speech to Spanish." | 4.857 | 5.33 | Spanish text, not scored |
| Earnings-22 stitched (303.4 s) | verbatim | 4.818 | 5.243 | 16.11% (Bark 18.69%; Qwen3-ASR 72.04%, truncated, in the earlier test) |
| 40 clips (347.5 s, 924 words) | verbatim | 12.956 | median 0.50 per clip | 6.82% (S 30, D 17, I 16) |
Per set on the 40 clips:
| Set (8 clips each) | Nemotron NVFP4 | Bark 3.0 Pro (earlier test) |
|---|---|---|
| AMI | 14.62% | 11.54% |
| Earnings-22 | 9.78% | 8.15% |
| GigaSpeech | 3.54% | 3.54% |
| LibriSpeech test-other | 0.94% | 2.35% |
| VoxPopuli | 8.54% | 8.04% |
| All 40 | 6.82% | 6.28% (Qwen3-ASR-1.7B 7.03%) |
Bark and Qwen3-ASR ran on an RTX 3090 (Qwen on the built-in sglang backend 0.5.14), so WER compares and speed does not.
Short clip, 46 s consultation: panel tester ok · 1271 ms; terminal verbatim 0.97 s GPU / 1.29 s round trip, clean 0.98 / 1.43 s, speakers 1.10 / 1.58 s (129 timed words).
Time to ready:
| Start | Time |
|---|---|
| First machine, cold, by hand | env 84 s, weights 21.6 GB in ~18 s, vLLM engine init 255 s (FlashInfer JIT builds), about 6 min total |
Warm restart through ensure() | 88 s |
| Second machine, cold, backend 0.1.4 (eager, no MTP) | 217 s (env 53.4 s, weights 39.0 s) |
| First request after start | 12.30 s for a 9 s clip (kernel warm-up); second 0.393 s |
GPU memory on 32 GB: model loading 20.7 GiB (19.41 GiB without the MTP head), KV cache 4.78 GiB = 1,066,780 tokens (16.28x concurrency at 65,536), CUDA graphs 0.21 GiB. Card 28,146 MiB idle after start, peak 30,254 MiB during the platform run (31,442 MiB in the direct harness).
VRAM ladder

| GPU or cap | Config | Peak VRAM | Times | Output OK | Real |
|---|---|---|---|---|---|
| RTX PRO 4500 Blackwell 32 GB | util 0.92, len 65,536, 8 seqs, MTP 8, CUDA graphs | 30,254 MiB card | 3 min speakers 4.401 s; 5 min 4.818 s; 40 clips 12.956 s | yes | real |
| 22.6 GiB cap on the 32 GB card | util 0.72, len 32,768, 4 seqs, MTP 8, graphs | - | - | no: ValueError: No available memory for the cache blocks | emulated |
| 23.5 GiB cap on the 32 GB card | util 0.75, eager, no MTP, len 16,384, 2 seqs | 25,712 MiB card | 3 min 46.203 s; 5 min 44.088 s; 40 clips 63.441 s | served but over 24 GB; 9.42% because gigaspeech-06 came back empty | emulated |
| 24 GB MIG slice (RTX PRO 6000 Blackwell 1g.24gb) | util 0.93, eager, no MTP, len 16,384, 2 seqs | weights 19.41 GiB + KV 1.4 GiB (221,184 tokens), from vLLM logs | 3 min speakers 35.34 s; 5 min 31.733 s; 40 clips 53.23 s | yes: 6.82% (identical), consult 13.76%, long 15.65% | real |
| same MIG slice | util 0.95, MTP 8, CUDA graphs, len 16,384 | - | - | no: RuntimeError: NVML_SUCCESS == r INTERNAL ASSERT FAILED at CUDACachingAllocator.cpp:1407 after loading the MTP head (out of memory) | real |
The emulated rows teach one thing: a software cap with --gpu-memory-utilization is not a 24 GB card (at 0.75, a 23.5 GiB budget, the card used 25,712 MiB). Only the real slice counts as evidence for 24 GB.
Slowdown on the slice: 4.1x on short clips (GPU time), 6.6x on the 5-minute file, 8.0x on the 3-minute speaker run. The 1g slice has a quarter of the PRO 6000's SMs. nvidia-smi cannot read MIG memory, so VRAM there comes from vLLM's log. There is no 24 GB GeForce Blackwell card, and NVFP4 does not run on Ada (RTX 4090) or older. Not tried: 16 GB, 24 GB with MTP but without graphs, FP8 on 48 GB, DFlash2, concurrency.
Sample outputs
- Consultation,
speakers+ word timestamps, 4.401 s: "spk:0 Hello. spk:1 Hello, how are you? spk:0 Hi, um, should we start? Yeah, okay. Hello, um, good morning, sir. How can I help you this morning? spk:1 Hi, um, I've just had some um diarrhea for the last three days. ..." First words:Hello.2.94 to 3.25 s speaker 0;Hello,3.919 to 3.97 s speaker 1. - earnings22-01 (9.3 s), verbatim, 0.381 s: "Can you, uh, yeah, just perhaps give us an update on on how things have progressed there, and um, you know, how how we're tracking relative to perhaps where where you where you were last quarter? Thank you."

Demo video
A 183-second narrated walkthrough: the panel tester on a 46-second clip, the three prompts in a terminal, the key comparison and the 24 GB ladder.
Problems and status
- 2 MiB upload limit on
/v1/audio/transcriptions(platform, open). About 8 minutes of 32 kbps Opus. The main limit for this model on the platform. - FlashInfer JIT build killed in a 62 GB container (fixed in the backend).
fp4_gemm_cutlass_sm120failed withFAILED: [code=137] ... KilledandRuntimeError: Ninja build failed: ninja ran about 18 nvcc in parallel. Fixed with the prebuilt kernels andMAX_JOBS=6. The GitHub-releaseflashinfer_jit_cachewheel is a 16 KB stub. You need the per-arch provider package plus the top-level package; missing the latter gaveAttributeError ... __version__, fixed in 0.1.4. - Orphaned vLLM child after a delete (platform, worked around). The worker stops custom backends with SIGKILL, so
vllm servesurvived with PPID 1 holding 25 to 29 GB, and the next start failedFree memory on device cuda:0 (2.8/31.37 GiB).... Fixed in the backend withPR_SET_PDEATHSIGand a stale pid file. Platform fix to file: SIGTERM with a grace period, then kill the process group. - Worker watchdog retry races a delete (platform, minor, open).
cleanadds unrequested speaker tags (model behaviour): 50 in 3 minutes, plus a kept false start.- Empty answer on gigaspeech-06 in the emulated 23.5 GiB rung only (1 token,
finish_reason: stop). Fine on 32 GB and on the slice. Not investigated. - Emulated caps under-count: at util 0.75 (23.5 GiB budget) the card used 25,712 MiB, so only the real slice is evidence for 24 GB.
Limits of this test
924 words of clips, one 3-minute and one 5-minute file, greedy decoding, one request at a time. No throughput or concurrency measurement, so no check of the 2,238 s/s figure or the "roughly two times slower" statement. NVIDIA's benchmarks are BF16 and were not reproduced. Nothing measured on an RTX 5090, a full 24 GB Blackwell card, the FP8 checkpoint, DFlash2 or other languages (translation output not scored).
Authors' benchmarks (BF16, captured 12 Oct 2026, not reproduced)
| Benchmark | Nemotron 3.5 Transcribe | Comparison |
|---|---|---|
| English Open ASR, 9 sets, mean WER | 4.71 | Qwen3-ASR-1.7B 4.94 |
| Long-form WER | 10.98 | Parakeet-TDT-0.6B-v3 13.37 |
| Multilingual, 7 languages | 4.62 | Qwen3-ASR-1.7B 6.49 |
| Multi-speaker mean cpWER (AMI, CALLHOME, Mixer 6, NOTSOFAR-1) | 15.80 | DiCoW v3.3 + DiariZen 16.83 |
| Preference-ASR, default / instructed | 7.56 / 6.16 | Canary-Qwen 8.16 / 8.36 |
Card RTFx on one H100 BF16 under tuned batch load: MTP2 410, MTP8 270, DFlash2 K=7 340, DFlash2 K=15 260.
Sources
- Model cards: BF16, NVFP4, FP8, DFlash2
- License: OpenMDW-1.1
- NeMo Speech (vLLM plugin in
nemo/collections/speechlm2/vllm/salm) - SGLang-Omni and its Nemotron Transcribe cookbook
- PriMock57, Open ASR Leaderboard data
- Our earlier test: Underdog Bark 3.0 Pro vs Qwen3-ASR-1.7B
- Where we spotted it: AI Search news video, 1 November 2026
- SDK example
