Getting Started with RIVA ASR Plugin Pack#
1. What is NVIGI RIVA ASR?#
The NVIDIA In-Game Inferencing (NVIGI) RIVA ASR Plugin Pack provides automatic speech recognition (ASR) capabilities for PC applications and games. Built on the NVIGI plugin architecture, it enables seamless integration of real-time and offline speech-to-text functionality with support for multiple inference backends (CPU, DirectML, TensorRT-RTX).
1.1 Key Features#
Streaming & Offline Recognition: Real-time streaming ASR with partial results, or batch offline transcription
Multi-backend Support: Run on CPU (ONNX Runtime), DirectML (GPU), or TensorRT-RTX (NVIDIA RTX GPUs)
Advanced Decoding: Greedy or beam search with KenLM language model support
Automatic Punctuation: Optional BERT-based punctuation and capitalization
Word Boosting: Custom vocabulary emphasis for domain-specific terms
Silence Detection: Automatic speech/pause detection in streaming mode
Multilingual Support: Speech recognition in 8 languages – English, French, German, Italian, Spanish, Korean, Japanese, and Mandarin Chinese
Production-Ready Models: Pre-configured Conformer-CTC models per language and English Parakeet-0.6B
1.2 Architecture#
The NVIGI SDK uses a plugin architecture where ASR functionality is provided through the nvigi.plugin.asr.riva-ort plugin. This plugin:
Implements the standard NVIGI plugin API for easy integration
Supports both synchronous and asynchronous inference
Can be swapped with other ASR plugins with minimal code changes
Integrates with D3D12/CUDA for concurrent graphics and AI workloads
2. Quick Start Guide#
2.1 Prerequisites#
Before getting started, ensure you have:
Hardware: NVIDIA RTX 20x0 series or newer (RTX 30x0/40x0 recommended). ASR VRAM usage ranges from 500 MB to 1.6 GB depending on the model, parameters, and graphics card.
OS: Windows 10 20H1 (build 19041) or newer
Driver: NVIDIA graphics driver r555.85 or newer
Development (for rebuilding samples): Visual Studio 2019/2022 with Windows SDK 10.0.19041+
2.2 Run Your First ASR Sample (Command-Line)#
The fastest way to experience ASR is with the pre-built command-line sample:
cd bin\x64
.\nvigi.asr.sample.exe -m ..\..\data\nvigi.models -b gpu
This will:
Initialize the ASR plugin with the Conformer-CTC model
Capture audio from your default microphone (when no
-woption is provided)Display real-time transcriptions as you speak
Alternative: Test with a WAV file in offline mode (recommended for better accuracy):
.\nvigi.asr.sample.exe -m ..\..\data\nvigi.models -b gpu -w ..\..\data\nvigi.test\nvigi.asr\jfk.wav --mode offline
Streaming vs. Offline Mode#
The sample supports two processing modes:
Offline mode (
--mode offline): Recommended for most use cases. More accurate and faster. Transcription is available after recording completes. Ideal for voice commands, push-to-talk, and batch processing.Streaming mode (
--mode streaming, default): Use only when real-time transcription during recording is required (e.g., live captioning, seeing text while still speaking).
For detailed usage and options, see nvigi.asr.sample documentation.
2.3 Try the 3D Interactive Sample#
Experience ASR in a 3D application with GUI:
cd bin\x64
.\nvigi.3d.exe
Use the UI to enable microphone input
Speak and see transcriptions appear in real-time
Explore different ASR settings and backends
For detailed 3D sample usage, see 3D Sample documentation.
2.4 Explore the Models#
The pack includes production-ready ASR models:
English Models:
Model |
Language |
GUID |
|---|---|---|
Conformer-CTC |
English (en-US) |
|
Parakeet-0.6B |
English (en-US) |
|
Multilingual Models (Conformer-CTC):
Language |
GUID |
|---|---|
French (fr-FR) |
|
German (de-DE) |
|
Italian (it-IT) |
|
Spanish (es-ES) |
|
Korean (ko-KR) |
|
Japanese (ja-JP) |
|
Mandarin (zh-CN) |
|
All models include: acoustic model, preprocessing, and KenLM language model. Auto-punctuation is available for English models.
Note
Only the English Conformer-CTC model is bundled with the pack. Parakeet-0.6B and all multilingual models must be downloaded separately.
To download all available models: download_data.bat
To download specific models only: download_data.bat parakeet french mandarin
Available model names: parakeet, french, german, italian, spanish, korean, japanese, mandarin
Models are located under data/nvigi.models/nvigi.plugin.asr.riva-ort/{GUID}/. To use a specific language, provide the corresponding GUID as the modelGUID when creating the ASR instance.
For full model details, see ASR Models.
2.5 Rebuild Samples from Source (Optional)#
To modify samples or debug integration:
Open a VS2022 Developer Command Prompt
Navigate to the pack root directory
Run
.\setup.batto generate build filesOpen
_project/vs2022/nvigi.rivaASR.slnin Visual Studio 2022Build the desired configuration (Debug/Release)
Run
.\copy_sdk_binaries.bat <config>to deploy binaries
For detailed rebuild instructions, see Rebuilding Samples.
2.6 Integrate into Your Application#
Once familiar with the samples, integrating ASR into your own application follows a straightforward five-step pattern. Each step is covered in detail with code examples in the Programming Guide.
Integration Overview#
Include headers and load the NVIGI core library – Add
#include <nvigi.h>and#include "nvigi_asr_riva.h"to your project. At runtime, loadnvigi.core.framework.dlland retrieve the API function pointers (nvigiInit,nvigiLoadInterface, etc.). See Initialize NVIGI.Load the ASR plugin interface – Choose the CPU or GPU plugin and call
nvigiLoadInterfaceto get anIAutoSpeechRecognitionpointer. See Load the ASR Interface.Create an ASR instance with your configuration – Set the model GUID (language), backend preference, streaming vs. offline mode, and optional features like auto punctuation or word boosting. Then call
createInstance. See Create an ASR Instance.Feed audio and receive transcriptions – Provide 16kHz 16-bit mono PCM audio via data slots. For offline mode, call
evaluate()with the complete audio. For streaming mode, send START/DATA/STOP signals viaevaluateAsync()and receive results through a callback. See Run Inference and Streaming Mode.Clean up – Destroy the instance, unload the interface, and shut down NVIGI. See Cleanup.
Where to Start in the Code#
The two sample implementations serve as integration templates:
source/samples/nvigi.asr.sample/sample_asr.cpp– Minimal command-line integration showing the full lifecycle (init, create, stream/offline, cleanup) without any graphics dependencies. Start here for the simplest integration path.source/samples/nvigi.3d/src/nvigi/NVIGIContext.cpp– Real-world integration in a D3D12/Vulkan 3D application with CIG scheduling, showing how ASR fits alongside a rendering loop.
3. What’s Included in This Pack#
The RIVA ASR Plugin Pack provides everything needed to integrate automatic speech recognition into your applications:
3.1 Pre-Built Components#
ASR Plugin:
nvigi.plugin.asr.riva-ort.dll- Production-ready speech recognition pluginNVIGI Core: Runtime libraries for the NVIGI plugin framework
ASR Models: Conformer-CTC models for 8 languages (English, French, German, Italian, Spanish, Korean, Japanese, Mandarin) and Parakeet-0.6B for English
Sample Applications: Pre-built executables demonstrating ASR integration
Headers & APIs: Complete SDK headers for plugin integration
3.2 Included Samples#
The pack includes two samples with full source code:
nvigi.asr.sample - Command-line ASR demo
Supports both streaming (real-time) and offline (batch) modes
Microphone input or WAV file processing
Configurable decoding strategies and parameters
Located in:
source/samples/nvigi.asr.sample/
nvigi.3d - 3D interactive sample with GUI
Voice-controlled 3D application
Visual transcription display
Real-world integration example
Located in:
source/samples/nvigi.3d/
All samples are pre-built in bin/x64/ and ready to run immediately.
4. Known Issues and Important Notes#
4.1 Release Notes#
General#
On some system configurations, the 3D sample may crash on first model load. If this occurs, reboot and rerun the sample.
Sample applications require the NVIGI core DLLs to be present in the
bin/x64/directory or accessible via system PATH.
ASR Plugin Specific#
DirectML Backend: First inference may have higher latency as DirectML compiles shaders. Subsequent inferences will be faster.
TensorRT-RTX Backend: First time the backend is run on a machine, it requires approximately 30 seconds to build the engine. The engine is then cached locally and reused for subsequent runs. The engine will need to be rebuilt only if the TensorRT-RTX version is updated.
Streaming Mode: Very short audio chunks (<100ms) may result in no output. Recommended chunk size:
Conformer models: 380ms (default) - efficient with less context
Parakeet models: 900ms - needs more context for optimal accuracy
Silence Detection: Default parameters work well for most scenarios, but may need tuning for specific audio conditions (e.g., noisy environments).
Punctuation Model: Optional punctuation adds ~10-15% overhead. Disable if not needed via
ASRRivaORTCreationParameters::enableAutoPunctuation = false.
Building from Source#
Plugin DLLs (
nvigi.plugin.asr.riva-ort.gpu.dllandnvigi.plugin.asr.riva-ort.cpu.dll) are pre-built and cannot be rebuilt from this pack.Sample applications can be rebuilt from source using the provided Visual Studio solution.
After building, run
.\copy_sdk_binaries.bat <config>to deploy binaries tobin/x64/.
Performance Considerations#
CPU Backend: Slower than GPU but no VRAM usage. Suitable for low-end systems or when GPU is busy with graphics.
DirectML Backend: Good balance of performance and compatibility. Works on any DirectX 12 capable GPU.
TensorRT-RTX Backend: Best performance on NVIDIA RTX GPUs. Requires CUDA and TensorRT installation.
4.2 Getting Help#
For issues, questions, or feedback:
Review the Programming Guide for detailed API documentation
Check Samples Documentation for usage examples and troubleshooting
See Developer Pack Overview for pack contents and structure
5. Next Steps#
Now that you’re familiar with the basics:
Explore the Samples - Run and modify the included samples to understand ASR integration patterns
Read the Programming Guide - Deep dive into the RIVA ASR API
Experiment with Parameters - Try different decoding strategies, backends, and streaming parameters
Integrate into Your App - Use the samples as templates for your own application integration
For the best development experience, start with the 3D sample to see ASR in a realistic application context, then explore the command-line ASR sample for detailed parameter tuning and integration patterns.