File size: 4,283 Bytes
65cec60
 
 
 
 
 
1ad7fd7
 
65cec60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1ad7fd7
 
 
 
65cec60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1ad7fd7
65cec60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e8ba61e
 
 
c64fc28
e8ba61e
c64fc28
e8ba61e
 
 
 
 
 
 
65cec60
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
---
license: apache-2.0
language:
- km
base_model:
- Qwen/Qwen3-ASR-0.6B
datasets:
- DDD-Cambodia/khmer-speech-dataset
pipeline_tag: automatic-speech-recognition
library_name: transformers
tags:
- automatic-speech-recognition
- speech
- audio
- khmer
- qwen3-asr
metrics:
- cer
model-index:
- name: Qwen3-ASR-0.6B-Khmer
  results:
  - task:
      type: automatic-speech-recognition
      name: Automatic Speech Recognition
    dataset:
      type: khmer
      name: Khmer held-out dev set (in-domain)
    metrics:
    - type: cer
      value: 1.96
      name: CER
  - task:
      type: automatic-speech-recognition
      name: Automatic Speech Recognition
    dataset:
      type: khmer
      name: Khmer out-of-domain set
    metrics:
    - type: cer
      value: 7.91
      name: CER
---

# Qwen3-ASR-0.6B-Khmer

A Khmer (ខ្មែរ) automatic speech recognition model, fine-tuned from
[**Qwen/Qwen3-ASR-0.6B**](https://huggingface.co/Qwen/Qwen3-ASR-0.6B) on
~700 hours of Khmer speech from the
[**DDD-Cambodia/khmer-speech-dataset**](https://huggingface.co/datasets/DDD-Cambodia/khmer-speech-dataset).
It substantially improves Khmer transcription accuracy over the base model
while keeping the compact 0.6B footprint.

## Results

Character Error Rate (CER, lower is better). Khmer has no spaces between words,
so CER is computed **space-insensitive**; the out-of-domain set is additionally
normalized by removing punctuation.

| 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% |

- **CER (corpus)** = total edit distance ÷ total reference characters (micro-average).
- **CER (avg)** = mean of per-clip CER (macro-average).

## Usage

Install the [`qwen-asr`](https://pypi.org/project/qwen-asr/) package (transformers backend):

```bash
pip install -U qwen-asr
```

```python
import torch
from qwen_asr import Qwen3ASRModel

model = Qwen3ASRModel.from_pretrained(
    "seanghay/Qwen3-ASR-0.6B-Khmer",
    dtype=torch.bfloat16,
    device_map="cuda:0",
    max_inference_batch_size=32,
    max_new_tokens=256,  # increase for long audio to avoid truncation
)

results = model.transcribe(
    audio="path/to/khmer.wav",  # local path, URL, base64, or (np.ndarray, sr)
)

print(results[0].text)
```

Audio is resampled to 16 kHz mono internally. Long recordings are automatically
chunked; for long clips set a larger `max_new_tokens` so the transcript is not cut off.

## Training

| | |
|---|---|
| Base model | Qwen/Qwen3-ASR-0.6B |
| Language | Khmer (`km`) |
| Training data | [DDD-Cambodia/khmer-speech-dataset](https://huggingface.co/datasets/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 |

The model is trained to emit a language tag followed by the transcript
(`language Khmer<asr_text>…`); the `qwen-asr` package parses this automatically.

## Limitations

- Tuned primarily for **read/clean Khmer speech**. Accuracy degrades on noisy,
  spontaneous, or heavily **code-switched (Khmer–English) technical speech**,
  where English terms may be transliterated phonetically into Khmer script.
- Output is unpunctuated / minimally segmented Khmer text.
- As with most ASR models, very long or hesitant/repetitive speech can
  occasionally produce repeated phrases.

## License

Released under the **Apache-2.0** license, inheriting the license of the base
Qwen3-ASR-0.6B model.

## Acknowledgements

Built on [Qwen3-ASR](https://github.com/QwenLM/Qwen3-ASR) by the Alibaba Qwen team.

## Citation

If you use this model, please cite:

```bibtex
@misc{seanghay2026qwen3asrkhmer,
  title  = {Qwen3-ASR-0.6B-Khmer},
  author = {Seanghay},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/seanghay/Qwen3-ASR-0.6B-Khmer}}
}
```

This model is fine-tuned from Qwen3-ASR:

```bibtex
@misc{qwen3asr,
  title  = {Qwen3-ASR},
  author = {Qwen Team},
  year   = {2025},
  url    = {https://github.com/QwenLM/Qwen3-ASR}
}
```