seanghay's picture
Update README.md
351f1cc verified
|
Raw
History Blame Contribute Delete
4.28 kB
---
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}
}
```