Warit's picture
Update README.md
79bd2a9 verified
|
Raw
History Blame
3.08 kB
metadata
license: cc-by-4.0
language:
  - th
library_name: nemo
pipeline_tag: automatic-speech-recognition
base_model: scb10x/typhoon-asr-realtime
tags:
  - automatic-speech-recognition
  - speech
  - streaming
  - FastConformer
  - Transducer
  - Thai
  - NeMo

Typhoon ASR Streaming 115M

Cache-aware streaming Thai ASR (FastConformer-Transducer, 115M params). Converted from Typhoon ASR Real-time — causal convolutions + chunked limited-context attention swapped in, every weight copied as a warm start, then briefly fine-tuned on the ~11k-hour Thai corpus. Unlike the full-context base (which collapses to 62.8% CER when forced to stream at 1040 ms), this model decodes live, chunk by chunk, with the encoder cache carried across chunks.

At a glance

Architecture FastConformer-Transducer (RNN-T), cache-aware streaming
NeMo class EncDecRNNTBPEModel
Tokenizer single 2048-token Thai BPE
Latency knob chunk_size × 80 ms → 1040 / 480 / 80 ms
Multi-latency att_context_size [[70,13],[70,6],[70,1],[70,0]]
Streaming CER (TVSpeech) 19.4% @1040 ms · 16.4% @3200 ms
RTF (batch-1, H100 @1040 ms) 0.020 (~50× real time)
Paired n-gram typhoon-ai/typhoon-asr-streaming-115m-ngram

Use this model for low latency / low cost when English code-switching is light; for best accuracy use typhoon-ai/typhoon-asr-streaming-nemotron-0.6b.

Usage

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

import nemo.collections.asr as nemo_asr

model = nemo_asr.models.ASRModel.restore_from("typhoon-asr-streaming-115m.nemo",
                                              map_location="cuda")
model.eval()

# offline (whole file)
text = model.transcribe(audio=["clip.wav"])[0].text

# true streaming: model.encoder.setup_streaming_params(chunk_size=13, left_chunks=2,
# shift_size=13) + conformer_stream_step(...) — see demo/asr_engine.py in the repo.

Decode-time vocabulary steering (phrase boosting + n-gram shallow fusion) runs inside the streaming decoder — see the repo's docs/SHALLOW_FUSION.md.

License & attribution

Released under CC-BY-4.0, following the base-model chain:

Modifications in this release: full-context → cache-aware streaming conversion (causal convolutions, chunked limited-context attention, multi-latency att_context_size) and a 1-epoch Thai fine-tune on the Typhoon ASR Real-time corpus.