README.md
| 1 | --- |
| 2 | license: other |
| 3 | license_name: openmdw-1.1 |
| 4 | license_link: https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b |
| 5 | base_model: nvidia/nemotron-3.5-asr-streaming-0.6b |
| 6 | base_model_relation: quantized |
| 7 | library_name: transcribe.cpp |
| 8 | pipeline_tag: automatic-speech-recognition |
| 9 | language: |
| 10 | - en |
| 11 | - es |
| 12 | - fr |
| 13 | - it |
| 14 | - pt |
| 15 | - nl |
| 16 | - de |
| 17 | - tr |
| 18 | - ru |
| 19 | - ar |
| 20 | - hi |
| 21 | - ja |
| 22 | - ko |
| 23 | - vi |
| 24 | - uk |
| 25 | - pl |
| 26 | - sv |
| 27 | - cs |
| 28 | - nb |
| 29 | - da |
| 30 | - bg |
| 31 | - fi |
| 32 | - hr |
| 33 | - sk |
| 34 | - zh |
| 35 | - hu |
| 36 | - ro |
| 37 | - et |
| 38 | tags: |
| 39 | - gguf |
| 40 | - transcribe.cpp |
| 41 | - asr |
| 42 | - speech-to-text |
| 43 | - parakeet |
| 44 | - conformer |
| 45 | - rnnt |
| 46 | - streaming |
| 47 | - cache-aware |
| 48 | - multilingual |
| 49 | transcribe_cpp: |
| 50 | wer_fleurs_en: |
| 51 | f32: 7.97 |
| 52 | f16: 7.97 |
| 53 | q8_0: 7.88 |
| 54 | q6_k: 8.02 |
| 55 | q5_k_m: 8.15 |
| 56 | q4_k_m: 8.49 |
| 57 | wer_librispeech_test_clean: |
| 58 | f32: 3.04 |
| 59 | f16: 3.03 |
| 60 | q8_0: 3.06 |
| 61 | q6_k: 3.07 |
| 62 | q5_k_m: 3.1 |
| 63 | q4_k_m: 3.28 |
| 64 | rtf_m4_max: |
| 65 | metal: 98 |
| 66 | cpu: 29 |
| 67 | rtf_ryzen_4750u: |
| 68 | vulkan: 14.5 |
| 69 | cpu: 7.5 |
| 70 | streaming: true |
| 71 | translate: false |
| 72 | lang_detect: true |
| 73 | timestamps: token |
| 74 | --- |
| 75 | |
| 76 | # nemotron-3.5-asr-streaming-0.6b: transcribe.cpp GGUF |
| 77 | |
| 78 | GGUF conversions of [nvidia/nemotron-3.5-asr-streaming-0.6b](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b) for use |
| 79 | with [transcribe.cpp](https://github.com/handy-computer/transcribe.cpp). |
| 80 | |
| 81 | Ported from upstream commit |
| 82 | [24b151a](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b/commit/24b151a), |
| 83 | pinned 2026-06-08. |
| 84 | Validated against the NeMo reference at transcribe.cpp commit |
| 85 | [909e94e](https://github.com/handy-computer/transcribe.cpp/tree/909e94e) |
| 86 | on 2026-06-08. |
| 87 | |
| 88 | Multilingual speech-to-text across 32 supported language-locales (the model's tokenizer recognizes 40, but 8 are adaptation-ready and need fine-tuning) with punctuation and capitalization. A 0.6B-parameter cache-aware streaming FastConformer encoder with a prompt-conditioned RNN-T transducer decoder; the target language is selected per call (--language en-US, fr-FR, de-DE, ...) and an auto mode emits a <lang-XX> tag. Ships both the offline path (att_context_size=[56, 13], 1.12s, headline accuracy) and runtime-selectable chunked streaming (--stream-chunk-ms 1120 --stream-att-right {0,3,6,13}). |
| 89 | |
| 90 | |
| 91 | ## Downloads |
| 92 | |
| 93 | | Quantization | Download | Size | WER (FLEURS test en (en-US), offline att_context_size=[56, 13]) | |
| 94 | | --- | --- | ---: | ---: | |
| 95 | | F32 | [nemotron-3.5-asr-streaming-0.6b-F32.gguf](https://huggingface.co/handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf/resolve/main/nemotron-3.5-asr-streaming-0.6b-F32.gguf) | 2.38 GB | 7.97% | |
| 96 | | F16 | [nemotron-3.5-asr-streaming-0.6b-F16.gguf](https://huggingface.co/handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf/resolve/main/nemotron-3.5-asr-streaming-0.6b-F16.gguf) | 1.19 GB | 7.97% | |
| 97 | | Q8_0 | [nemotron-3.5-asr-streaming-0.6b-Q8_0.gguf](https://huggingface.co/handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf/resolve/main/nemotron-3.5-asr-streaming-0.6b-Q8_0.gguf) | 716 MB | 7.88% | |
| 98 | | Q6_K | [nemotron-3.5-asr-streaming-0.6b-Q6_K.gguf](https://huggingface.co/handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf/resolve/main/nemotron-3.5-asr-streaming-0.6b-Q6_K.gguf) | 593 MB | 8.02% | |
| 99 | | Q5_K_M | [nemotron-3.5-asr-streaming-0.6b-Q5_K_M.gguf](https://huggingface.co/handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf/resolve/main/nemotron-3.5-asr-streaming-0.6b-Q5_K_M.gguf) | 534 MB | 8.15% | |
| 100 | | Q4_K_M | [nemotron-3.5-asr-streaming-0.6b-Q4_K_M.gguf](https://huggingface.co/handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf/resolve/main/nemotron-3.5-asr-streaming-0.6b-Q4_K_M.gguf) | 473 MB | 8.49% | |
| 101 | |
| 102 | WER measured on FLEURS test en (647 utterances), greedy RNN-T, --language en-US, whisper-normalizer scoring; the per-quant column is FLEURS en. NeMo reference baseline on the same manifest: 7.99% (NVIDIA self-reports 7.91% en-US). On LibriSpeech test-clean (2620 utterances) the same presets score F32 3.04 / F16 3.03 / Q8_0 3.06 / Q6_K 3.07 / Q5_K_M 3.10 / Q4_K_M 3.28, against a 3.03% NeMo reference. |
| 103 | |
| 104 | |
| 105 | ## Usage |
| 106 | |
| 107 | Build transcribe.cpp from source: |
| 108 | |
| 109 | ```bash |
| 110 | git clone git@github.com:handy-computer/transcribe.cpp.git |
| 111 | cd transcribe.cpp |
| 112 | cmake -B build && cmake --build build |
| 113 | ``` |
| 114 | |
| 115 | Run on a 16 kHz mono WAV: |
| 116 | |
| 117 | ```bash |
| 118 | build/bin/transcribe-cli \ |
| 119 | -m nemotron-3.5-asr-streaming-0.6b-Q8_0.gguf \ |
| 120 | input.wav |
| 121 | ``` |
| 122 | |
| 123 | If your audio isn't already 16 kHz mono WAV, convert it first: |
| 124 | |
| 125 | ```bash |
| 126 | ffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav |
| 127 | ``` |
| 128 | |
| 129 | See the [transcribe.cpp model page](https://github.com/handy-computer/transcribe.cpp/blob/main/docs/models/nemotron-3.5-asr-streaming-0.6b.md) for performance |
| 130 | numbers, numerical validation, and reproduction steps. |
| 131 | |
| 132 | ## License |
| 133 | |
| 134 | Inherited from the base model: **OpenMDW-1.1**. See the |
| 135 | [upstream model card](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b) for full terms. |
| 136 | |
| 137 | --- |
| 138 | |
| 139 | ## Original Model Card |
| 140 | |
| 141 | > The section below is reproduced from |
| 142 | > [nvidia/nemotron-3.5-asr-streaming-0.6b](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b) at commit |
| 143 | > `24b151a` for offline reference. The upstream card is the |
| 144 | > authoritative source. |
| 145 | |
| 146 | # Nemotron 3.5 ASR |
| 147 | |
| 148 | <style> |
| 149 | h1, h2, h3, h4, h5, h6 { |
| 150 | color: #76b900; /* NVIDIA green */ |
| 151 | font-weight: 700; |
| 152 | } |
| 153 | |
| 154 | hr { |
| 155 | border: none; |
| 156 | border-top: 1px solid #e5e7eb; |
| 157 | margin: 2rem 0; |
| 158 | } |
| 159 | |
| 160 | /* Improve list spacing */ |
| 161 | ul, ol { |
| 162 | margin-top: 0.5rem; |
| 163 | margin-bottom: 0.5rem; |
| 164 | } |
| 165 | |
| 166 | /* Badge alignment consistency */ |
| 167 | img { |
| 168 | display: inline; |
| 169 | vertical-align: middle; |
| 170 | } |
| 171 | </style> |
| 172 | |
| 173 | <p align="center"> |
| 174 | <a href="#model-architecture"><img src="https://img.shields.io/badge/Model_Arch-FastConformer--CacheAware--RNNT-lightgrey#model-badge" alt="Model architecture"/></a> |
| 175 | |
| 176 | <a href="#model-architecture"><img src="https://img.shields.io/badge/Params-600M-lightgrey#model-badge" alt="Model size"/></a> |
| 177 | |
| 178 | <a href="#supported-languages"><img src="https://img.shields.io/badge/Language-Multilingual-lightgrey#model-badge" alt="Language"/></a> |
| 179 | </p> |
| 180 | |
| 181 | <p align="center"> |
| 182 | <img src="model_overview.png" alt="Nemotron 3.5 ASR overview: multilingual audio across 40 language-locales is transcribed by a cache-aware FastConformer-RNNT model with language-ID prompting into punctuated text with an automatic language tag" width="900"/> |
| 183 | </p> |
| 184 | |
| 185 | > [!Note] |
| 186 | > This model is the multilingual extension of [nvidia/nemotron-speech-streaming-en-0.6b](https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b), adding language-ID prompt conditioning to support transcription across **40 language-locales** from a single model. |
| 187 | |
| 188 | **Nemotron 3.5 ASR** is a multilingual, streaming Automatic Speech Recognition (ASR) model engineered to deliver high-quality multilingual transcription across both low-latency streaming and high-throughput batch workloads. Developed by NVIDIA, this 600M parameter model transcribes speech into text with native support for punctuation and capitalization, and offers runtime flexibility with configurable chunk sizes, including 80ms, 160ms, 320ms, 560ms, and 1120ms. |
| 189 | |
| 190 | By leveraging a state-of-the-art **Cache-Aware FastConformer-RNNT** architecture, the model eliminates redundant overlapping computations common in traditional "buffered" streaming. This allows it to process only new audio chunks while reusing cached encoder context, significantly improving computational efficiency and minimizing end-to-end delay without sacrificing accuracy. |
| 191 | |
| 192 | It was trained on a massive ASR dataset and is engineered to perform across diverse and challenging acoustic conditions. |
| 193 | |
| 194 | This model is ready for commercial use. |
| 195 | |
| 196 | --- |
| 197 | |
| 198 | ## License/Terms of Use |
| 199 | |
| 200 | Governing Terms: Use of the model is governed by the [OpenMDW-1.1](https://openmdw.ai/license/1-1/) license. |
| 201 | |
| 202 | ## Deployment Geography |
| 203 | |
| 204 | Global |
| 205 | |
| 206 | ## Use Case |
| 207 | |
| 208 | This model is for transcription of multilingual audio. |
| 209 | |
| 210 | ## Release Date |
| 211 | |
| 212 | - Hugging Face [06/04/2026] via https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b |
| 213 | |
| 214 | ## References |
| 215 | |
| 216 | <a id="ref-1"></a>[1] [Stateful Conformer with Cache-based Inference for Streaming Automatic Speech Recognition](https://arxiv.org/abs/2312.17279) |
| 217 | |
| 218 | <a id="ref-2"></a>[2] [Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition](https://arxiv.org/abs/2305.05084) |
| 219 | |
| 220 | <a id="ref-3"></a>[3] [NVIDIA Granary](https://huggingface.co/datasets/nvidia/Granary) |
| 221 | |
| 222 | <a id="ref-4"></a>[4] [NVIDIA NeMo Framework](https://github.com/NVIDIA/NeMo) |
| 223 | |
| 224 | ## Why Choose Nemotron 3.5 ASR? |
| 225 | |
| 226 | - 🌍 **Single Multilingual Model:** Transcribes 40 language-locales from one model through language-ID prompt conditioning, with optional automatic language detection. |
| 227 | - ⚡ **Native Streaming Architecture:** Cache-aware design enables efficient processing of continuous audio streams, designed and optimized for low-latency voice agent applications. |
| 228 | - 💰 **Improved Operational Efficiency:** Delivers superior throughput compared to traditional buffered streaming approaches. This allows for a higher number of parallel streams within the same GPU memory constraints, directly reducing operational costs for production environments. |
| 229 | - 🎛️ **Dynamic Runtime Flexibility:** Choose the optimal operating point on the latency-accuracy Pareto curve at inference time. No re-training is required to adjust for different use-case requirements. |
| 230 | - 📝 **Punctuation & Capitalization:** Built-in support for punctuation and capitalization in output text. |
| 231 | |
| 232 | --- |
| 233 | |
| 234 | ## Supported Languages |
| 235 | |
| 236 | The model supports **40 language-locales** in total, across three tiers: |
| 237 | |
| 238 | - **Transcription-ready (19 locales):** highest-accuracy ASR, ready out of the box. |
| 239 | - **Broad-coverage (13 locales):** production ASR across an additional 13 locales. |
| 240 | - **Adaptation-ready (8 locales):** recognized by the tokenizer; fine-tune on in-domain data to unlock full transcription. |
| 241 | |
| 242 | | Tier | Languages (locales) | |
| 243 | | :--- | :--- | |
| 244 | | **Transcription-ready (19 locales)** | English (en-US, en-GB), Spanish (es-US, es-ES), French (fr-FR, fr-CA), Italian (it-IT), Portuguese (pt-BR, pt-PT), Dutch (nl-NL), German (de-DE), Turkish (tr-TR), Russian (ru-RU), Arabic (ar-AR), Hindi (hi-IN), Japanese (ja-JP), Korean (ko-KR), Vietnamese (vi-VN), Ukrainian (uk-UA) | |
| 245 | | **Broad-coverage (13 locales)** | Polish (pl-PL), Swedish (sv-SE), Czech (cs-CZ), Norwegian Bokmål (nb-NO), Danish (da-DK), Bulgarian (bg-BG), Finnish (fi-FI), Croatian (hr-HR), Slovak (sk-SK), Mandarin (zh-CN), Hungarian (hu-HU), Romanian (ro-RO), Estonian (et-EE) | |
| 246 | | **Adaptation-ready (8 locales)** | Greek (el-GR), Lithuanian (lt-LT), Latvian (lv-LV), Maltese (mt-MT), Slovenian (sl-SI), Hebrew (he-IL), Thai (th-TH), Norwegian Nynorsk (nn-NO) | |
| 247 | |
| 248 | > **Note:** Transcription-ready and broad-coverage locales (**32 total**) produce ASR transcription out of the box; adaptation-ready locales require fine-tuning on in-domain data to enable full transcription. The model supports uppercase and lowercase letters, punctuation, spaces, and apostrophes. |
| 249 | |
| 250 | > **Note:** We would recommend [Nemotron ASR Streaming (English)](https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b) model for English-only transcription use cases. For all other transcription ready locales, we recommend Nemotron 3.5 ASR to leverage its expanded multilingual capabilities. |
| 251 | |
| 252 | > [!Tip] |
| 253 | > **Automatic language detection / language tagging:** When run with `target_lang=auto`, the model detects the spoken language and emits the corresponding **language code/tag** in the output following the terminal punctuation. This lets a single deployment transcribe mixed-language traffic and automatically label each utterance with its detected language — no separate language-ID component required. |
| 254 | |
| 255 | --- |
| 256 | |
| 257 | ## Model Architecture |
| 258 | |
| 259 | **Architecture Type:** FastConformer-CacheAware-RNNT with Prompt |
| 260 | |
| 261 | This model consists of a cache-aware streaming Parakeet (FastConformer) encoder with an RNN-T decoder and language-ID prompt conditioning. It is based on the Cache-Aware [\[1\]](#ref-1) FastConformer [\[2\]](#ref-2) architecture with 24 encoder layers and an RNNT (Recurrent Neural Network Transducer) decoder. The cache-aware streaming design enables efficient processing of audio in chunks while maintaining context from previous frames. Unlike buffered inference, this model maintains caches for all encoder self-attention and convolution layers. This enables reuse of hidden states at every streaming step, where cached activations eliminate redundant computations. As a result, there are no overlapping computations; each processed frame is strictly non-overlapping. This model leverages prompts to guide the transcription process, enabling language-specific transcription from a single ASR model through language ID conditioning. |
| 262 | |
| 263 | <p align="center"> |
| 264 | <img src="model_architecture.png" alt="Nemotron 3.5 ASR architecture: FastConformer encoder and language-ID encoding are concatenated, projected, and fed to the RNNT decoder" width="900"/> |
| 265 | </p> |
| 266 | |
| 267 | The language-ID prompt is fused with the acoustic representation as follows: |
| 268 | |
| 269 | - **FastConformer encoder** processes audio into an acoustic embedding of shape (D=512, T). |
| 270 | - **Language Encoding** expands a 128-dim one-hot language vector across the time axis → (K=128, T), broadcasting the language identity to every frame. |
| 271 | - **Concatenation** along the feature axis → fused tensor (D + K, T). |
| 272 | - **Projection layer** maps the fused features to the RNNT decoder. |
| 273 | |
| 274 | **Network Architecture:** |
| 275 | - Encoder: Cache-Aware FastConformer with 24 layers |
| 276 | - Decoder: RNNT (Recurrent Neural Network Transducer) |
| 277 | - Parameters: 600M |
| 278 | |
| 279 | **This model was developed based on [nvidia/nemotron-speech-streaming-en-0.6b](https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b).** |
| 280 | |
| 281 | --- |
| 282 | |
| 283 | ## Results at a Glance |
| 284 | |
| 285 | ASR performance is measured using Word Error Rate (WER) on the **FLEURS** test sets. Accuracy stays strong across both modes and improves as the chunk size grows, while remaining competitive even at the lowest-latency 80ms setting. Full tables are in [Performance](#performance). |
| 286 | |
| 287 | <p align="center"> |
| 288 | <img src="fleurs_wer_vs_chunk_size.png" alt="FLEURS average WER vs streaming chunk size (LangID vs Auto-detect)" width="900"/> |
| 289 | </p> |
| 290 | |
| 291 | <p align="center"> |
| 292 | <img src="fleurs_langid_vs_auto.png" alt="FLEURS WER by language: LangID vs Auto-detect at 320ms chunk" width="900"/> |
| 293 | </p> |
| 294 | |
| 295 | > **Note:** Japanese and Korean are measured using Character Error Rate (CER) rather than WER, as is standard for these languages. |
| 296 | |
| 297 | --- |
| 298 | |
| 299 | ## Throughput & Efficiency |
| 300 | |
| 301 | Despite being **roughly half the size** (0.6B vs. 1.1B), Nemotron 3.5 ASR serves **far more concurrent streams at far lower latency** than the [Parakeet RNNT 1.1B multilingual model](https://build.nvidia.com/nvidia/parakeet-1_1b-rnnt-multilingual-asr), which runs on buffered streaming. The cache-aware streaming design avoids the redundant recomputation of buffered inference, so a single H100 can sustain dramatically higher concurrency at every chunk size — directly lowering the cost per stream in production. At the lowest-latency 80ms setting, Nemotron sustains **~17× more concurrent streams** (240 vs. 14); at the 1120ms setting it sustains **6× more** (2,400 vs. 400). The latency-vs-concurrency curves tell the same story: Nemotron (solid green) holds low final-token latency well past 1,000 parallel requests, while Parakeet RNNT 1.1B (dashed blue) saturates after only a few hundred. |
| 302 | |
| 303 | <p align="center"> |
| 304 | <img src="throughput_vs_chunk.png" alt="Concurrent streams supported on a single H100: Nemotron ASR streaming vs Parakeet RNNT, across chunk sizes" width="900"/> |
| 305 | </p> |
| 306 | |
| 307 | <p align="center"> |
| 308 | <img src="latency_vs_parallel.png" alt="Median final-token latency vs number of parallel requests on a single H100, Nemotron vs Parakeet RNNT across chunk sizes" width="900"/> |
| 309 | </p> |
| 310 | |
| 311 | > Measured on a single NVIDIA H100. Throughput is the number of real-time streams sustainable in parallel; latency is the median final-token latency at a given level of concurrency. |
| 312 | |
| 313 | --- |
| 314 | |
| 315 | ## Explore more from NVIDIA |
| 316 | |
| 317 | For documentation, deployment guides, enterprise-ready APIs, and the latest open models—including Nemotron and other cutting-edge speech, translation, and generative AI—visit the NVIDIA Developer Portal at [developer.nvidia.com](https://developer.nvidia.com/). |
| 318 | Join the community to access tools, support, and resources to accelerate your development with NVIDIA's NeMo, Speech NIM, and foundation models. |
| 319 | |
| 320 | - What is [Nemotron](https://www.nvidia.com/en-us/ai-data-science/foundation-models/nemotron/)? |
| 321 | - NVIDIA Developer [Nemotron](https://developer.nvidia.com/nemotron) |
| 322 | - [NVIDIA Speech NIM](https://docs.nvidia.com/nim/speech/latest/about/index.html) |
| 323 | - [NeMo Documentation](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/asr/models.html) |
| 324 | |
| 325 | Also, check out the following NVIDIA speech models: |
| 326 | - Nemotron ASR Streaming (English) (Nemotron 3 ASR) - https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b |
| 327 | - Multitalker Parakeet Streaming - https://huggingface.co/nvidia/multitalker-parakeet-streaming-0.6b-v1 |
| 328 | - Parakeet Realtime EOU - https://huggingface.co/nvidia/parakeet_realtime_eou_120m-v1 |
| 329 | |
| 330 | --- |
| 331 | |
| 332 | ## NVIDIA NeMo |
| 333 | |
| 334 | To train, fine-tune or perform inference with this model, you will need to install [NVIDIA NeMo](https://github.com/NVIDIA/NeMo) [\[4\]](#ref-4). We recommend you install it after you've installed Cython and latest PyTorch version. |
| 335 | |
| 336 | ```bash |
| 337 | apt-get update && apt-get install -y libsndfile1 ffmpeg |
| 338 | pip install Cython packaging |
| 339 | pip install git+https://github.com/NVIDIA/NeMo.git@main#egg=nemo_toolkit[asr] |
| 340 | ``` |
| 341 | |
| 342 | ## How to Use this Model |
| 343 | |
| 344 | The model is available for use in the NeMo Framework, and can be used as a pre-trained checkpoint for inference or for fine-tuning on another dataset. |
| 345 | |
| 346 | ### Loading the Model |
| 347 | |
| 348 | ```python |
| 349 | import nemo.collections.asr as nemo_asr |
| 350 | asr_model = nemo_asr.models.ASRModel.from_pretrained(model_name="nvidia/nemotron-3.5-asr-streaming-0.6b") |
| 351 | ``` |
| 352 | |
| 353 | ### Streaming Inference |
| 354 | |
| 355 | You can use the cache-aware streaming inference script from NeMo - [NeMo/examples/asr/asr_cache_aware_streaming/speech_to_text_cache_aware_streaming_infer.py](https://github.com/NVIDIA-NeMo/NeMo/blob/main/examples/asr/asr_cache_aware_streaming/speech_to_text_cache_aware_streaming_infer.py) |
| 356 | |
| 357 | This is a prompt-conditioned multilingual model: pass the target language with `target_lang` (e.g. `en-US`, `es-ES`, `de-DE`), or use `target_lang=auto` for automatic language detection. |
| 358 | |
| 359 | ```bash |
| 360 | cd NeMo |
| 361 | python examples/asr/asr_cache_aware_streaming/speech_to_text_cache_aware_streaming_infer.py \ |
| 362 | model_path=<model_path> \ |
| 363 | dataset_manifest=<dataset_manifest> \ |
| 364 | batch_size=<batch_size> \ |
| 365 | target_lang=<lang_id> \ #language key (e.g. en-US) or "auto" for automatic language detection |
| 366 | att_context_size="[56,13]" \ #set the second value to the desired right context from {0,1,3,6,13} |
| 367 | strip_lang_tags=true \ #true: remove the detected language tag from the text; false: keep it in the output |
| 368 | output_path=<output_folder> |
| 369 | ``` |
| 370 | |
| 371 | **`strip_lang_tags`** controls how the detected language tag is handled in the output. The model appends a language tag (e.g. `<en-US>`) after the transcript's terminal punctuation: |
| 372 | - `strip_lang_tags=false` (keep): the tag is left in the output, so you can read the detected language directly from each utterance — useful for mixed-language traffic and language labeling. |
| 373 | - `strip_lang_tags=true` (remove): the tag is stripped, leaving only the clean transcript text — useful when you only need the spoken words. |
| 374 | |
| 375 | ### Setting up Streaming Configuration |
| 376 | |
| 377 | Latency is defined by the `att_context_size` param, where att_context_size = `{num_frames_left_context, num_frame_right_context}`, all measured in **80ms frames**: |
| 378 | |
| 379 | * [56, 0]: Chunk size = 1 (1 × 80ms = 0.08s) |
| 380 | * [56, 1]: Chunk size = 2 (2 × 80ms = 0.16s) |
| 381 | * [56, 3]: Chunk size = 4 (4 × 80ms = 0.32s) |
| 382 | * [56, 6]: Chunk size = 7 (7 × 80ms = 0.56s) |
| 383 | * [56, 13]: Chunk size = 14 (14 × 80ms = 1.12s) |
| 384 | |
| 385 | Here, chunk size = current frame + right context; each chunk is processed in non-overlapping fashion. |
| 386 | |
| 387 | ### Input(s): <br> |
| 388 | |
| 389 | **Input Type(s):** Audio, Lang ID <br> |
| 390 | |
| 391 | **Input Format(s):** wav, string <br> |
| 392 | |
| 393 | **Input Parameters:** One-Dimensional (1D) for audio and One-Dimensional (1D) for Lang ID <br> |
| 394 | |
| 395 | **Other Properties Related to Input:** Maximum Length in seconds specific to GPU Memory, No Pre-Processing Needed, Mono channel is required. |
| 396 | |
| 397 | By leveraging NVIDIA’s hardware (e.g. GPU cores) and software frameworks (e.g., CUDA libraries), the model achieves faster training and inference times compared to CPU-only solutions. <br> |
| 398 | |
| 399 | ### Output |
| 400 | |
| 401 | **Output Type(s):** Text String in Input Language <br> |
| 402 | |
| 403 | **Output Format(s):** String <br> |
| 404 | |
| 405 | **Output Parameters:** One-Dimensional (1D) <br> |
| 406 | |
| 407 | **Other Properties Related to Output:** No Maximum Character Length, transcribe punctuation and capitalization. |
| 408 | |
| 409 | By leveraging NVIDIA’s hardware (e.g. GPU cores) and software frameworks (e.g., CUDA libraries), the model achieves faster training and inference times compared to CPU-only solutions. <br> |
| 410 | |
| 411 | --- |
| 412 | |
| 413 | ## Software Integration |
| 414 | |
| 415 | **Runtime Engine:** NeMo 26.06 |
| 416 | |
| 417 | **Supported Hardware Microarchitecture Compatibility:** |
| 418 | - NVIDIA Ampere |
| 419 | - NVIDIA Blackwell |
| 420 | - NVIDIA Hopper |
| 421 | - NVIDIA Jetson |
| 422 | - NVIDIA Lovelace |
| 423 | - NVIDIA Turing |
| 424 | - NVIDIA Volta |
| 425 | |
| 426 | **Supported Operating System(s):** |
| 427 | * Linux <br> |
| 428 | * Linux 4 Tegra <br> |
| 429 | |
| 430 | The integration of foundation and fine-tuned models into AI systems requires additional testing using use-case-specific data to ensure safe and effective deployment. Following the V-model methodology, iterative testing and validation at both unit and system levels are essential to mitigate risks, meet technical and functional requirements, and ensure compliance with safety and ethical standards before deployment.<vr> |
| 431 | |
| 432 | |
| 433 | |
| 434 | --- |
| 435 | |
| 436 | |
| 437 | ## Model Version(s): |
| 438 | nemotron-3.5-asr-streaming-0.6b-v1 <br> |
| 439 | |
| 440 | ## Training and Evaluation Datasets: |
| 441 | |
| 442 | ### Training Datasets |
| 443 | |
| 444 | It was trained on speech data across 40 language-locales. The training data is a dynamic blend of public and proprietary internal datasets normalized to have spoken forms in text with punctuation and capitalization, including: |
| 445 | |
| 446 | |
| 447 | - NVIDIA Riva multilingual ASR training set (Proprietary) |
| 448 | - NVIDIA Granary [\[3\]](#ref-3) |
| 449 | - Multilingual LibriSpeech (MLS) |
| 450 | - Mozilla Common Voice |
| 451 | - FLEURS |
| 452 | - VoxPopuli / Europarl-ASR |
| 453 | |
| 454 | ** Data Modality: Audio <br> |
| 455 | |
| 456 | ** Audio Training Data Size: 10,000 to 1 Million Hours <br> |
| 457 | |
| 458 | ** Data Collection Method by dataset <br> |
| 459 | * Human <br> |
| 460 | |
| 461 | ** Labeling Method by dataset <br> |
| 462 | * Human <br> |
| 463 | * Synthetic: Synthetic labels were generated from an ensemble of ASR models ([NVIDIA Canary](https://build.nvidia.com/nvidia/canary-1b-asr), [Parakeet Multilingual 1.1B RNNT](https://build.nvidia.com/nvidia/parakeet-1_1b-rnnt-multilingual-asr), [Parakeet CTC 1.1B](https://build.nvidia.com/nvidia/parakeet-ctc-1_1b-asr), [OpenAI Whisper](https://huggingface.co/openai/whisper-large-v3), and [FunASR](https://github.com/modelscope/FunASR)), with punctuation and capitalization (PnC) generated from [Qwen3-32B](https://huggingface.co/Qwen/Qwen3-32B). |
| 464 | |
| 465 | |
| 466 | |
| 467 | |
| 468 | ### Evaluation Datasets |
| 469 | |
| 470 | The model was evaluated on multilingual ASR benchmarks: |
| 471 | |
| 472 | - FLEURS |
| 473 | - Mozilla Common Voice (MCV) |
| 474 | - Multilingual LibriSpeech (MLS) |
| 475 | - NVIDIA internal multilingual evaluation sets |
| 476 | |
| 477 | ** Data Collection Method by dataset <br> |
| 478 | * Human <br> |
| 479 | |
| 480 | ** Labeling Method by dataset <br> |
| 481 | * Human <br> |
| 482 | |
| 483 | --- |
| 484 | |
| 485 | ## Performance |
| 486 | |
| 487 | ASR performance is measured using the Word Error Rate (WER). The tables below report WER (%) on the **FLEURS** test sets across configurable streaming chunk sizes, in two modes: |
| 488 | - **Language Input (LangID):** the target language is provided to the model. |
| 489 | - **Auto-detect:** the model automatically detects the spoken language. |
| 490 | |
| 491 | > **Note:** Japanese, Korean, and Mandarin are evaluated using Character Error Rate (CER) rather than WER, as is standard for these languages. |
| 492 | > **Note on text normalization:** WER/CER are computed after text normalization that aligns the reference and hypothesis (e.g., casing, punctuation, numerals, and formatting conventions). Normalization is not perfect across all 40 language-locales, and residual mismatches between normalized text can inflate the reported error rates — actual transcription quality may be somewhat better than the numbers suggest. |
| 493 | |
| 494 | ### Transcription-ready (19 locales) |
| 495 | |
| 496 | _Languages are ordered by accuracy (lowest WER first)._ |
| 497 | |
| 498 | <table> |
| 499 | <thead> |
| 500 | <tr><th rowspan="2" align="left">Language</th><th colspan="5" align="center" style="background-color:#76b900;color:#ffffff">Language Input (LangID)</th><th colspan="5" align="center" style="background-color:#6b7280;color:#ffffff;border-left:2px solid #cbd5e1;">Auto-detect</th></tr> |
| 501 | <tr><th align="center" style="background-color:#eef6e0">80ms</th><th align="center" style="background-color:#eef6e0">160ms</th><th align="center" style="background-color:#eef6e0">320ms</th><th align="center" style="background-color:#eef6e0">560ms</th><th align="center" style="background-color:#eef6e0">1.12s</th><th align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">80ms</th><th align="center" style="background-color:#f3f4f6;">160ms</th><th align="center" style="background-color:#f3f4f6;">320ms</th><th align="center" style="background-color:#f3f4f6;">560ms</th><th align="center" style="background-color:#f3f4f6;">1.12s</th></tr> |
| 502 | </thead> |
| 503 | <tbody> |
| 504 | <tr><td align="left">Spanish (es-US, es-ES)</td><td align="center" style="background-color:#eef6e0;">4.87</td><td align="center" style="background-color:#eef6e0;">4.64</td><td align="center" style="background-color:#eef6e0;">4.39</td><td align="center" style="background-color:#eef6e0;">4.26</td><td align="center" style="background-color:#eef6e0;">4.11</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">5.04</td><td align="center" style="background-color:#f3f4f6;">4.82</td><td align="center" style="background-color:#f3f4f6;">4.48</td><td align="center" style="background-color:#f3f4f6;">4.34</td><td align="center" style="background-color:#f3f4f6;">4.13</td></tr> |
| 505 | <tr><td align="left">Italian (it-IT)</td><td align="center" style="background-color:#eef6e0;">5.23</td><td align="center" style="background-color:#eef6e0;">4.85</td><td align="center" style="background-color:#eef6e0;">4.83</td><td align="center" style="background-color:#eef6e0;">4.41</td><td align="center" style="background-color:#eef6e0;">4.25</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">5.28</td><td align="center" style="background-color:#f3f4f6;">4.89</td><td align="center" style="background-color:#f3f4f6;">4.84</td><td align="center" style="background-color:#f3f4f6;">4.47</td><td align="center" style="background-color:#f3f4f6;">4.32</td></tr> |
| 506 | <tr><td align="left">Portuguese (pt-BR, pt-PT)</td><td align="center" style="background-color:#eef6e0;">6.29</td><td align="center" style="background-color:#eef6e0;">6.10</td><td align="center" style="background-color:#eef6e0;">5.81</td><td align="center" style="background-color:#eef6e0;">5.65</td><td align="center" style="background-color:#eef6e0;">5.48</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">6.41</td><td align="center" style="background-color:#f3f4f6;">6.19</td><td align="center" style="background-color:#f3f4f6;">5.82</td><td align="center" style="background-color:#f3f4f6;">5.57</td><td align="center" style="background-color:#f3f4f6;">5.47</td></tr> |
| 507 | <tr><td align="left">Hindi (hi-IN)</td><td align="center" style="background-color:#eef6e0;">8.13</td><td align="center" style="background-color:#eef6e0;">7.97</td><td align="center" style="background-color:#eef6e0;">7.41</td><td align="center" style="background-color:#eef6e0;">7.05</td><td align="center" style="background-color:#eef6e0;">6.81</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">11.47</td><td align="center" style="background-color:#f3f4f6;">10.83</td><td align="center" style="background-color:#f3f4f6;">9.88</td><td align="center" style="background-color:#f3f4f6;">9.26</td><td align="center" style="background-color:#f3f4f6;">8.23</td></tr> |
| 508 | <tr><td align="left">Korean (ko-KR)</td><td align="center" style="background-color:#eef6e0;">7.59</td><td align="center" style="background-color:#eef6e0;">7.70</td><td align="center" style="background-color:#eef6e0;">7.27</td><td align="center" style="background-color:#eef6e0;">7.18</td><td align="center" style="background-color:#eef6e0;">7.12</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">8.31</td><td align="center" style="background-color:#f3f4f6;">8.18</td><td align="center" style="background-color:#f3f4f6;">7.81</td><td align="center" style="background-color:#f3f4f6;">7.49</td><td align="center" style="background-color:#f3f4f6;">7.30</td></tr> |
| 509 | <tr><td align="left">English (en-US, en-GB)</td><td align="center" style="background-color:#eef6e0;">9.43</td><td align="center" style="background-color:#eef6e0;">8.88</td><td align="center" style="background-color:#eef6e0;">8.27</td><td align="center" style="background-color:#eef6e0;">7.99</td><td align="center" style="background-color:#eef6e0;">7.91</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">9.72</td><td align="center" style="background-color:#f3f4f6;">9.34</td><td align="center" style="background-color:#f3f4f6;">8.84</td><td align="center" style="background-color:#f3f4f6;">8.80</td><td align="center" style="background-color:#f3f4f6;">8.84</td></tr> |
| 510 | <tr><td align="left">German (de-DE)</td><td align="center" style="background-color:#eef6e0;">9.81</td><td align="center" style="background-color:#eef6e0;">9.21</td><td align="center" style="background-color:#eef6e0;">8.83</td><td align="center" style="background-color:#eef6e0;">8.42</td><td align="center" style="background-color:#eef6e0;">8.31</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">9.90</td><td align="center" style="background-color:#f3f4f6;">9.37</td><td align="center" style="background-color:#f3f4f6;">8.87</td><td align="center" style="background-color:#f3f4f6;">8.58</td><td align="center" style="background-color:#f3f4f6;">8.22</td></tr> |
| 511 | <tr><td align="left">French (fr-FR, fr-CA)</td><td align="center" style="background-color:#eef6e0;">10.97</td><td align="center" style="background-color:#eef6e0;">10.60</td><td align="center" style="background-color:#eef6e0;">9.79</td><td align="center" style="background-color:#eef6e0;">9.45</td><td align="center" style="background-color:#eef6e0;">9.03</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">11.03</td><td align="center" style="background-color:#f3f4f6;">10.60</td><td align="center" style="background-color:#f3f4f6;">9.84</td><td align="center" style="background-color:#f3f4f6;">9.46</td><td align="center" style="background-color:#f3f4f6;">9.02</td></tr> |
| 512 | <tr><td align="left">Russian (ru-RU)</td><td align="center" style="background-color:#eef6e0;">10.84</td><td align="center" style="background-color:#eef6e0;">10.73</td><td align="center" style="background-color:#eef6e0;">9.87</td><td align="center" style="background-color:#eef6e0;">9.60</td><td align="center" style="background-color:#eef6e0;">9.17</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">12.47</td><td align="center" style="background-color:#f3f4f6;">12.09</td><td align="center" style="background-color:#f3f4f6;">11.01</td><td align="center" style="background-color:#f3f4f6;">10.57</td><td align="center" style="background-color:#f3f4f6;">10.03</td></tr> |
| 513 | <tr><td align="left">Turkish (tr-TR)</td><td align="center" style="background-color:#eef6e0;">12.34</td><td align="center" style="background-color:#eef6e0;">12.33</td><td align="center" style="background-color:#eef6e0;">12.05</td><td align="center" style="background-color:#eef6e0;">11.34</td><td align="center" style="background-color:#eef6e0;">11.17</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">12.61</td><td align="center" style="background-color:#f3f4f6;">12.28</td><td align="center" style="background-color:#f3f4f6;">11.93</td><td align="center" style="background-color:#f3f4f6;">11.51</td><td align="center" style="background-color:#f3f4f6;">11.32</td></tr> |
| 514 | <tr><td align="left">Vietnamese (vi-VN)</td><td align="center" style="background-color:#eef6e0;">13.41</td><td align="center" style="background-color:#eef6e0;">12.87</td><td align="center" style="background-color:#eef6e0;">12.29</td><td align="center" style="background-color:#eef6e0;">11.78</td><td align="center" style="background-color:#eef6e0;">11.18</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">13.59</td><td align="center" style="background-color:#f3f4f6;">13.02</td><td align="center" style="background-color:#f3f4f6;">12.40</td><td align="center" style="background-color:#f3f4f6;">12.02</td><td align="center" style="background-color:#f3f4f6;">11.22</td></tr> |
| 515 | <tr><td align="left">Dutch (nl-NL)</td><td align="center" style="background-color:#eef6e0;">14.03</td><td align="center" style="background-color:#eef6e0;">13.43</td><td align="center" style="background-color:#eef6e0;">12.17</td><td align="center" style="background-color:#eef6e0;">11.97</td><td align="center" style="background-color:#eef6e0;">11.46</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">14.09</td><td align="center" style="background-color:#f3f4f6;">13.80</td><td align="center" style="background-color:#f3f4f6;">12.62</td><td align="center" style="background-color:#f3f4f6;">12.24</td><td align="center" style="background-color:#f3f4f6;">11.70</td></tr> |
| 516 | <tr><td align="left">Japanese (ja-JP)</td><td align="center" style="background-color:#eef6e0;">13.87</td><td align="center" style="background-color:#eef6e0;">12.90</td><td align="center" style="background-color:#eef6e0;">12.22</td><td align="center" style="background-color:#eef6e0;">11.91</td><td align="center" style="background-color:#eef6e0;">11.48</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">14.97</td><td align="center" style="background-color:#f3f4f6;">13.85</td><td align="center" style="background-color:#f3f4f6;">13.00</td><td align="center" style="background-color:#f3f4f6;">12.38</td><td align="center" style="background-color:#f3f4f6;">11.66</td></tr> |
| 517 | <tr><td align="left">Arabic (ar-AR)</td><td align="center" style="background-color:#eef6e0;">13.17</td><td align="center" style="background-color:#eef6e0;">12.65</td><td align="center" style="background-color:#eef6e0;">12.55</td><td align="center" style="background-color:#eef6e0;">12.13</td><td align="center" style="background-color:#eef6e0;">12.03</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">13.47</td><td align="center" style="background-color:#f3f4f6;">12.85</td><td align="center" style="background-color:#f3f4f6;">12.67</td><td align="center" style="background-color:#f3f4f6;">12.18</td><td align="center" style="background-color:#f3f4f6;">12.06</td></tr> |
| 518 | <tr><td align="left">Ukrainian (uk-UA)</td><td align="center" style="background-color:#eef6e0;">15.70</td><td align="center" style="background-color:#eef6e0;">15.21</td><td align="center" style="background-color:#eef6e0;">14.55</td><td align="center" style="background-color:#eef6e0;">13.67</td><td align="center" style="background-color:#eef6e0;">13.07</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">18.81</td><td align="center" style="background-color:#f3f4f6;">17.96</td><td align="center" style="background-color:#f3f4f6;">16.79</td><td align="center" style="background-color:#f3f4f6;">15.60</td><td align="center" style="background-color:#f3f4f6;">14.59</td></tr> |
| 519 | <tr><td align="left"><strong>Average</strong></td><td align="center" style="background-color:#eef6e0;"><strong>10.38</strong></td><td align="center" style="background-color:#eef6e0;"><strong>10.00</strong></td><td align="center" style="background-color:#eef6e0;"><strong>9.49</strong></td><td align="center" style="background-color:#eef6e0;"><strong>9.12</strong></td><td align="center" style="background-color:#eef6e0;"><strong>8.84</strong></td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;"><strong>11.14</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>10.67</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>10.05</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>9.63</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>9.21</strong></td></tr> |
| 520 | </tbody> |
| 521 | </table> |
| 522 | |
| 523 | ### Broad-coverage (13 locales) |
| 524 | |
| 525 | _Languages are ordered by accuracy (lowest WER first)._ |
| 526 | |
| 527 | <table> |
| 528 | <thead> |
| 529 | <tr><th rowspan="2" align="left">Language</th><th colspan="5" align="center" style="background-color:#76b900;color:#ffffff">Language Input (LangID)</th><th colspan="5" align="center" style="background-color:#6b7280;color:#ffffff;border-left:2px solid #cbd5e1;">Auto-detect</th></tr> |
| 530 | <tr><th align="center" style="background-color:#eef6e0">80ms</th><th align="center" style="background-color:#eef6e0">160ms</th><th align="center" style="background-color:#eef6e0">320ms</th><th align="center" style="background-color:#eef6e0">560ms</th><th align="center" style="background-color:#eef6e0">1.12s</th><th align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">80ms</th><th align="center" style="background-color:#f3f4f6;">160ms</th><th align="center" style="background-color:#f3f4f6;">320ms</th><th align="center" style="background-color:#f3f4f6;">560ms</th><th align="center" style="background-color:#f3f4f6;">1.12s</th></tr> |
| 531 | </thead> |
| 532 | <tbody> |
| 533 | <tr><td align="left">Polish (pl-PL)</td><td align="center" style="background-color:#eef6e0;">19.88</td><td align="center" style="background-color:#eef6e0;">18.92</td><td align="center" style="background-color:#eef6e0;">17.48</td><td align="center" style="background-color:#eef6e0;">16.61</td><td align="center" style="background-color:#eef6e0;">15.15</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">22.65</td><td align="center" style="background-color:#f3f4f6;">21.63</td><td align="center" style="background-color:#f3f4f6;">20.05</td><td align="center" style="background-color:#f3f4f6;">18.52</td><td align="center" style="background-color:#f3f4f6;">16.55</td></tr> |
| 534 | <tr><td align="left">Norwegian Bokmål (nb-NO)</td><td align="center" style="background-color:#eef6e0;">20.43</td><td align="center" style="background-color:#eef6e0;">20.07</td><td align="center" style="background-color:#eef6e0;">18.90</td><td align="center" style="background-color:#eef6e0;">18.44</td><td align="center" style="background-color:#eef6e0;">18.10</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">20.91</td><td align="center" style="background-color:#f3f4f6;">20.19</td><td align="center" style="background-color:#f3f4f6;">19.29</td><td align="center" style="background-color:#f3f4f6;">18.76</td><td align="center" style="background-color:#f3f4f6;">18.01</td></tr> |
| 535 | <tr><td align="left">Finnish (fi-FI)</td><td align="center" style="background-color:#eef6e0;">21.19</td><td align="center" style="background-color:#eef6e0;">20.57</td><td align="center" style="background-color:#eef6e0;">20.05</td><td align="center" style="background-color:#eef6e0;">18.94</td><td align="center" style="background-color:#eef6e0;">18.34</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">21.61</td><td align="center" style="background-color:#f3f4f6;">20.88</td><td align="center" style="background-color:#f3f4f6;">20.40</td><td align="center" style="background-color:#f3f4f6;">19.36</td><td align="center" style="background-color:#f3f4f6;">18.72</td></tr> |
| 536 | <tr><td align="left">Mandarin (zh-CN)</td><td align="center" style="background-color:#eef6e0;">20.56</td><td align="center" style="background-color:#eef6e0;">20.22</td><td align="center" style="background-color:#eef6e0;">20.03</td><td align="center" style="background-color:#eef6e0;">19.51</td><td align="center" style="background-color:#eef6e0;">19.28</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">22.45</td><td align="center" style="background-color:#f3f4f6;">21.07</td><td align="center" style="background-color:#f3f4f6;">20.59</td><td align="center" style="background-color:#f3f4f6;">20.40</td><td align="center" style="background-color:#f3f4f6;">19.87</td></tr> |
| 537 | <tr><td align="left">Czech (cs-CZ)</td><td align="center" style="background-color:#eef6e0;">24.18</td><td align="center" style="background-color:#eef6e0;">23.20</td><td align="center" style="background-color:#eef6e0;">22.41</td><td align="center" style="background-color:#eef6e0;">21.04</td><td align="center" style="background-color:#eef6e0;">20.41</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">25.81</td><td align="center" style="background-color:#f3f4f6;">25.12</td><td align="center" style="background-color:#f3f4f6;">23.68</td><td align="center" style="background-color:#f3f4f6;">22.55</td><td align="center" style="background-color:#f3f4f6;">21.45</td></tr> |
| 538 | <tr><td align="left">Bulgarian (bg-BG)</td><td align="center" style="background-color:#eef6e0;">24.50</td><td align="center" style="background-color:#eef6e0;">23.58</td><td align="center" style="background-color:#eef6e0;">22.80</td><td align="center" style="background-color:#eef6e0;">21.70</td><td align="center" style="background-color:#eef6e0;">20.53</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">28.28</td><td align="center" style="background-color:#f3f4f6;">27.22</td><td align="center" style="background-color:#f3f4f6;">25.54</td><td align="center" style="background-color:#f3f4f6;">24.05</td><td align="center" style="background-color:#f3f4f6;">21.84</td></tr> |
| 539 | <tr><td align="left">Slovak (sk-SK)</td><td align="center" style="background-color:#eef6e0;">25.08</td><td align="center" style="background-color:#eef6e0;">24.14</td><td align="center" style="background-color:#eef6e0;">23.73</td><td align="center" style="background-color:#eef6e0;">22.51</td><td align="center" style="background-color:#eef6e0;">21.28</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">27.59</td><td align="center" style="background-color:#f3f4f6;">26.06</td><td align="center" style="background-color:#f3f4f6;">25.61</td><td align="center" style="background-color:#f3f4f6;">24.15</td><td align="center" style="background-color:#f3f4f6;">22.68</td></tr> |
| 540 | <tr><td align="left">Swedish (sv-SE)</td><td align="center" style="background-color:#eef6e0;">25.61</td><td align="center" style="background-color:#eef6e0;">24.85</td><td align="center" style="background-color:#eef6e0;">23.63</td><td align="center" style="background-color:#eef6e0;">22.72</td><td align="center" style="background-color:#eef6e0;">22.17</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">26.28</td><td align="center" style="background-color:#f3f4f6;">25.56</td><td align="center" style="background-color:#f3f4f6;">24.18</td><td align="center" style="background-color:#f3f4f6;">23.57</td><td align="center" style="background-color:#f3f4f6;">22.53</td></tr> |
| 541 | <tr><td align="left">Croatian (hr-HR)</td><td align="center" style="background-color:#eef6e0;">27.92</td><td align="center" style="background-color:#eef6e0;">27.09</td><td align="center" style="background-color:#eef6e0;">25.79</td><td align="center" style="background-color:#eef6e0;">24.92</td><td align="center" style="background-color:#eef6e0;">23.97</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">32.13</td><td align="center" style="background-color:#f3f4f6;">31.20</td><td align="center" style="background-color:#f3f4f6;">29.65</td><td align="center" style="background-color:#f3f4f6;">28.95</td><td align="center" style="background-color:#f3f4f6;">27.46</td></tr> |
| 542 | <tr><td align="left">Romanian (ro-RO)</td><td align="center" style="background-color:#eef6e0;">31.52</td><td align="center" style="background-color:#eef6e0;">30.93</td><td align="center" style="background-color:#eef6e0;">29.04</td><td align="center" style="background-color:#eef6e0;">27.77</td><td align="center" style="background-color:#eef6e0;">25.90</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">34.22</td><td align="center" style="background-color:#f3f4f6;">33.26</td><td align="center" style="background-color:#f3f4f6;">30.97</td><td align="center" style="background-color:#f3f4f6;">29.84</td><td align="center" style="background-color:#f3f4f6;">26.88</td></tr> |
| 543 | <tr><td align="left">Estonian (et-EE)</td><td align="center" style="background-color:#eef6e0;">29.95</td><td align="center" style="background-color:#eef6e0;">29.66</td><td align="center" style="background-color:#eef6e0;">28.59</td><td align="center" style="background-color:#eef6e0;">27.37</td><td align="center" style="background-color:#eef6e0;">26.35</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">30.58</td><td align="center" style="background-color:#f3f4f6;">30.09</td><td align="center" style="background-color:#f3f4f6;">28.72</td><td align="center" style="background-color:#f3f4f6;">28.03</td><td align="center" style="background-color:#f3f4f6;">27.19</td></tr> |
| 544 | <tr><td align="left">Danish (da-DK)</td><td align="center" style="background-color:#eef6e0;">32.62</td><td align="center" style="background-color:#eef6e0;">31.51</td><td align="center" style="background-color:#eef6e0;">30.00</td><td align="center" style="background-color:#eef6e0;">28.92</td><td align="center" style="background-color:#eef6e0;">27.49</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">33.15</td><td align="center" style="background-color:#f3f4f6;">31.77</td><td align="center" style="background-color:#f3f4f6;">30.22</td><td align="center" style="background-color:#f3f4f6;">29.33</td><td align="center" style="background-color:#f3f4f6;">27.81</td></tr> |
| 545 | <tr><td align="left">Hungarian (hu-HU)</td><td align="center" style="background-color:#eef6e0;">32.70</td><td align="center" style="background-color:#eef6e0;">32.03</td><td align="center" style="background-color:#eef6e0;">30.92</td><td align="center" style="background-color:#eef6e0;">29.72</td><td align="center" style="background-color:#eef6e0;">28.68</td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;">33.40</td><td align="center" style="background-color:#f3f4f6;">32.39</td><td align="center" style="background-color:#f3f4f6;">31.49</td><td align="center" style="background-color:#f3f4f6;">30.20</td><td align="center" style="background-color:#f3f4f6;">29.18</td></tr> |
| 546 | <tr><td align="left"><strong>Average</strong></td><td align="center" style="background-color:#eef6e0;"><strong>25.86</strong></td><td align="center" style="background-color:#eef6e0;"><strong>25.14</strong></td><td align="center" style="background-color:#eef6e0;"><strong>24.11</strong></td><td align="center" style="background-color:#eef6e0;"><strong>23.09</strong></td><td align="center" style="background-color:#eef6e0;"><strong>22.13</strong></td><td align="center" style="background-color:#f3f4f6;border-left:2px solid #cbd5e1;"><strong>27.62</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>26.65</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>25.41</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>24.44</strong></td><td align="center" style="background-color:#f3f4f6;"><strong>23.09</strong></td></tr> |
| 547 | </tbody> |
| 548 | </table> |
| 549 | |
| 550 | ### Adaptation-ready languages (fine-tune to enable) |
| 551 | |
| 552 | These **8 language-locales** are recognized by the tokenizer but are not tuned for production transcription out of the box: **Greek (el-GR), Hebrew (he-IL), Lithuanian (lt-LT), Slovenian (sl-SI), Latvian (lv-LV), Maltese (mt-MT), Thai (th-TH), and Norwegian Nynorsk (nn-NO)**. Fine-tuning on in-domain data is recommended to bring them to production quality. |
| 553 | |
| 554 | Check our [blog post](https://huggingface.co/blog/nvidia/fine-tuning-nemotron-35-asr) of **how to fine-tune Nemotron 3.5 ASR to improve these languages**, including before/after results. |
| 555 | |
| 556 | |
| 557 | --- |
| 558 | |
| 559 | ## Ethical Considerations |
| 560 | |
| 561 | NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse. |
| 562 | |
| 563 | Please report model quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://www.nvidia.com/en-us/support/submit-security-vulnerability/). |
| 564 | |
| 565 | --- |
| 566 | |