Devsyril commited on
Commit
a4eaf28
·
verified ·
1 Parent(s): 9949f81

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +135 -0
README.md ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - kbp
4
+ license: apache-2.0
5
+ base_model: openai/whisper-small
6
+ tags:
7
+ - automatic-speech-recognition
8
+ - whisper
9
+ - kabiye
10
+ - kbp
11
+ - low-resource
12
+ - peft
13
+ - lora
14
+ datasets:
15
+ - wilderness_asr/KBPRCV_whisper_dataset
16
+ metrics:
17
+ - wer
18
+ pipeline_tag: automatic-speech-recognition
19
+ model-index:
20
+ - name: whisper-small-kbp
21
+ results:
22
+ - task:
23
+ type: automatic-speech-recognition
24
+ name: Automatic Speech Recognition
25
+ dataset:
26
+ type: wilderness_asr/KBPRCV_whisper_dataset
27
+ name: KBPRCV Whisper Dataset (kabiyè)
28
+ metrics:
29
+ - type: wer
30
+ value: XX.X
31
+ name: Test WER
32
+ ---
33
+
34
+ # Whisper Small — Kabiyè (kbp)
35
+
36
+ Ce modèle est une version de [`openai/whisper-small`](https://huggingface.co/openai/whisper-small) affinée (*fine-tuned*) pour la reconnaissance automatique de la parole (ASR) en **kabiyè** (code ISO 639-3 : `kbp`), une langue gur parlée principalement au Togo.
37
+
38
+ Le modèle a été entraîné avec la méthode **PEFT / LoRA**, puis les poids de l'adaptateur ont été **fusionnés** (`merge_and_unload`) dans le modèle de base : ce dépôt contient donc un `WhisperForConditionalGeneration` complet, utilisable directement sans dépendance à la librairie `peft`.
39
+
40
+ > Un adaptateur LoRA autonome (non fusionné, plus léger) est également disponible séparément : `<HF_USERNAME>/whisper-small-kbp-lora-adapter`.
41
+
42
+ ## Description du modèle
43
+
44
+ - **Modèle de base** : `openai/whisper-small` (244M paramètres)
45
+ - **Langue** : kabiyè (`kbp`)
46
+ - **Tâche** : transcription audio → texte (`transcribe`)
47
+ - **Méthode de fine-tuning** : PEFT / LoRA (`r=32`, `lora_alpha=64`, `target_modules=["q_proj","v_proj"]`, `lora_dropout=0.05`), poids fusionnés avec le modèle de base après entraînement
48
+ - **Note sur le token de langue** : le kabiyè ne faisant pas partie des langues nativement supportées par Whisper, aucun token de langue Whisper natif n'a été forcé (`forced_decoder_ids=None`) ; le modèle a appris l'association audio → texte kabiyè directement via le fine-tuning supervisé.
49
+
50
+ ## Utilisation
51
+
52
+ ```python
53
+ from transformers import WhisperForConditionalGeneration, WhisperProcessor
54
+ import torch, librosa
55
+
56
+ repo_id = "<HF_USERNAME>/whisper-small-kbp"
57
+
58
+ processor = WhisperProcessor.from_pretrained(repo_id)
59
+ model = WhisperForConditionalGeneration.from_pretrained(repo_id)
60
+ model.config.forced_decoder_ids = None
61
+
62
+ audio, sr = librosa.load("mon_clip.wav", sr=16000)
63
+ input_features = processor(audio, sampling_rate=sr, return_tensors="pt").input_features
64
+
65
+ with torch.no_grad():
66
+ predicted_ids = model.generate(input_features, max_new_tokens=225)
67
+
68
+ transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
69
+ print(transcription)
70
+ ```
71
+
72
+ Avec le pipeline `transformers` :
73
+
74
+ ```python
75
+ from transformers import pipeline
76
+
77
+ asr = pipeline("automatic-speech-recognition", model="<HF_USERNAME>/whisper-small-kbp")
78
+ print(asr("mon_clip.wav"))
79
+ ```
80
+
81
+ ## Données d'entraînement
82
+
83
+ - **Source** : corpus `KBPRCV_whisper_dataset` (projet Wilderness ASR), constitué de lectures audio de textes bibliques en kabiyè.
84
+ - **Volume** : 7 923 clips audio, soit environ **21h39** d'audio total.
85
+ - **Format** : paires audio (`.wav`, 16 kHz) / transcription, décrites dans un fichier `manifest.jsonl` avec les champs `audio_filepath`, `text`, `duration`, `language`, `book`, `chapter`, `verse_index`.
86
+ - **Répartition** : ~90% entraînement / ~5% validation / ~5% test, split stratifié par livre biblique (`book`) pour préserver l'homogénéité thématique des sous-ensembles.
87
+
88
+ ## Procédure d'entraînement
89
+
90
+ | Hyperparamètre | Valeur |
91
+ |---|---|
92
+ | Modèle de base | `openai/whisper-small` |
93
+ | Méthode | LoRA (PEFT) |
94
+ | `r` | 32 |
95
+ | `lora_alpha` | 64 |
96
+ | `target_modules` | `q_proj`, `v_proj` |
97
+ | `lora_dropout` | 0.05 |
98
+ | Batch size (train) | 16 |
99
+ | Learning rate | 1e-3 |
100
+ | Epochs | 10 |
101
+ | Précision | fp16, chargement de base en 8-bit pendant l'entraînement |
102
+ | Métrique de sélection | WER (validation) |
103
+ | Matériel | GPU unique (Google Colab, T4/A100) |
104
+
105
+ ## Résultats d'évaluation
106
+
107
+ | Split | WER (%) |
108
+ |---|---|
109
+ | Validation | *à compléter après entraînement* |
110
+ | Test | *à compléter après entraînement* |
111
+
112
+ *(Les valeurs ci-dessus sont des emplacements à renseigner une fois l'entraînement terminé — voir la section 16 du notebook d'entraînement.)*
113
+
114
+ ## Limites et biais connus
115
+
116
+ - Le corpus d'entraînement est constitué exclusivement de **lectures de textes bibliques** : le vocabulaire, le registre de langue et la prosodie du modèle sont donc fortement influencés par ce domaine, et les performances peuvent se dégrader sur de la parole spontanée, conversationnelle, ou sur d'autres domaines (actualités, discours technique, etc.).
117
+ - Le corpus provient probablement d'un nombre limité de locuteurs/lecteurs : la robustesse aux variations d'accent, de dialecte ou de bruit ambiant n'est pas garantie.
118
+ - Le kabiyè n'étant pas une langue supportée nativement par Whisper, aucune connaissance linguistique préalable spécifique à cette langue n'a été transférée via le token de langue ; toute la capacité de reconnaissance vient du fine-tuning sur ce corpus.
119
+ - Les clips de plus de 30 secondes ont été exclus de l'entraînement (limite native de Whisper).
120
+
121
+ ## Citation
122
+
123
+ Si vous utilisez ce modèle, merci de citer le modèle de base Whisper :
124
+
125
+ ```bibtex
126
+ @misc{radford2022whisper,
127
+ title={Robust Speech Recognition via Large-Scale Weak Supervision},
128
+ author={Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg and McLeavey, Christine and Sutskever, Ilya},
129
+ year={2022},
130
+ eprint={2212.04356},
131
+ archivePrefix={arXiv}
132
+ }
133
+ ```
134
+
135
+ ainsi que le corpus d'entraînement `KBPRCV_whisper_dataset` (projet Wilderness ASR).