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.

Requirements and key details
  • It labels speaking intervals for up to eight speakers; it does not replace transcription or identify people by name.
  • Mac users can explore Metal through NeMo-Speech.cpp. Keep that path separate from NeMo Python's GPU requirements.
  • The recommended minimum input-buffer latency is 0.32 seconds, not the time to a finished caption.

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.

An oak meeting table with four empty chairs and a central microphone
A meeting record needs attribution as well as words.

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.

A laptop with three colored audio tracks, headphones and a portable recorder
Review overlaps rather than assigning them confidently to one speaker. The screen is a conceptual illustration.

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.

What to check for each execution path
EnvironmentRuntimeFirst check
Apple Silicon MacNeMo-Speech.cpp · MetalMetal support in the build and selected model
NVIDIA GPU PCNeMo-Speech.cpp · CUDA / NeMo PythonDriver/runtime versions and memory with ASR
PC without a GPUNeMo-Speech.cpp · CPUTime a short recording first
Mac/iPhone appArgmax Pro SDK 3SDK 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.

Run after installing NeMo-Speech.cpp
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 --json
The first run may download models. CUDA, Metal or CPU selection depends on the installed build and detected device.

0.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.

Recommended NeMo model input-buffer settings
SettingInput bufferWhen to consider it
Offline style30.4 sStart with a recorded file
Low latency1.04 sA baseline for live testing
Very low latency0.64 sWhen faster updates matter
Lowest recommended latency0.32 sCheck 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.

A desk with a compact computer, audio-track monitor, blank notebook and headphones
Check a short conversation on your existing device before moving to long recordings.

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

  1. Speaker diarizationThe 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 text
  2. Automatic Speech RecognitionTechnology 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 text
  3. Large language modelA language model trained on large text datasets to process and generate text. Capabilities and supported inputs vary by model.

    Back to the text
  4. AttentionA 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 text
  5. RuntimeSoftware that loads model files and runs their computations. Supported formats, hardware, and optimizations vary by runtime.

    Back to the text
  6. CPUThe central processor that executes general-purpose program instructions. AI workloads may divide work between it and other processors such as GPUs.

    Back to the text
  7. CUDAA 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 text
  8. CLIShort for Command-Line Interface: operating a program by entering commands in a terminal.

    Back to the text
  9. ThroughputThe amount of work processed or generated over time. Comparisons need the unit, such as tokens per second or requests per second.

    Back to the text
  10. BF16A 16-bit floating-point format for storing and computing model values. Support depends on the hardware and runtime.

    Back to the text
  11. Batch sizeThe number of inputs or requests processed together in one batch. Increasing it can affect both throughput and memory requirements.

    Back to the text