|
--- |
|
language: |
|
- ar |
|
license: apache-2.0 |
|
base_model: openai/whisper-small |
|
tags: |
|
- whisper-event |
|
- generated_from_trainer |
|
datasets: |
|
- mozilla-foundation/common_voice_11_0 |
|
metrics: |
|
- wer |
|
model-index: |
|
- name: Whisper Small ar - Mohammed Bakheet |
|
results: |
|
- task: |
|
name: Automatic Speech Recognition |
|
type: automatic-speech-recognition |
|
dataset: |
|
name: Common Voice 11.0 |
|
type: mozilla-foundation/common_voice_11_0 |
|
config: ar |
|
split: test |
|
args: ar |
|
metrics: |
|
- name: Wer |
|
type: wer |
|
value: 20.32288342406608 |
|
--- |
|
|
|
<!-- This model card has been generated automatically according to the information the Trainer had access to. You |
|
should probably proofread and complete it, then remove this comment. --> |
|
|
|
# Whisper Small ar - Mohammed Bakheet |
|
|
|
نموذج كلام الصغير للتعرف على الصوت، هذا النموذج يتميز بدقة عالية في التعرف على الصوت باللغة العربية |
|
|
|
This model is a fine-tuned version of [openai/whisper-small](https://huggingface.co/openai/whisper-small) on the Common Voice 11.0 dataset. |
|
It achieves the following results on the evaluation set: |
|
- Loss: 0.2758 |
|
- Wer: 20.3229 |
|
|
|
## Model description |
|
|
|
This model is a fine-tuned version of openai/whisper-small on the Common Voice 11.0 dataset. It achieves 20.32 WER. Data augmentation can be implemented to further improve the model performance. |
|
|
|
## Intended uses & limitations |
|
|
|
```python |
|
from datasets import load_dataset |
|
from transformers import WhisperProcessor, WhisperForConditionalGeneration |
|
from datasets import Audio |
|
|
|
# load the dataset |
|
test_dataset = load_dataset("mozilla-foundation/common_voice_11_0", "ar", split="test", use_auth_token=True, trust_remote_code=True) |
|
|
|
# get the processor and model from mohammed/whisper-small-arabic-cv-11 |
|
processor = WhisperProcessor.from_pretrained("mohammed/whisper-small-arabic-cv-11") |
|
model = WhisperForConditionalGeneration.from_pretrained("mohammed/whisper-small-arabic-cv-11") |
|
model.config.forced_decoder_ids = None |
|
|
|
# resample the audio files to 16000 |
|
test_dataset = test_dataset.cast_column("audio", Audio(sampling_rate=16000)) |
|
|
|
# get 10 exmaples of model transcription |
|
for i in range(10): |
|
sample = test_dataset[i]["audio"] |
|
input_features = processor(sample["array"], sampling_rate=sample["sampling_rate"], return_tensors="pt").input_features |
|
predicted_ids = model.generate(input_features) |
|
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=False) |
|
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True) |
|
print(f"{i} Reference Sentence: {test_dataset[i]['sentence']}") |
|
print(f"{i} Predicted Sentence: {transcription[0]}") |
|
``` |
|
|
|
The output is: |
|
|
|
``` |
|
0 Reference Sentence: زارني في أوائل الشهر بدري |
|
0 Predicted Sentence: زارني في أوائل الشهر بدري |
|
1 Reference Sentence: إبنك بطل. |
|
1 Predicted Sentence: ابنك بطل |
|
2 Reference Sentence: الواعظ الأمرد هذا الذي |
|
2 Predicted Sentence: الوعز الأمرد هذا الذي |
|
3 Reference Sentence: سمح له هذا بالتخصص في البرونز الصغير، الذي يتم إنتاجه بشكل رئيسي ومربح للتصدير. |
|
3 Predicted Sentence: صمح له هازب التخزوس في البرونز الصغير الذي زيت معنى به بشكل رئيسي من غربح للتصدير |
|
4 Reference Sentence: ألديك قلم ؟ |
|
4 Predicted Sentence: ألديك قلم |
|
5 Reference Sentence: يا نديمي قسم بي الى الصهباء |
|
5 Predicted Sentence: يا نديمي قد سنبي إلى الصحباء |
|
6 Reference Sentence: إنك تكبر المشكلة. |
|
6 Predicted Sentence: إنك تكبر المشكلة |
|
7 Reference Sentence: يرغب أن يلتقي بك. |
|
7 Predicted Sentence: يرغب أن يلتقي بك |
|
8 Reference Sentence: إنهم لا يعرفون لماذا حتى. |
|
8 Predicted Sentence: إنهم لا يعرفون لماذا حبت |
|
9 Reference Sentence: سيسعدني مساعدتك أي وقت تحب. |
|
9 Predicted Sentence: سيسعد لمساعدتك أي وقت تحب |
|
``` |
|
|
|
## Training and evaluation data |
|
|
|
This model is trained on the Common Voice 11.0 dataset. |
|
|
|
## Training procedure |
|
|
|
The model is trained on 64 cores CPU, Nvidia 4070 Ti with 24 GB VRAM, and 100GB Disk space. The GPU utilization reached 100%. Please check the training hyperparameters below. |
|
|
|
### Training hyperparameters |
|
|
|
The following hyperparameters were used during training: |
|
- learning_rate: 1e-05 |
|
- train_batch_size: 2 |
|
- eval_batch_size: 8 |
|
- seed: 42 |
|
- gradient_accumulation_steps: 16 |
|
- total_train_batch_size: 32 |
|
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
|
- lr_scheduler_type: linear |
|
- lr_scheduler_warmup_steps: 500 |
|
- training_steps: 5000 |
|
- mixed_precision_training: Native AMP |
|
|
|
### Training results |
|
|
|
| Training Loss | Epoch | Step | Validation Loss | Wer | |
|
|:-------------:|:------:|:----:|:---------------:|:-------:| |
|
| 0.721 | 0.2079 | 250 | 0.3651 | 29.8761 | |
|
| 0.3044 | 0.4158 | 500 | 0.3308 | 27.6497 | |
|
| 0.262 | 0.6237 | 750 | 0.3085 | 25.2769 | |
|
| 0.2396 | 0.8316 | 1000 | 0.2863 | 24.5298 | |
|
| 0.1998 | 1.0394 | 1250 | 0.2743 | 23.2776 | |
|
| 0.134 | 1.2473 | 1500 | 0.2749 | 22.9829 | |
|
| 0.1328 | 1.4552 | 1750 | 0.2662 | 22.3315 | |
|
| 0.1314 | 1.6631 | 2000 | 0.2643 | 21.7402 | |
|
| 0.1262 | 1.8710 | 2250 | 0.2598 | 21.8566 | |
|
| 0.101 | 2.0789 | 2500 | 0.2608 | 21.4248 | |
|
| 0.0653 | 2.2868 | 2750 | 0.2682 | 20.9912 | |
|
| 0.062 | 2.4947 | 3000 | 0.2638 | 21.0137 | |
|
| 0.0627 | 2.7026 | 3250 | 0.2636 | 20.5369 | |
|
| 0.0603 | 2.9105 | 3500 | 0.2602 | 20.4580 | |
|
| 0.0456 | 3.1183 | 3750 | 0.2748 | 20.9555 | |
|
| 0.0324 | 3.3262 | 4000 | 0.2702 | 20.4918 | |
|
| 0.0318 | 3.5341 | 4250 | 0.2739 | 20.4355 | |
|
| 0.0296 | 3.7420 | 4500 | 0.2735 | 20.4374 | |
|
| 0.0291 | 3.9499 | 4750 | 0.2725 | 20.3717 | |
|
| 0.022 | 4.1578 | 5000 | 0.2758 | 20.3229 | |
|
|
|
|
|
### Framework versions |
|
|
|
- Transformers 4.42.4 |
|
- Pytorch 2.3.1+cu121 |
|
- Datasets 2.20.0 |
|
- Tokenizers 0.19.1 |
|
|