Lmaana 2.1: Clean Darija Adaptation with OmniASR CTC 1B
Lmaana 2.1 is a research checkpoint for Moroccan Darija automatic speech recognition. It continues the retained Lmaana V5 checkpoint with conservative mixed replay over Dataset13 and a cleaned Lmaana corpus derived from MoulSot. The Lmaana transcripts preserve Arabic/Latin code switching and correct a set of French expressions that had previously been written phonetically in Arabic.
Format: native fairseq2/OmniASR checkpoint. This is not a Transformers
from_pretrained()export.
Model Summary
| Property | Value |
|---|---|
| Task | Automatic speech recognition |
| Language | Moroccan Darija (ary) with Arabic/Latin code switching |
| Architecture | OmniASR CTC 1b_v2 (wav2vec2_asr) |
| Framework | fairseq2 |
| Tokenizer | omniASR_tokenizer_written_v2 character tokenizer |
| Selected checkpoint | 5,000 adaptation steps |
| Decoding used for evaluation | Greedy CTC, no external language model |
Training Data
The training mixture contains two cleaned corpora:
| Corpus | Training examples | Duration | Effective sampling weight |
|---|---|---|---|
| Dataset13 | 52,892 | 263.76 h | 74.21% |
| Lmaana clean | 74,243 | 91.68 h | 25.79% |
Dataset13 provides the larger and more varied training domain. Lmaana clean is
based on MoulSot audio with revised transcripts, especially for code-switched
French and Latin-script spans. Validation and test partitions were excluded
from training. Lmaana has more training examples but far fewer audio hours,
because its segments average about 4.4 s versus about 18.0 s for Dataset13.
Dataset13 therefore contributes broader acoustic duration, while Lmaana adds
dense supervision from shorter, transcript-cleaned utterances.
Adaptation Procedure
Lmaana 2.1 starts from the retained Lmaana V5 checkpoint rather than from the official OmniASR base. A previous clean-curriculum experiment from the official base underperformed V5, so this run uses guarded continuation:
| Parameter | Value |
|---|---|
| Training steps | 5,000 |
| Peak learning rate | 1e-7 |
| Encoder freeze | First 500 steps |
| Gradient accumulation | 8 batches |
beta_corpus / beta_language |
1.0 / 1.0 |
| Validation/checkpoint interval | 500 steps |
The retained V5 checkpoint was included as step 0 during selection. A candidate
could regress by at most 0.05 CER/UER point and 0.10 WER point on either
Dataset13 or Lmaana clean validation. Step 5,000 ranked first on all four
validation error rates.
Validation Results
UER is the name emitted by fairseq2. With this character tokenizer it is used
as the character-level error rate (CER/UER).
| Checkpoint | Dataset13 CER/UER | Dataset13 WER | Lmaana CER/UER | Lmaana WER |
|---|---|---|---|---|
| Retained V5 baseline | 17.3908% | 43.2622% | 13.1994% | 40.4155% |
| Step 3,500 | 17.3347% | 43.1245% | 13.2053% | 40.4015% |
| Lmaana 2.1, step 5,000 | 17.3252% | 43.1238% | 13.1925% | 40.3535% |
The validation curves show modest but consistent progress. Dataset13 improves more clearly because it contributes most of the sampled audio duration. Lmaana changes are smaller, but step 5,000 is still the best joint validation choice.
Held-Out Test Results
The test partitions were evaluated once after validation-based selection.
| Model | Test corpus | CTC loss | CER/UER | WER | Examples |
|---|---|---|---|---|---|
| Retained V5 | Dataset13 | 183.8770 | 17.7674% | 44.2243% | 6,576 |
| Lmaana 2.1 | Dataset13 | 183.6260 | 17.7029% | 44.0393% | 6,576 |
| Retained V5 | Lmaana clean | 75.2100 | 14.6099% | 45.1385% | 1,957 |
| Lmaana 2.1 | Lmaana clean | 75.0515 | 14.6048% | 45.1690% | 1,957 |
Compared with V5, Lmaana 2.1 improves Dataset13 test CER by 0.0645 point and
WER by 0.1850 point. Lmaana clean test CER improves by 0.0051 point, while
WER regresses by 0.0305 point. The checkpoint is therefore the strongest
balanced continuation in this experiment, but it is not an improvement on
every individual metric.
Dataset13 and Lmaana scores should not be compared as if they were repeated measurements of one dataset. They contain different source material, segment lengths, transcript conventions, and code-switching patterns. The strongest evidence is the within-dataset comparison between V5 and Lmaana 2.1.
Download and Use
from huggingface_hub import snapshot_download
local_path = snapshot_download(repo_id="sailu4/lmaana-2.1")
print(local_path)
The model shard is stored at
checkpoint/model/pp_00/tp_00/sdp_00.pt. Load it through the matching
OmniASR/fairseq2 wav2vec2_asr recipe and use the tokenizer under tokenizer/.
The repository also includes the training configuration and exact selection,
validation, and test summaries under metadata/.
Intended Use
- Research on Moroccan Darija speech recognition.
- Darija transcription experiments involving Arabic/Latin code switching.
- Continued fairseq2/OmniASR adaptation with a fresh optimizer.
- Comparison of transcript cleaning and mixed-replay strategies.
This checkpoint has not been validated for high-stakes or fully automated decision-making.
Limitations
- Results use greedy CTC decoding without a language model.
- Improvements over V5 are small and come from one training run.
- Performance can vary across accents, recording conditions, domains, and code-switching patterns not represented by the evaluation data.
- The model can omit words or produce plausible but incorrect transcriptions.
- Dataset and deployment licenses must be reviewed separately for the intended application.
Repository Contents
checkpoint/model/pp_00/tp_00/sdp_00.pt: selected model weights.tokenizer/: OmniASR written-text character tokenizer.metadata/: configuration and evaluation/selection summaries.manifest.json: file sizes and SHA-256 integrity hashes.
Experiment code and the complete protocol are maintained in the Darija CTC project.



