Views
No views yet
| Evaluation set | Clips | CER (corpus) | CER (avg) | Median CER | Perfect (CER=0) |
|---|---|---|---|---|---|
| In-domain dev | 1,000 | 1.96% | 1.95% | 0.65% | 49.2% |
| Out-of-domain | 2,906 | 7.91% | 8.26% | 6.25% | 26.4% |
qwen-asr package (transformers backend):pip install -U qwen-asr1import torch
2from qwen_asr import Qwen3ASRModel
3
4model = Qwen3ASRModel.from_pretrained(
5 "seanghay/Qwen3-ASR-0.6B-Khmer",
6 dtype=torch.bfloat16,
7 device_map="cuda:0",
8 max_inference_batch_size=32,
9 max_new_tokens=256, # increase for long audio to avoid truncation
10)
11
12results = model.transcribe(
13 audio="path/to/khmer.wav", # local path, URL, base64, or (np.ndarray, sr)
14)
15
16print(results[0].text)max_new_tokens so the transcript is not cut off.| Base model | Qwen/Qwen3-ASR-0.6B |
| Language | Khmer (km) |
| Training data | DDD-Cambodia/khmer-speech-dataset (~700 h, ~384k clips) |
| Epochs | 3 (35,997 steps) |
| Effective batch size | 32 (per-device 4 × grad-accum 8) |
| Learning rate | 2e-5, linear schedule with warmup |
| Precision | bf16 |
| Hardware | 1× NVIDIA RTX 3090 (24 GB) |
| Final eval loss | 0.040 |
language Khmer<asr_text>…); the qwen-asr package parses this automatically.1@misc{seanghay2026qwen3asrkhmer,
2 title = {Qwen3-ASR-0.6B-Khmer},
3 author = {Seanghay},
4 year = {2026},
5 howpublished = {\url{https://huggingface.co/seanghay/Qwen3-ASR-0.6B-Khmer}}
6}1@misc{qwen3asr,
2 title = {Qwen3-ASR},
3 author = {Qwen Team},
4 year = {2025},
5 url = {https://github.com/QwenLM/Qwen3-ASR}
6}