Instructions to use Hongleng/kasekor-asr-v0.0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Hongleng/kasekor-asr-v0.0 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="Hongleng/kasekor-asr-v0.0")# Load model directly from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq processor = AutoProcessor.from_pretrained("Hongleng/kasekor-asr-v0.0") model = AutoModelForSpeechSeq2Seq.from_pretrained("Hongleng/kasekor-asr-v0.0", device_map="auto") - Notebooks
- Google Colab
- Kaggle
KASEKOR ASR v0.0 β Khmer speech-to-text
A fine-tune of openai/whisper-small for Khmer (ααααα).
Training, evaluation, and inference code: github.com/chamroeunhongleng/kaskor-asr Β· Case study: chamroeunhongleng.me/projects/kaskor-asr
This is an early, self-labelled v0.0 research checkpoint by a student, not a production transcription service. The numbers below are self-reported: there is no third-party benchmark result for this model.
Results
| Checkpoint | Epoch | CER β | WER β | Eval loss |
|---|---|---|---|---|
checkpoint-27050 |
5 | 3.74% | 57.2% | 0.0356 |
Measured 2026-08-05 by the repository's own scripts/run_eval.py on the validation split: a fixed-seed 800-utterance subsample (seed 1234), greedy decoding, 448-token decode limit.
python scripts/run_eval.py --split val --beams 1 --eval-samples 800 \
--checkpoint checkpoints/checkpoint-27050
Character Error Rate is the primary metric. Khmer does not put spaces between words, so word-level WER punishes segmentation choices rather than recognition quality; WER is reported only as a secondary number, and it is not comparable to WER figures for space-delimited languages.
What this number does not mean
- It is not a speaker-independent result. The splits are stratified by speaker, so the same voices appear in training and evaluation. 4,813 of the 4,815 test utterances come from speakers the model trained on. This CER estimates accuracy on already-heard voices, not on a new speaker. A speaker-held-out evaluation is the priority for the next version.
- It is not the test split.
testhas not yet been re-scored at the corrected decode limit. - The training voices are not diverse. All 86,550 training utterances come from 6 speakers, every one labelled female in the corpus manifests, and a single speaker accounts for 80% of them. Expect degradation on male speakers, children, other dialects, telephone audio, and noisy field recordings.
- It has not been evaluated by province, recording device, or noise condition.
Correction: the 17.48% previously reported for these weights
Earlier documentation of this model reported 17.48% CER. That was a measurement artifact, not a model result. Decoding was capped at 225 tokens β roughly 102 Khmer characters, because byte-fallback BPE spends about 2.2 tokens per Khmer character β while more than half the references are longer, so complete references were being scored against hypotheses truncated mid-word.
Raising the cap to 448 (max_target_positions) gives 3.74% on the same weights. The same cap was shipping in the kaskor CLI, so real transcriptions were being cut off too; both are fixed, and run_eval.py now records the split, sample count, beam width, and decode limit with every result so numbers from different settings are never compared.
If you are calling this model yourself, set max_new_tokens to 440 (448 minus the 4-token prompt prefix). The default of 225 in older Whisper example code will silently truncate Khmer output.
Usage
import soundfile as sf
from transformers import WhisperProcessor, WhisperForConditionalGeneration
processor = WhisperProcessor.from_pretrained("Hongleng/kasekor-asr-v0.0")
model = WhisperForConditionalGeneration.from_pretrained("Hongleng/kasekor-asr-v0.0")
audio, sr = sf.read("audio.wav") # 16 kHz mono, up to 30 s
inputs = processor(audio, sampling_rate=16_000, return_tensors="pt").input_features
ids = model.generate(inputs, language="km", task="transcribe",
num_beams=5, max_new_tokens=440)
print(processor.tokenizer.batch_decode(ids, skip_special_tokens=True)[0])
Or use the CLI from the training repository:
pip install git+https://github.com/chamroeunhongleng/kaskor-asr.git
kaskor audio.wav
Audio must be 16 kHz mono, and Whisper's receptive field is 30 seconds β longer recordings need chunking.
Intended use
Research and prototyping on Khmer speech interfaces: transcription experiments, a starting checkpoint for further fine-tuning, and voice-input prototypes where a human still reviews the text.
Out of scope: medical, legal, financial, or safety-critical transcription; any decision made about a person from an automatic transcript; and speaker identification. Do not treat output as a record of what someone said without human verification.
Training
| Base | openai/whisper-small |
| Data | 86,550 Khmer utterances (train), 4,807 (val), 4,815 (test); 16 kHz mono, NFC-normalised |
| Epochs | 5 (checkpoint-27050) |
| Batch | 8 Γ 2 gradient accumulation (effective 16) |
| LR / weight decay | 1e-5 / 0.01 |
| Augmentation | 40% of samples: speed 0.9β1.1, gain Β±6 dB, noise at 15β30 dB SNR |
| Selection | CER-primary on the validation split |
The full pipeline β dataset inspection, manifest building, resampling, speaker-stratified splitting, mel caching, training, evaluation, export β is in the GitHub repository.
Data, licence, and provenance
These weights are a derivative of openai/whisper-small and carry its Apache-2.0 licence. The training and evaluation code in the GitHub repository is MIT.
The raw audio is not published and its provenance is not yet documented. The corpus source, speaker consent, and redistribution terms are unresolved, which is exactly why the recordings stay private and why no dataset is released here. If you need to reproduce training rather than inference, you need your own Khmer speech data.
Contact
Chamroeun Hongleng β Phnom Penh, Cambodia Β· chamroeunhongleng.me Β· GitHub
Corrections and speaker-independent evaluations are welcome: open an issue on the training repository.
- Downloads last month
- -
Model tree for Hongleng/kasekor-asr-v0.0
Base model
openai/whisper-small