Local speech recognition & synthesis

Nemotron 3.5 Transcribe: transcribe an hour-long meeting in one pass

A 30B-A4B speech LLM that attaches speakers and timestamps

Nemotron 3.5 Transcribe is a speech LLM1 NVIDIA released on October 28. It covers 40 languages and takes an hour of audio in a 65,536-token window. One pass yields speaker tags and word timestamps, and Korean is reported at 2.78% FLEURS CER. BF162 weighs 67.5 GB, so a 24 GB GPU3 needs the 19.68 GB 4-bit file.

Requirements and key details
  • Feed it an hour of audio once and get speaker tags plus word timestamps.
  • Korean is reported at 2.78% FLEURS CER.
  • BF16 is 67.5 GB; a 24 GB GPU uses the 19.68 GB 4-bit file.
  • It is offline: you hand over a file and wait.

What goes in and what comes out?

Nemotron 3.5 Transcribe glues a speech encoder and a speaker encoder onto Nemotron 3.5 Lightning 30B-A3B. It activates 4.3B parameters, takes audio and text, and returns a transcript.

The window is 65,536 tokens4 and a recording can run an hour, so meetings and calls go in whole and sentences do not break at the cut.

Instructions pick the style: verbatim, readable with fillers removed, contextual with an entity list, speaker-tagged, or translated into another language, all from one model.

A wooden meeting table with a central microphone surrounded by four empty chairs
Hand the whole hour over in one pass and sentences stop breaking in the middle.

How it differs from the live 0.6B

The similarly named Nemotron 3.5 ASR5 Streaming 0.6B transcribes as people speak in front of a microphone. Transcribe waits for a file, so the two cover different moments.

If you need captions during the meeting, use the streaming model; this one is not the pick there. Transcribe fits the cleaning up afterwards.

Running both is reasonable: stream captions during the call, then redo the file with Transcribe for speakers and timing.

Same family name, different job
AspectStreaming 0.6BTranscribe 30B-A4B
Parameters0.6B30B-A4B, 4.3B active
ContextShort chunks65,536 tokens, one hour
Speaker diarizationNot on its ownSpeaker tags by instruction
Koreanko-KR localeFLEURS CER 2.78%
RuntimeNeMo-Speech.cppvLLM, Transformers, GGUF

Start with the memory math

BF16 weights are 67.5 GB, so the card has to be in the 80 GB class, which is why the official example assumes one H100.

A 24 GB GPU or a Mac uses a 4-bit GGUF6: a 19.68 GB decoder plus a 1.67 GB encoder, about 21.4 GB in all. A 16 GB card drops to the 13.57 GB file, which peaked at 15.6 GiB of GPU memory.

Every decoder needs the encoder file, and the decoder looks it up by name, so leave that file name alone.

Files and the hardware they fit
FileSizeFits
AD-IQ4_NL19.68GB24 GB GPU and Mac default
AD-IQ4_NL_L22.55GB32 GB with headroom
AD-Q2_0_L15.55GB24 GB Mac
AD-Q2_0_M13.57GB16GB GPU
AD-NVFP419.68GBRTX 50, DGX Spark
Q8_035.00GB48 GB and up
A single data-center accelerator card sits on a workbench beside a magnifier and notebook.
BF16 runs 67.5 GB, so a 24 GB card drops to 4-bit and pays for it in some languages.

Run it with NeMo-Speech.cpp

You need CMake 3.26 and SentencePiece 0.2.0 or newer; build with the cuda-server preset on NVIDIA and metal-server on Apple silicon.

Build and transcribe
git clone https://github.com/NVIDIA/NeMo-Speech.cpp && cd NeMo-Speech.cpp
git submodule update --init --depth 1 llama.cpp third_party/cpp-httplib

# NVIDIA
scripts/configure.sh cuda-server && cmake --build --preset cuda-server
# Apple silicon
scripts/configure.sh metal-server && cmake --build --preset metal-server

hf download AtomicChat/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B-GGUF --local-dir models \
  --include "*Encoder-F16.gguf" --include "*AD-IQ4_NL.gguf"

build/cuda-server/bin/nemo-speech transcribe meeting.wav --json \
  --model models/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B-AD-IQ4_NL.gguf

The JSON carries a timestamp per word, and --format srt writes subtitles straight out.

On a Mac use build/metal-server/bin/nemo-speech; only the binary path changes, not the options.

Pull speakers and timing

For speaker tags, put a line such as Put speaker tags on the transcription. into the instruction, and on the Transformers path pass that prompt7 to apply_transcription_request.

Word timing comes from return_word_timestamp_logits and align_word_timestamps, which put a start and end on each span together with the speaker.

Speaker labels separate voices inside one recording; they do not tell you who the person actually is.

A laptop with three colored audio tracks beside matching notebooks
Speaker labels separate voices, not identities; naming them is still your job.

How to read the numbers

On the English Open ASR Leaderboard the nine-set mean WER is 4.71 percent, and the multilingual mean is 4.62 percent.

On meeting audio with overlapping speech the mean cpWER is 15.80, below the 16.83 of the next published combination, DiCoW v3.3 with DiariZen.

The Korean figure of 2.78 percent is the original BF16 model. No published table covers the Korean drop at 4 bits, so check it against your own recording.

The comparison published on the model card
MeasureResultNext published
Meeting cpWER (AMI and others)15.80DiCoW v3.3+DiariZen 16.83
Preference-ASR WER, default7.56Canary-Qwen 8.16
Preference-ASR WER, instructed6.16Canary-Qwen 8.36
English Open ASR mean WER4.71—
Multilingual Open ASR mean WER4.62—
FLEURS Korean CER2.78—

Where it falls short

It does not stream. The card calls it an offline model and says plainly that internal chunking is not streaming.

The 13.57 GB file for 16 GB cards costs 1.5 points of Chinese CER, and other languages can take a hit as you shrink further.

Official support covers Linux and Windows; on a Mac only the GGUF and Metal8 route runs. The licence is OpenMDW-1.1, so read the commercial terms yourself.

Terminology notes

  1. Large language model — A model trained on large text datasets to learn language patterns and process or generate text in context.

    Back to the text
  2. BF16 — A 16-bit floating-point format for model values. Its exponent has the same width as FP32, giving it a similarly wide value range.

    Back to the text
  3. GPU — A processor designed to handle many calculations in parallel. It performs model computations during AI inference.

    Back to the text
  4. Token — A unit into which a model divides input or output for processing.

    Back to the text
  5. Automatic Speech Recognition — Technology that recognizes spoken language in audio and converts it to text.

    Back to the text
  6. GGUF — A file format for model data, widely used by llama.cpp-based tools.

    Back to the text
  7. Prompt — The input text sent to a model. For generative models it describes the desired result and strongly shapes the output.

    Back to the text
  8. Metal — Apple’s low-level technology for graphics and parallel GPU computation.

    Back to the text

Frequently asked questions

What should you check first in this article?
Nemotron 3.5 Transcribe is a speech LLM NVIDIA released on October 28. It covers 40 languages and takes an hour of audio in a 65,536-token window. One pass yields speaker tags and word timestamps, and Korean is reported at 2.78% FLEURS CER. BF16 weighs 67.5 GB, so a 24 GB GPU needs the 19.68 GB 4-bit file.
How much memory does it need?
BF16 weights are 67.5 GB, so the card has to be in the 80 GB class, which is why the official example assumes one H100.
When is it better not to choose this?
If you need captions during the meeting, use the streaming model; this one is not the pick there. Transcribe fits the cleaning up afterwards.
Where can you check the conditions and sources?
Official support covers Linux and Windows; on a Mac only the GGUF and Metal route runs. The licence is OpenMDW-1.1, so read the commercial terms yourself.