Local speech recognition & synthesis
Nemotron 3 Diarization: who said what in your meeting?
A transcript saves time, until you find “I will take that part” a few days later and cannot remember who said it. Nemotron 3 Diarization1 fills a different gap from speech recognition: it assigns speaker labels to intervals in a recording. Combined with ASR2, those intervals help preserve the conversation behind the words. Before installing another model, consider what your meeting notes are missing.
The question a transcript leaves unanswered
Imagine a three-person meeting containing “I will send the draft tomorrow” followed by “I will check the numbers.” Even an accurate transcript is a poor task list without attribution. The next improvement is not necessarily a more fluent summary; it is preserving when each sentence occurred and which speaker said it.
ASR answers what was said; diarization answers which speaker was active when. Aligning the two creates a speaker-attributed transcript. If a local LLM3 later extracts decisions and tasks, retain timestamps so the reader can return to the original exchange.

What support for eight speakers means
Released on September 23, 2026, Nemotron 3 Diarization is an open-weight model with roughly 100 million parameters. It assigns generic speaker channels in arrival order and returns speaking intervals. A label such as speaker_0 is not a colleague's real name; assigning names requires a separate review or meeting metadata.
Two channels can be active at once when people overlap. This is not source separation: it does not extract a clean audio track for each voice. Detecting overlap does not automatically settle every word or its attribution. Conversations with more than eight speakers are outside the stated speaker limit.
Choose the ASR for the languages you record
A diarization model's name does not establish Korean transcription quality. An English meeting, a Korean discussion containing English product names, and a Japanese interview place different demands on ASR. Consider multilingual models such as Qwen3-ASR, Whisper or Nemotron 3.5, and check whether your chosen implementation supplies word timestamps.
Use a conversation resembling your work rather than only clean narration. Include interruptions, a distant speaker and someone returning after a long pause. Check three things separately: the words, stable speaker labels and overlapping intervals. Combining everything into one score makes it harder to see which stage needs attention4.

Mac has a path too: distinguish the model from its runtime
NVIDIA documents the NeMo Python path around Linux and NVIDIA GPUs. That does not make an NVIDIA card the only way to use the model. Its NeMo-Speech.cpp native runtime5 offers paths including Apple Silicon Metal, CPU6 and CUDA7. Check what your installed build actually supports with the doctor command.
For Mac and iPhone app development, Argmax Pro SDK 3 also supports Nemotron 3 Diarization. It is a separate product from the Python weights or C++ CLI8, with its own access and distribution terms. In every case, distinguish support from a measured time for your recording and device.
| Environment | Runtime | First check |
|---|---|---|
| Apple Silicon Mac | NeMo-Speech.cpp · Metal | Metal support in the build and selected model |
| NVIDIA GPU PC | NeMo-Speech.cpp · CUDA / NeMo Python | Driver/runtime versions and memory with ASR |
| PC without a GPU | NeMo-Speech.cpp · CPU | Time a short recording first |
| Mac/iPhone app | Argmax Pro SDK 3 | SDK terms and app integration |
What to check for each execution path
Apple Silicon Mac
- Runtime
- NeMo-Speech.cpp · Metal
- First check
- Metal support in the build and selected model
NVIDIA GPU PC
- Runtime
- NeMo-Speech.cpp · CUDA / NeMo Python
- First check
- Driver/runtime versions and memory with ASR
PC without a GPU
- Runtime
- NeMo-Speech.cpp · CPU
- First check
- Time a short recording first
Mac/iPhone app
- Runtime
- Argmax Pro SDK 3
- First check
- SDK terms and app integration
Select the eight-speaker model explicitly
After installing NeMo-Speech.cpp for your operating system, open a fresh terminal. The first two commands inspect the environment and model catalog; pull fetches the weights in advance. Defaults can differ between releases, so the example explicitly selects the Nemotron 3 alias. If that name is missing from the catalog, check your installed version.
Use a short conversation recording you are authorized to process as meeting.wav. diarize returns speaker intervals; transcribe with --diar-model adds attribution to ASR output. Running the stages separately helps distinguish word errors from assignment errors. These commands have been checked against the documented CLI and model catalog, not timed on every device.
nemo-speech doctor
nemo-speech model list
nemo-speech pull nemotron-3-diarization
nemo-speech diarize meeting.wav --model nemotron-3-diarization
nemo-speech transcribe meeting.wav --model nemotron-3.5 --diar-model nemotron-3-diarization --json0.32 and 30.4 seconds are not completion times
A streaming model waits for some incoming audio to interpret the surrounding context. The published 0.32, 0.64, 1.04 and 30.4 seconds describe that input buffer. They do not mean that an hour-long recording finishes in 30.4 seconds or that every device displays captions after 0.32 seconds. Compute, ASR and rendering add further time.
For a meeting that has already been recorded, immediate feedback may not matter. Start with a longer-context setting and reduce delay only if live display is actually needed. Do not copy configuration names blindly between NeMo Python and C++; use your runtime's presets and help output.
| Setting | Input buffer | When to consider it |
|---|---|---|
| Offline style | 30.4 s | Start with a recorded file |
| Low latency | 1.04 s | A baseline for live testing |
| Very low latency | 0.64 s | When faster updates matter |
| Lowest recommended latency | 0.32 s | Check total latency and accuracy |
Recommended NeMo model input-buffer settings
Offline style
- Input buffer
- 30.4 s
- When to consider it
- Start with a recorded file
Low latency
- Input buffer
- 1.04 s
- When to consider it
- A baseline for live testing
Very low latency
- Input buffer
- 0.64 s
- When to consider it
- When faster updates matter
Lowest recommended latency
- Input buffer
- 0.32 s
- When to consider it
- Check total latency and accuracy
What the published scores do and do not tell you
The launch article reports 14.72% DER in an initial VoiceArena evaluation of 139 English conversations totaling about 22 hours, scoring overlaps with no boundary collar. DER combines missed speech, false detections and speaker confusion; it is not a word-error score.
Calling this “85.28% transcription accuracy” would be wrong, as would treating it as the error rate for a Korean meeting.
The reported 15,113× throughput9 is striking, but it uses an RTX PRO 5000 with BF1610, batch 32 and torch.compile. It is not single-file latency on a personal computer or an ASR-inclusive result. We therefore have not applied it to the site's Mac mini or RTX 4090 simulations. A useful device comparison starts with matching audio, runtime and batch size11.

Make the final review part of the workflow
Start with two to five minutes and manually note the speaker turns. Compare the transcript with the diarization around first appearances, interruptions and returning speakers. Replay passages that assign names or responsibilities, and do not turn an unresolved overlap into a definite statement by one person.
Use the same order when choosing hardware: check whether the models load, whether the job finishes faster than playback, and whether there is headroom with ASR running too. A task that only needs speaker labels does not require a large LLM to remain loaded. Keeping only the necessary stages may let your existing computer do the job.
Local execution does not remove the need for recording consent and a retention policy. The model is distributed under OpenMDW 1.1; apps and SDKs have separate terms. Initial downloads or updates may need the internet, so environments that must avoid external transfer should also check file locations and app synchronization settings.
Terminology notes
Speaker diarization — The task of dividing a recording into who-spoke-when segments and labeling them by speaker. It does not identify a speaker’s real-world identity.
Back to the textAutomatic Speech Recognition — Technology that recognizes spoken language in audio and converts it to text. The recognized text represents the utterance, not a reconstruction of the audio.
Back to the textLarge language model — A language model trained on large text datasets to process and generate text. Capabilities and supported inputs vary by model.
Back to the textAttention — A computation that compares positions in an input so a model can select information relevant to its current step. Details and cost depend on the architecture.
Back to the textRuntime — Software that loads model files and runs their computations. Supported formats, hardware, and optimizations vary by runtime.
Back to the textCPU — The central processor that executes general-purpose program instructions. AI workloads may divide work between it and other processors such as GPUs.
Back to the textCUDA — A software platform for general-purpose computing on NVIDIA GPUs. Programs built for CUDA are not guaranteed to run unchanged on other GPUs.
Back to the textCLI — Short for Command-Line Interface: operating a program by entering commands in a terminal.
Back to the textThroughput — The amount of work processed or generated over time. Comparisons need the unit, such as tokens per second or requests per second.
Back to the textBF16 — A 16-bit floating-point format for storing and computing model values. Support depends on the hardware and runtime.
Back to the textBatch size — The number of inputs or requests processed together in one batch. Increasing it can affect both throughput and memory requirements.
Back to the text