Shona W2V-BERT 2.0 ASR
This is a Shona (
sna) CTC speech-recognition model fine-tuned from
facebook/w2v-bert-2.0. It accepts 16 kHz speech and produces lowercase text without punctuation.
The model is useful as an independent Shona recognizer, an audit signal for pseudo-labels, and a research baseline. It is not the current quality-first teacher or the intended streaming production model.
Model details
The base encoder was pretrained by Meta on multilingual unlabeled speech. This repository contains the Shona fine-tune, tokenizer, processor, and CTC head.
Evaluation
The old 20.31% WER shown on this card came from only 300 examples sampled from the historical training pipeline. It is retained in training/summary.json for provenance but is not a representative benchmark result.
The current results use model revision 1ef436f3edc4e2392331eaaf72ac10a67b6ed00c and the project scorer: Unicode NFKC, case-folding, and whitespace collapse. Percentages are corpus-level WER.
| Evaluation set | Examples | WER | What it measures |
|---|
FLEURS sn_zw test | 925 | 28.87% | Public cross-dataset Shona benchmark |
| WAXAL annotated validation | 1,504 | 28.20% | Project-domain comparison |
| WAXAL annotated test | 1,565 | 28.11%* | Project-domain comparison |
| Curated Shona recordings | 150 | 30.58% | One unseen speaker, studio-clean audio, short utterances |
| Shona Bible validation | 2,410 | 42.10% | Biblical language and narration |
| Shona Bible test | 1,593 | 43.00% | Biblical language and narration |
* This checkpoint was trained with an older local split over the annotated WAXAL corpus. That split does not match the later published WAXAL partition, so overlap with the current WAXAL test cannot be ruled out. Treat 28.11% as contextual rather than a strictly held-out result. FLEURS and the curated recordings do not have that split-overlap issue.
The FLEURS benchmark is public and may have appeared in pretraining data for some models. The curated set is temporally separate from model pretraining, but it contains one speaker and only 14.9 minutes of clean audio. Neither is a complete proxy for noisy, multi-speaker, real-world deployment.
In the shared L4 benchmark, this model processed audio at approximately 47.8 times real time with batch size 8 and used 10.0 GiB peak VRAM. These figures are hardware and implementation dependent.
Intended use
Appropriate uses include:
- Shona transcription research on short, segmented speech;
- a second-model agreement signal when auditing pseudo-labels;
- error analysis and comparison with other Shona ASR systems;
- bootstrapping reviewed speech-data pipelines.
Do not treat agreement with another model as proof that a transcript is correct. Use human-labelled validation and test data for evaluation.
Limitations
- The tokenizer emits lowercase text without punctuation or capitalization.
- The model has not been validated for streaming recognition or long-form transcription.
- Accuracy drops on biblical narration and may drop on other domains not represented in the fine-tuning corpus.
- Code-switching, noisy telephone audio, regional variation, and overlapping speakers have not been evaluated systematically.
- The WAXAL score has the historical split caveat described above.
- FLEURS is a public benchmark, not a private contamination-resistant test.
Usage
Install compatible versions of PyTorch and Transformers, then load a mono waveform at 16 kHz:
1import librosa
2import torch
3from transformers import AutoModelForCTC, AutoProcessor
4
5repo_id = "manassehzw/sna-w2v-bert-2.0-asr"
6processor = AutoProcessor.from_pretrained(repo_id)
7model = AutoModelForCTC.from_pretrained(repo_id)
8model.eval()
9
10audio, _ = librosa.load("audio.wav", sr=16_000, mono=True)
11inputs = processor(audio, sampling_rate=16_000, return_tensors="pt")
12
13with torch.inference_mode():
14 token_ids = model(**inputs).logits.argmax(dim=-1)
15
16transcript = processor.batch_decode(token_ids)[0]
17print(transcript)
Move the model and input tensors to the same device when using a GPU. For long recordings, segment the audio and preserve boundaries before transcription.
Training provenance
The uploaded training/summary.json and training/preprocess_summary.json preserve the historical run configuration. The fine-tuning pipeline used 14,324 training examples from the 15,239-example annotated corpus and selected a checkpoint using a capped 300-example evaluation subset. Those files explain the run but their 20.31% metric is not the benchmark reported above.
License and attribution
The model is released under the MIT license, matching the
facebook/w2v-bert-2.0 base checkpoint. The fine-tuning audio comes from
manassehzw/sna-dataset-annotated, which derives from
WAXAL NLP. Dataset terms and attribution obligations still apply to the training data.
Relevant sources:
Citation
If you use this Shona fine-tune, cite this repository:
1@misc{changachirere2026shonaw2vbert,
2 author = {Manasseh Changachirere},
3 title = {Shona W2V-BERT 2.0 ASR},
4 year = {2026},
5 publisher = {Hugging Face},
6 howpublished = {\url{https://huggingface.co/manassehzw/sna-w2v-bert-2.0-asr}}
7}
Please also cite the W2V-BERT 2.0 base model and the source dataset when required by your use.
Contact
Open a discussion in this Hugging Face repository for questions, reproducibility notes, or evaluation corrections.