NeMo-Speech.cpp/README.md at main · NVIDIA/NeMo-Speech.cpp

GitHub

A lightweight native C++ runtime for the NVIDIA Nemotron Speech model family, with broad hardware support.

Models

|

Installation

|

Quick Start

|

Documentation

|

API Reference

NeMo-Speech.cpp is NVIDIA's official solution for local speech inference, providing day-0 support for the latest models from

NVIDIA NeMo Speech

, with native inference powered by

ggml

.

Models and applications

ApplicationSupported modelsSpeech recognition

Nemotron 3.5 ASR Streaming 0.6B

,

Nemotron Speech Streaming 0.6B

,

Parakeet TDT 0.6B v3

, and

Parakeet CTC 1.1B

Speaker diarization

Streaming Sortformer 4-speaker v2

, standalone or combined with ASRText and speech translation

Riva Translate 4B Instruct v2

, with composed ASR-to-NMT-to-TTS speech translationSpeech synthesis

MagpieTTS Multilingual 357M

with

NeMo NanoCodec

Full-duplex voicechat

Nemotron Labs VoiceChat

, including realtime audio, transcripts, and tool callingSpeech processing

Silero VAD

, 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

Installation

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

CLI model guide

and

model conversion

for custom checkpoints.

Command line

The CLI is the primary interface. Run nemo-speech --help to see the capabilities included in your build. The

CLI guide

covers model selection, GPU controls, directory transcription, subtitles, diarization, translation, synthesis, structured output, and benchmarking. The

VoiceChat guide

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

http://127.0.0.1:8080

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

server guide

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

native SDK integration

for in-process C/C++ usage, or

client integration

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

Build from source

.

Documentation

Start hereWhat it covers

Installation

Native releases, Windows, upgrades, and manual verification

CLI guide

Transcription, subtitles, directories, diarization, NMT, TTS, and tooling

Model conversion

Convert NeMo and Hugging Face checkpoints to runtime GGUF files

Speech-to-speech VoiceChat

Convert, serve, and exercise the streaming S2S pipeline

Servers

HTTP playground/realtime serving and the separate Riva-compatible gRPC server

HTTP API reference

Every endpoint's request fields, responses, and the realtime protocol

Native SDK

CMake components, C ABI lifetimes, threading, and examples

Client integration

OpenAI SDKs, curl, and Riva gRPC clients

Troubleshooting

doctor output and common runtime failures

Build from source

Presets, optional components, dependencies, containers, and artifacts

All documentation

ASR, TTS, NMT, configuration, and developer referencesLicense

NVIDIA-authored code is released under the

Apache License 2.0

, with the project copyright notice in

NOTICE

. Third-party components retain their respective terms; see

Third-Party Notices

. Release archives also include these files under share/licenses/nemo-speech/.

Contributing

External contributions are welcome. See

CONTRIBUTING.md

for the contribution terms and Developer Certificate of Origin sign-off process.