CoolFace
Modelpublic

AI-for-Education/sw-tz-child-egra-fastconformer-ctc-110m

sourceHugging Facemitupdated 2mo agoView on Hugging Face
1likes36downloads
Model Card

Tanzanian Kiswahili Child EGRA Fastconfromer-CTC - Asr Model ID 41

[![Model architecture](https://img.shields.io/badge/Model_Arch-Conformer--CTC-lightgrey)](#model-architecture)[![Model size](https://img.shields.io/badge/Params-115.6M-lightgrey)](#model-details)[![Language](https://img.shields.io/badge/Language-sw-lightgrey)](#model-details)[![Domain](https://img.shields.io/badge/Domain-EGRA_child_speech-lightgrey)](#intended-use)

model_exp41_avg.nemo is our main NVIDIA NeMo automatic speech recognition model for Kiswahili child-speech recordings from Early Grade Reading Assessment (EGRA) tasks in Tanzania. It is designed for letter sound identification, syllable identification, non-word reading, and passage reading audio.

For public context on the broader Voice AI data collection and annotation workflow, see Fab AI's Voice AI data collection and annotation for early grade reading assessments guide.

Model Details

FieldValue
Model artifactmodel_exp41_avg.nemo
Project model identifierModel ID 41
TaskAutomatic speech recognition
LanguageKiswahili / Swahili (sw)
Target domainEGRA-style Kiswahili child speech
FrameworkNVIDIA NeMo
NeMo version2.3.0
Model classnemo.collections.asr.models.ctc_bpe_models.EncDecCTCModelBPE
ArchitectureFastConformer encoder with CTC BPE decoder
Parameters115,639,795
Input sample rate16 kHz
Features80-dimensional log-mel features, 25 ms window, 10 ms stride
TokenizerSentencePiece/BPE
Vocabulary size1,024 BPE tokens
Default decodingGreedy CTC decoding (greedy_batch)
Artifact size463,144,960 bytes, approximately 442 MiB
SHA-2566450926bc1338827ab201b2d9f8f94bcb7a5bd06b6f72690f60ead14a067a7b0

Intended Use

This model supports transcription of Kiswahili child speech in education and research workflows, especially EGRA-style oral reading assessments. It can be used as part of a larger assessment pipeline in which transcripts are reviewed, scored, or compared against expected reading prompts.

Appropriate uses include:

  • —transcribing Kiswahili child oral-reading recordings;
  • —supporting EGRA-style assessment research and evaluation;
  • —evaluating ASR-assisted workflows for early grade literacy;
  • —batch transcription in controlled education or research settings.

The model is not intended for speaker identification, biometric identification, surveillance, clinical transcription, legal transcription, or high-stakes decisions without human review.

How to Use

We used NVIDIA NeMo 2.3.0 with Python 3.10.12 for local inference and evaluation.

bash
git clone --depth 1 --branch v2.3.0 https://github.com/NVIDIA/NeMo
cd NeMo
conda create -n nemo_env python=3.10.12
conda activate nemo_env
pip install '.[all]'

Python Inference

Load the local .nemo artifact with NeMo:

python
import torch
from nemo.collections.asr.models import ASRModel

model_path = "model_exp41_avg.nemo"
device = "cuda" if torch.cuda.is_available() else "cpu"

asr_model = ASRModel.restore_from(
    restore_path=model_path,
    map_location=device,
)

outputs = asr_model.transcribe(["sample.wav"])
for output in outputs:
    print(getattr(output, "text", output))

If the model is hosted on Hugging Face, first download the .nemo file:

python
import torch
from huggingface_hub import hf_hub_download
from nemo.collections.asr.models import ASRModel

repo_id = "AI-for-Education/sw-tz-child-egra-fastconformer-ctc-110m"
model_path = hf_hub_download(repo_id=repo_id, filename="model_exp41_avg.nemo")
device = "cuda" if torch.cuda.is_available() else "cpu"

asr_model = ASRModel.restore_from(
    restore_path=model_path,
    map_location=device,
)

outputs = asr_model.transcribe(["sample.wav"])
for output in outputs:
    print(getattr(output, "text", output))

Manifest-Based Evaluation

For the project inference flow, we use NeMo's speech_to_text_eval.py with a JSONL manifest:

json
{"audio_filepath": "sample.wav", "text": "daima kenya amani tele", "duration": 3.528}

Run:

bash
python3 speech_to_text_eval.py \
  model_path=/path/to/model_exp41_avg.nemo \
  dataset_manifest=manifest.json \
  batch_size=32 \
  output_filename=manifest-results.json

The included smoke-test example produces:

json
{"audio_filepath": "sample1.wav", "text": "daima kenya amani tele", "duration": 3.528, "pred_text": "daima kenya amani tele", "wer": 0.0, "tokens": 4, "ins_rate": 0.0, "del_rate": 0.0, "sub_rate": 0.0}

This example checks that the model restores and runs correctly. It is not a benchmark.

To request timestamps with NeMo's transcription script, pass timestamps=True return_hypotheses=True. With this setting, the output includes char, word, and segment timestamp fields.

Inputs and Outputs

Input:

  • —16 kHz speech audio;
  • —preferably mono audio;
  • —Kiswahili child speech from EGRA-style reading tasks.

Output:

  • —plain text transcription.

The basic NeMo transcript output does not add punctuation, capitalization, diarization, or calibrated confidence scores by default. Timestamp output is available through NeMo's timestamp mode.

Evaluation

We evaluated the desktop-runnable Model ID 41 on manually corrected validation and test assessments.

Overall WER

Evaluation splitOverall WER (%)
Validation13.0
Test16.8

Per-Task WER

EGRA taskValidation isolatedValidation gridTest isolatedTest grid
Letters3.210.511.217.9
Syllables21.719.322.823.4
Non-words10.111.313.513.6
Passages-8.1-12.5

The strongest results are for passage reading and letter decoding. Syllable decoding remains the most difficult task.

Training Data and Procedure

This model was developed as part of a two-phase project. Phase A focused on data collection and annotation for Kiswahili EGRA tasks, and Phase B focused on ASR model development and fine-tuning.

Development included:

  • —support for data collection and annotation planning;
  • —initial fine-tuning on Kiswahili adult speech and pitch-shifted adult speech;
  • —iterative ASR training on enhanced versions of the Phase A child-speech dataset;
  • —validation and correction of evaluation data;
  • —training-data curation attempts.

Real child-speech data was critical: adult-trained models and pitch-shifted adult speech provided useful baselines, but did not replace real child speech. We observed substantial ASR improvements using as little as 50 hours of child-speech data.

The underlying child-speech assessment data and internal train/validation/test manifests are not included in this repository.

Model Architecture

The model uses the following NeMo architecture:

ComponentConfiguration
PreprocessorAudioToMelSpectrogramPreprocessor
EncoderConformerEncoder
Encoder layers18
Encoder hidden size512
Attention heads8
SubsamplingDepthwise striding
Subsampling factor8
Convolution kernel size9
DecoderConvASRDecoder
Decoder output classes1,024
Training objectiveCTC

Training settings include AdamW optimization, inverse-square-root learning-rate annealing, warmup ratio 0.03, additive noise augmentation, speed perturbation, and SpecAugment.

Limitations

This model should be evaluated carefully before use outside the target setting. Known or likely limitations include:

  • —lower reliability for adult speech, non-child speech, or non-Kiswahili speech;
  • —reduced robustness in very noisy recordings, far-field audio, microphone-contact noise, or overlapping speech;
  • —higher error rates for syllable and non-word tasks than for passage reading;
  • —limited expected generalization to new non-words or unseen passages without additional evaluation;
  • —sensitivity to annotation consistency, including regional pronunciation variation and inconsistent transcription conventions;
  • —no default punctuation, capitalization, diarization, or speaker attribution.

We did not make a separate objective noise-robustness claim because the Phase A dataset did not include noise-level annotations, although many recordings were noisier than initially expected.

Ethical Considerations

The target use case involves children's speech in educational assessment settings. Users should apply strong privacy, consent, data-minimization, and human-review safeguards when handling audio or transcripts. The model should not be used for surveillance or high-stakes decisions about children without appropriate governance, validation, and human oversight.

Acknowledgements

We developed this model for the Digitisation of EGRA using Voice AI project, with Zevo Tech leading Phase B model development, Fab Inc and Laterite supporting Phase A, and Stellenbosch University collaborating on the evaluation framework.

Citation

Public citation language is still being finalized. For now, please cite this model card and the Fab AI Voice AI guide when referencing the model or broader data collection and annotation workflow.