automatic-speech-recognition openslr robust-speech-event km generated_from_trainer hf-asr-leaderboard

This model is a fine-tuned version of facebook/wav2vec2-xls-r-1b on the openslr dataset. It achieves the following results on the evaluation set:

Evaluation results on OpenSLR "test" (self-split 10%) (Running ./eval.py):

Evaluation results on OpenSLR "test" with LM ngram (self-split 10%) (Running ./eval.py):

Note

Installation

Install the following libraries on top of HuggingFace Transformers for the supports of language model.

pip install pyctcdecode
pip install https://github.com/kpu/kenlm/archive/master.zip

Usage

Approach 1: Using HuggingFace's pipeline, this will cover everything end-to-end from raw audio input to text output.

from transformers import pipeline

# Load the model
pipe = pipeline(model="vitouphy/wav2vec2-xls-r-300m-khmer")

# Process raw audio
output = pipe("sound_file.wav", chunk_length_s=10, stride_length_s=(4, 2))

Approach 2: More custom way to predict phonemes.

from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC 
import librosa
import torch

# load model and processor
processor = Wav2Vec2Processor.from_pretrained("vitouphy/wav2vec2-xls-r-300m-khmer")
model = Wav2Vec2ForCTC.from_pretrained("vitouphy/wav2vec2-xls-r-300m-khmer")

# Read and process the input
speech_array, sampling_rate = librosa.load("sound_file.wav", sr=16_000)
inputs = processor(speech_array, sampling_rate=16_000, return_tensors="pt", padding=True)

with torch.no_grad():
    logits = model(inputs.input_values, attention_mask=inputs.attention_mask).logits

predicted_ids = torch.argmax(logits, axis=-1)      
predicted_sentences = processor.batch_decode(predicted_ids)
print(predicted_sentences)

Intended uses & limitations

The data used for this model is only around 4 hours of recordings.

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

Training results

Training Loss Epoch Step Validation Loss Wer
3.5671 5.47 400 12.0218 1.0
3.5159 10.95 800 10.6337 1.0
2.4543 16.43 1200 1.8256 0.9839
1.9437 21.91 1600 1.1237 0.9173
1.696 27.39 2000 0.8246 0.7700
1.5342 32.87 2400 0.6433 0.6594
1.4509 38.35 2800 0.5500 0.5787
1.3478 43.83 3200 0.5070 0.4907
1.3096 49.31 3600 0.4692 0.4726
1.2532 54.79 4000 0.4448 0.4479
1.2291 60.27 4400 0.4374 0.4366
1.196 65.75 4800 0.4314 0.4310
1.1862 71.23 5200 0.4239 0.4221

Framework versions