A lightweight native C++ runtime for the NVIDIA Nemotron Speech model family, with broad hardware support.
|
|
|
|
NeMo-Speech.cpp is NVIDIA's official solution for local speech inference, providing day-0 support for the latest models from
, with native inference powered by
.
Models and applications
ApplicationSupported modelsSpeech recognition
Nemotron 3.5 ASR Streaming 0.6B
,
Nemotron Speech Streaming 0.6B
,
, and
Speaker diarization
Streaming Sortformer 4-speaker v2
, standalone or combined with ASRText and speech translation
, with composed ASR-to-NMT-to-TTS speech translationSpeech synthesis
with
Full-duplex voicechat
, including realtime audio, transcripts, and tool callingSpeech processing
, punctuation and capitalization, endpointing, text normalization, and subtitlesInstallation
Install the nemo-speech CLI for the detected platform and backend:
On Linux or macOS, run:
curl -fsSL https://github.com/NVIDIA/NeMo-Speech.cpp/raw/main/scripts/install.sh | shOpen a new shell after installation so the updated user PATH takes effect.
On Windows, run from PowerShell:
irm https://github.com/NVIDIA/NeMo-Speech.cpp/raw/main/scripts/install.ps1 | iexOpen a new PowerShell window after installation so the updated user PATH takes effect.
The installer prefers a verified native release and falls back to a source build when an artifact is unavailable. A source build requires Git, CMake 3.26 or newer, Ninja, a C++17 compiler, SentencePiece development files, and the toolchain required by the selected backend, if any. See
for platform-specific prerequisites and options.
Quick start
Transcribe a local WAV file. On first use, the CLI downloads the pinned default Nemotron 3.5 GGUF from Hugging Face and verifies its size and SHA-256:
nemo-speech transcribe /path/to/audio.wavSource checkouts can use test_files/asr/wav/test/jfk.wav as a smoke-test input.
The same command can transcribe the default microphone on builds that include live capture:
nemo-speech transcribe --liveRun nemo-speech model list to see defaults, short names, and which command uses each model. For example, nemo-speech pull nemotron-en downloads the English-only model ahead of time, and --model nemotron-en selects it. Local GGUF paths continue to work without downloading anything. The CLI selects an available backend and handles common mono or stereo PCM WAV sample rates automatically. See the
and
for custom checkpoints.
Command line
The CLI is the primary interface. Run nemo-speech --help to see the capabilities included in your build. The
covers model selection, GPU controls, directory transcription, subtitles, diarization, translation, synthesis, structured output, and benchmarking. The
covers building and serving the realtime pipeline.
Local server and playground
Start the same runtime as a local HTTP service and open the playground:
nemo-speech serve \ --asr-model nemotron-3.5 \ --openThe server binds to
by default. Its transcription and speech routes expose documented OpenAI-compatible subsets, alongside realtime WebSocket transcription and realtime VoiceChat when its model is loaded. A separately built riva_server binary provides the ASR, TTS, and translation gRPC interfaces. See the
when you are ready to integrate either frontend.
Native SDK
Release archives include stable C headers, shared libraries, and an exported CMake package. An installed application can link only the capability it uses:
find_package(NeMoSpeechREQUIREDCOMPONENTSASR) target_link_libraries(my_appPRIVATENeMoSpeech::ASR)See
for in-process C/C++ usage, or
for OpenAI SDK, curl, and Riva-compatible gRPC usage.
Build from source
Requires CMake 3.26 or newer, Ninja, C and C++17 compilers, SentencePiece development files, and the toolchain required by the selected backend, if any. For a CUDA ASR and TTS server with the playground:
git submodule update --init ggml llama.cpp third_party/cpp-httplib scripts/configure.sh cuda-server cmake --build --preset cuda-serverThe configuration helper validates required submodules and applies the pinned ggml patch series for CUDA builds. CPU, Metal, Vulkan, server, component, Windows, and container instructions are in
.
Documentation
Start hereWhat it covers
Native releases, Windows, upgrades, and manual verification
Transcription, subtitles, directories, diarization, NMT, TTS, and tooling
Convert NeMo and Hugging Face checkpoints to runtime GGUF files
Convert, serve, and exercise the streaming S2S pipeline
HTTP playground/realtime serving and the separate Riva-compatible gRPC server
Every endpoint's request fields, responses, and the realtime protocol
CMake components, C ABI lifetimes, threading, and examples
OpenAI SDKs, curl, and Riva gRPC clients
doctor output and common runtime failures
Presets, optional components, dependencies, containers, and artifacts
ASR, TTS, NMT, configuration, and developer referencesLicense
NVIDIA-authored code is released under the
, with the project copyright notice in
. Third-party components retain their respective terms; see
. Release archives also include these files under share/licenses/nemo-speech/.
Contributing
External contributions are welcome. See
for the contribution terms and Developer Certificate of Origin sign-off process.