ACI Yoruba Phase 10

Acoustic weights fine-tuned from Phase 9, using an error-weighted training set (samples Phase 9 got wrong, oversampled 3x) drawn from a 90% split of our AR_Audios dataset. Paired with the same KenLM decoder (alpha=0.5, beta=1.0) and phonetic map as Phase 9.

Evaluation

Measured on the untouched 10% held-out split (55 samples) -- the only samples this model's acoustic weights never saw during fine-tuning.

Model WER (held-out, normalized)
Phase 9 12.63%
Phase 10 (this model) 12.33%
Phase X (stronger decoder config, same acoustic weights as Phase 10) 7.09%

The acoustic fine-tuning here produced a modest 0.3-point gain over Phase 9. A much larger gain came from decoder configuration alone -- for production use, see Awesome-x/aci-yoruba-phaseX, which uses these same acoustic weights with a stronger KenLM weighting and larger unigram vocabulary.

Training configuration

  • Base: Awesome-x/aci-yoruba-phase9 acoustic weights
  • Method: continued fine-tuning, feature encoder frozen
  • Learning rate: 1e-5, 3 epochs
  • Training set: 90% split of AR_Audios (n approx 495), hard examples oversampled 3x

Quickstart

pip install torch transformers pyctcdecode librosa
import torch
import librosa
from transformers import Wav2Vec2ForCTC, Wav2Vec2ProcessorWithLM

REPO_ID = "Awesome-x/aci-yoruba-phase10"
model = Wav2Vec2ForCTC.from_pretrained(REPO_ID)
processor = Wav2Vec2ProcessorWithLM.from_pretrained(REPO_ID)

audio, sr = librosa.load("sample.wav", sr=16000)
input_values = processor(audio, sampling_rate=16000, return_tensors="pt").input_values

with torch.no_grad():
    logits = model(input_values).logits

print(processor.decode(logits[0].numpy()).text)
Downloads last month
136
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Evaluation results

  • Test WER (%, punctuation-normalized, held-out) on ACI Yoruba-English Code-Switching Held-Out Set
    self-reported
    12.330