Nemotron 3.5 ASR German Telephony Adaptation

This repository contains a lightweight domain adaptation of nvidia/nemotron-3.5-asr-streaming-0.6b for German telephony-style audio.

The model was fine-tuned on 25 hours of German VoxPopuli speech after simulating G.711 A-law telephone audio. The goal is not to claim a new state of the art; it is to show a practical, reproducible adaptation pass for a local voice stack where narrowband/telephone audio is a common failure mode.

We built this checkpoint after seeing that German telephone-like audio was one of the weaker conditions in our local voice pipeline. After fine-tuning, the same evaluation setup showed a measurable improvement on held-out telephony-style German audio, so we packaged the resulting NeMo artifact as a reusable starting point for German phone-audio ASR experiments.

Model File

The fine-tuned NeMo artifact is:

nemotron-3.5-asr-de-telephony.nemo

What Changed

Starting from the NVIDIA Nemotron 3.5 ASR streaming 0.6B checkpoint, we fine-tuned on German speech converted through this telephony degradation chain:

source audio -> 16 kHz mono WAV -> 8 kHz G.711 A-law -> 16 kHz mono WAV

This keeps the model input at 16 kHz, while exposing the model to the bandwidth and codec artifacts of 8 kHz A-law telephone audio.

In practical terms, this is a compact domain-adaptation run: the model remains the same multilingual streaming ASR architecture, but its weights were adapted toward the kind of German audio we expect in local telephony and voice-agent workflows.

Training Data

  • Source dataset: facebook/voxpopuli
  • Language: German (de)
  • Source license: cc0-1.0
  • Training subset used here: 25.0 h exported from VoxPopuli German
  • Final split after telephony conversion:
    • Train: 8,431 utterances, 19.948 h
    • Validation: 1,054 utterances, 2.500 h
    • Test: 1,054 utterances, 2.552 h

Important limitation: VoxPopuli is parliamentary/broadcast-style speech, not real call-center audio. The telephone condition here is simulated, not captured from real PSTN or contact-center traffic.

Fine-Tuning Setup

  • Base model: nvidia/nemotron-3.5-asr-streaming-0.6b
  • Framework: NVIDIA NeMo
  • Precision: bf16-mixed
  • Epochs: 8
  • Batch size: 48
  • Optimizer: AdamW inherited from the base config
  • Learning rate: 5e-5
  • Scheduler: cosine, warmup_steps=500, min_lr=1e-6
  • Best checkpoint selected by validation WER
  • Best checkpoint: best-step=1264-val_wer=0.1168.ckpt
  • Final .nemo exported after restoring the best validation checkpoint

Evaluation

Evaluation was run on the held-out VoxPopuli German telephony-style test split with German prompt conditioning and language-tag stripping enabled.

Model Test set WER CER
Base nvidia/nemotron-3.5-asr-streaming-0.6b 1,054 utts 14.81% 7.82%
This fine-tuned model 1,054 utts 12.42% 6.86%

Absolute WER improvement: 2.39 percentage points.

Relative WER reduction: 16.1% fewer word errors compared with the base model on this test split.

Intended Use

This model is intended as an experimental German ASR telephony adaptation and as a starting point for further in-domain fine-tuning. It may be useful for:

  • local German voice-agent stacks with telephone-like audio
  • quick evaluation of G.711 A-law domain adaptation
  • follow-up fine-tuning on real call-center or telephony recordings
  • teams that want a concrete example of adapting a strong ASR base model to a narrower audio domain

This checkpoint was packaged from a local fine-tuning run used to validate our German telephone-audio pipeline. The included metrics are from the held-out VoxPopuli telephony-style test split; users should still run their own evaluation on their target audio before making product decisions.

Not Intended For

This model should not be presented as:

  • a state-of-the-art German ASR model
  • a validated production call-center ASR benchmark
  • a replacement for testing on real target-domain audio

Before production use, evaluate on real deployment audio, including different speakers, microphones, noise conditions, and streaming chunk settings.

Loading With NeMo

from nemo.collections.asr.models import ASRModel

model = ASRModel.restore_from("nemotron-3.5-asr-de-telephony.nemo")
model.decoding.set_strip_lang_tags(True)

transcripts = model.transcribe(["audio.wav"], target_lang="de")
print(transcripts)

For deployment-faithful numbers, evaluate with the official Nemotron streaming inference path and the same chunk size used in production.

License And Attribution

This fine-tuned artifact is derived from nvidia/nemotron-3.5-asr-streaming-0.6b, which is published under the openmdw-1.1 license on Hugging Face.

Training data came from facebook/voxpopuli, which is listed on Hugging Face with cc0-1.0 licensing.

Please review the base model license and terms before redistribution or commercial deployment.

Downloads last month
46
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for BotgenossenGmbH/nemotron-3.5-asr-de-telephony

Finetuned
(43)
this model

Dataset used to train BotgenossenGmbH/nemotron-3.5-asr-de-telephony