CoolFace
Modelpublic

typhoon-ai/typhoon-asr-streaming-nemotron-0.6b

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
1likes113downloads
Model Card

Typhoon ASR Streaming Nemotron 0.6B

Cache-aware streaming Thai ASR (FastConformer-Transducer, 0.6B params, prompt-conditioned) — the best-accuracy model of the Typhoon ASR Streaming release. Adapted to Thai from NVIDIA's Nemotron streaming ASR base: the multilingual tokenizer is extended (not replaced) with the multi-character Thai BPE from Typhoon ASR Real-time, keeping the other languages recoverable, followed by Thai adaptation and a numeric fine-tuning stage.

At a glance

ArchitectureFastConformer-Transducer (RNN-T), cache-aware streaming, prompt-conditioned
NeMo classEncDecRNNTBPEModelWithPrompt
Tokenizeraggregate 15,135 = Nemotron multilingual 13,087 + Thai BPE 2,048
Language promptrequired: target_lang="th-TH"
Latency knobchunk_size × 80 ms → 1040 / 480 / 80 ms
Streaming CER14.1% TVSpeech · 9.3% GigaSpeech2-Thai @1040 ms (13.0% TVSpeech @3200 ms)
Steering (TVSpeech held-out, 1040 ms)keyword recall 16.6% → 20.7% (phrase boost) at no CER cost
RTF (batch-1, H100 @1040 ms)0.024 (~42× real time); batch-16 ≈ 300 concurrent streams/GPU
Paired n-gram`typhoon-ai/typhoon-asr-streaming-nemotron-0.6b-ngram`

Usage

Requires NVIDIA NeMo with cache-aware streaming and EncDecRNNTBPEModelWithPrompt support (see the project repo for the pinned commit and the full streaming loop / server / demo):

python
import nemo.collections.asr as nemo_asr

model = nemo_asr.models.ASRModel.restore_from(
    "typhoon-asr-streaming-nemotron-0.6b.nemo", map_location="cuda")
model.eval()
model.set_inference_prompt("th-TH")          # required (prompt-conditioned)
model.decoding.set_strip_lang_tags(True)     # strip the <xx-XX> tag from output

# offline (whole file)
text = model.transcribe(audio=["clip.wav"], target_lang="th-TH",
                        return_hypotheses=True)[0].text

# true streaming: setup_streaming_params + conformer_stream_step — see the repo.

Decode-time steering (phrase boosting / n-gram fusion) works inside the streaming decoder; with this aggregate-tokenizer model set boosting_tree.source_lang="th-TH" and use the paired .nemo n-gram — see the repo's docs/SHALLOW_FUSION.md.

License & attribution

Released under OpenMDW-1.1 (see `LICENSE` in this repository), following the base model: [NVIDIA Nemotron 3.5 ASR Streaming 0.6B](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b) (OpenMDW-1.1). The base model's copyright and origin notices are preserved in this repository as required by the license.

Modifications in this release: aggregate tokenizer extension with Thai BPE, Thai adaptation on the ~11k-hour Typhoon corpus, and numeric fine-tuning.

Trademark note: "Nemotron" is a trademark of NVIDIA Corporation. It is used here nominatively, solely to identify the base model this checkpoint derives from. This release is not affiliated with, sponsored by, or endorsed by NVIDIA.