Présentation de l'architecture de Whisper
Whisper est un modèle end-to-end de reconnaissance vocale automatique (ASR) développé par OpenAI sorti en 2022. Il est capable de transcrire la parole en texte, traduire une langue parlée vers une autre, fonctionner dans plus de 90 langues, et résister aux bruits et accents grâce à un entraînement massif.
Comment une machine comprend le son ?
Le son est une onde analogique continue transformée en signal numérique (discrétisation).
L'audio est représenté sous forme d'une séquence d'amplitudes, difficilement exploitable telle quelle.
Il est nécessaire d'extraire des caractéristiques utiles via des techniques comme le spectrogramme, qui révèle la distribution des fréquences dans le temps.
Whisper, c'est quoi ?
Transcription
Transcrire la parole en texte.
Traduction
Traduire une langue parlée vers une autre.
Multilingue
Fonctionner dans plus de 90 langues.
Robustesse
Résister aux bruits et accents grâce à un entraînement massif.
Prétraitement de l'audio dans Whisper
Resampling à 16 000 Hz
Tous les fichiers audio sont standardisés pour une cohérence temporelle.
Découpage temporel
L'audio est divisé en fenêtres de 25 ms avec un pas de 10 ms.
STFT + Mel + log
On applique la transformée de Fourier à court terme (STFT). Puis on passe sur une échelle de fréquence Mel (perception humaine). Enfin, on applique un logarithme pour obtenir un log-Mel spectrogramme.
Normalisation
Les valeurs du spectrogramme sont centrées et mises à l'échelle pour être entre -1 et 1 (même si l'opération est faite avant training uniquement).
Résultat du prétraitement
Format du tenseur
Un tenseur 2D de dimension (80, T)
Bandes de fréquence
80 bandes de fréquence Mel
Dimension temporelle
T : nombre d'images temporelles
Architecture globale de Whisper

Decoder texte
Génère le texte à partir des représentations
Encoder audio
Transforme l'audio en représentations latentes
Prétraitement
Convertit l'audio en spectrogramme
Whisper est basé sur une architecture Transformer encoder-decoder, structurée pour traiter l'audio et générer du texte de manière efficace.
Encoder audio
Entrée
Log-Mel spectrogramme
Stem convolutionnel
Deux couches convolutionnelles (kernel = 3) avec activation GELU. La seconde couche a un stride = 2 (réduction temporelle). But : capturer les motifs acoustiques locaux.
Sinusoidal Position Embedding
Ajoute une information de position temporelle.
Blocs Transformer
Chaque bloc contient : Normalisation, Multi-head self-attention, Feedforward MLP avec GELU, Connexions résiduelles (pré-activation)
Sortie
Représentations latentes audio
Decoder texte
Text embeddings + positional embeddings
Représentation vectorielle du texte avec positions.
Blocs Transformer (décodage)
Masked self-attention, Cross-attention sur les sorties de l'encoder, Feedforward MLP avec GELU
Projection linéaire
Applique une couche finale vers le vocabulaire → Softmax.
Sortie
Probabilité du prochain token
Made with