Nemotron Czech 0.6B v1
Czech adaptation of NVIDIA Nemotron 3.5 ASR Streaming 0.6B. This is a complete NeMo checkpoint, including tokenizer, for local speech recognition. It is not a Transformers pipeline checkpoint. Weights and accompanying release materials are supplied under OpenMDW-1.1; see LICENSE and NOTICE.
Published by: twobe3. This is an independent community fine-tune of the NVIDIA base model.
Česky: Český model pro převod řeči na text ve formátu NeMo. Na historickém testu Common Voice Czech 27.0 dosáhl normalizovaného WER 9,18 % oproti 16,22 % výchozího modelu při stejném streamingovém vyhodnocení: relativní snížení WER o 43,39 %. Výsledek není zárukou stejné chybovosti na libovolné české nahrávce. Finální export byl vybrán po porovnání historických testů; nejde o nový slepý test. Podrobnosti, omezení a návod následují níže.
Reported evaluation
| Model | Normalized WER | CER | Raw WER |
|---|---|---|---|
| Original NVIDIA model | 16.2151% | 4.2669% | 21.1387% |
| This Czech adaptation (L_S7) | 9.1793% | 1.9379% | 13.0569% |
Evaluation: Common Voice Czech 27.0, historical test_novel split, 3,534
utterances from 40 speakers, 4.8242 hours. Same audio, language prompt cs-CZ,
RNNT cache-aware streaming, attention context [56,3] (320 ms chunk size),
FP32, batch size 1 for both models. Normalization preserves Czech diacritics;
see metrics.py for the exact implementation. Relative WER reduction is 43.39%.
The paired speaker-bootstrap 95% interval for the WER difference is
[-9.2544, -5.6076] percentage points. Full aggregate output: evaluation.json. These are the results
recorded in the supplied training release; they were not independently rerun
during Hugging Face publication.
Limitations: this export was chosen for release after comparing historical test results. This is not a new blind test. Its 0.099 percentage point advantage over the previous Czech checkpoint is not statistically established. Common Voice read speech does not establish accuracy on phone calls, meetings, noisy speech or arbitrary Czech audio. Other languages were not re-evaluated. The 320 ms setting describes the audio chunk size, not measured end-to-end latency. The historical test manifest and per-utterance predictions are not included in this release, so the aggregate scores and bootstrap interval cannot be independently reconstructed from this repository alone. No WER below 3% or near-zero error rate is claimed.
Training
30,039 validated and technically checked Common Voice pairs, 35.8528 hours, 673 training speakers. Source: Common Voice Czech 27.0 (CC0); not every clip was independently listened to by this project's maintainer. The export continues the earlier Czech adaptation, with all 637,997,088 parameters trainable, seed 42, learning rate 6e-6, AdamW weight decay 0.01, BF16 mixed, microbatch 1, accumulation 64, cosine decay and SpecAugment. Two epochs / 940 updates; the saved best checkpoint was selected at step 705 by training-time validation. That internal loss/decoder metric differs from the reported streaming WER. See training_provenance.json for hashes and revisions.
Intended use and limitations
Use this checkpoint for local Czech speech transcription and evaluation of Czech ASR applications. Review transcripts where errors matter. English, mixed Czech/English speech, other languages, long recordings, noisy audio, phone calls and spontaneous conversations require separate evaluation. This repository contains model weights, documentation and evaluation helpers; it does not include training audio, a hosted transcription service or a Transformers/safetensors conversion. A native Q8_0 GGUF conversion is also available; see GGUF.md for its checksum, provenance and limitations.
Download
Native GGUF (OLA / NeMo-Speech.cpp)
The independently converted nemotron-czech-0.6b-v1.q8_0.gguf is
741,958,816 bytes (about 708 MiB). It uses the native NeMo-Speech.cpp ASR
runtime, not llama.cpp. The historical WER numbers above describe the
original NeMo checkpoint and must not be assumed to apply to this quantized
export. See GGUF.md for tested runtime and integrity information.
hf download twobe3/nemotron-czech-0.6b-v1 nemotron-czech-0.6b-v1.q8_0.gguf GGUF_SHA256SUMS --local-dir nemotron-czech-gguf
cd nemotron-czech-gguf
sha256sum -c GGUF_SHA256SUMS
Original NeMo checkpoint
Download the NeMo release (about 2.55 GB, excluding the optional GGUF) with the Hugging Face CLI:
python -m pip install --upgrade huggingface_hub
hf download twobe3/nemotron-czech-0.6b-v1 --exclude '*.gguf' --local-dir nemotron-czech-0.6b-v1
cd nemotron-czech-0.6b-v1
sha256sum -c SHA256SUMS
On Windows, the model checksum can also be verified with:
Get-FileHash .\nemotron-czech-0.6b-v1.nemo -Algorithm SHA256
Expected model SHA-256:
ba1d2f8ce952aae3f67dd243489a328ab2c0b3d1e0c2691d78e38a4ce93e580f.
Run locally / use the same streaming evaluation settings
The recorded inference environment is Linux with an NVIDIA GPU. Use Python
3.11, CUDA-compatible PyTorch and NeMo at commit
f613eed86ed4696db0891aac4e9104337a39142c (tested with torch 2.11.0+cu129).
The full tested package inventory is runtime-freeze.txt. Some NeMo dependencies
need system audio libraries; follow the base model card's installation guidance.
git clone https://github.com/NVIDIA/NeMo.git
git -C NeMo checkout f613eed86ed4696db0891aac4e9104337a39142c
python -m pip install -e './NeMo[asr]'
Convert your input to 16 kHz mono WAV, for example with FFmpeg:
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le audio.wav
Create my_audio.jsonl with the real absolute path and duration of your audio:
{"audio_filepath":"/absolute/path/audio.wav","duration":5.2,"text":""}
The 5.2-second duration above is illustrative; replace it with the actual duration.
The official streaming entry point
accepts a NeMo JSONL manifest, one object per utterance, with audio_filepath,
duration and text (reference text, or empty for transcription only).
python NeMo/examples/asr/asr_cache_aware_streaming/speech_to_text_cache_aware_streaming_infer.py \
model_path=nemotron-czech-0.6b-v1.nemo \
dataset_manifest=my_audio.jsonl output_path=predictions \
target_lang=cs-CZ 'att_context_size=[56,3]' \
batch_size=1 cuda=0 decoder_type=rnnt \
pad_and_drop_preencoded=true strip_lang_tags=true \
compute_dtype=float32 amp=false compare_vs_offline=false random_seed=42
For scored evaluation use the bundled nemotron_evaluate.py, passing
--nemo-root ./NeMo --model-path ./nemotron-czech-0.6b-v1.nemo
and --manifest scored.jsonl --output-dir evaluation-run. In addition to
the NeMo fields, scored rows require unique id, speaker_id and nonempty
reference text; audio paths must be absolute WAV paths, at most 30 seconds.
Use a new output directory for each evaluation. Offline transcription and
other decoding settings need their own accuracy measurement.
Repository contents
| File | Purpose |
|---|---|
nemotron-czech-0.6b-v1.nemo | Complete checkpoint with embedded tokenizer and configuration |
nemotron-czech-0.6b-v1.q8_0.gguf | Optional Q8_0 native ASR conversion |
GGUF.md, GGUF_SHA256SUMS, gguf-conversion.json | GGUF usage, integrity and conversion provenance |
evaluation.json | Aggregate base-versus-adapted scores and paired bootstrap interval |
training_provenance.json | Training settings, data hashes and pinned revisions |
nemotron_evaluate.py, nemotron_common.py, metrics.py | Streaming evaluation and exact text-normalization helpers |
runtime-freeze.txt | Package inventory of the recorded training/evaluation environment |
BASE_MODEL_CARD.md | Preserved upstream model card; its benchmarks describe the upstream model |
LICENSE, NOTICE | OpenMDW-1.1 license and attribution |
SHA256SUMS | Integrity checksums for the release files |
License and attribution
The supplied model and release materials are distributed under OpenMDW-1.1, retaining the upstream notices and original model card. NVIDIA is the author of the base model. The Czech adaptation uses Common Voice Czech 27.0, identified as CC0 in the training release. NeMo itself is separately licensed under Apache-2.0.
Integrity
sha256sum -c SHA256SUMS verifies the exported model and release files.
The historical training checkpoints were removed after retaining this export;
it supports inference and new fine-tuning, not exact optimizer-state resume.