Whisper
OpenAI Whisper est un système ASR open source qui convertit avec précision la parole en texte dans 99 langues, prenant en charge la transcription, la traduction et l’identification de la langue pour une automatisation IA robuste.

Comprendre OpenAI Whisper
Whisper est-il un modèle ou un système ?
OpenAI Whisper peut être considéré à la fois comme un modèle et un système, selon le contexte.
- En tant que modèle, Whisper regroupe des architectures de réseaux neuronaux spécialement conçues pour les tâches ASR. Il comprend plusieurs modèles de tailles variées, allant de 39 millions à 1,55 milliard de paramètres. Les modèles plus grands offrent une meilleure précision mais nécessitent plus de ressources informatiques.
- En tant que système, Whisper englobe non seulement l’architecture du modèle, mais aussi toute l’infrastructure et les processus qui l’entourent. Cela inclut les données d’entraînement, les méthodes de prétraitement et l’intégration des diverses tâches qu’il peut effectuer, comme l’identification de la langue et la traduction.
Capacités principales de Whisper
La fonction principale de Whisper est de transcrire la parole en texte. Il excelle dans :
- Reconnaissance vocale multilingue : Prend en charge 99 langues, ce qui en fait un outil puissant pour des applications mondiales.
- Traduction du discours : Capable de traduire la parole de n’importe quelle langue prise en charge vers un texte en anglais.
- Identification de la langue : Détecte automatiquement la langue parlée sans indication préalable.
- Robustesse face aux accents et au bruit de fond : Entraîné sur des données variées, Whisper gère efficacement les accents et les environnements bruyants.
Comment fonctionne OpenAI Whisper ?
Architecture Transformer
Au cœur de Whisper se trouve l’architecture Transformer, plus précisément un modèle encodeur-décodeur. Les Transformers sont des réseaux neuronaux qui excellent dans le traitement des données séquentielles et la compréhension du contexte sur de longues séquences. Introduits dans l’article “Attention is All You Need” en 2017, les Transformers sont devenus fondamentaux dans de nombreuses tâches de NLP.
Le processus de Whisper implique :
- Prétraitement audio : L’audio d’entrée est segmenté en morceaux de 30 secondes et converti en un spectrogramme log-Mel, capturant la fréquence et l’intensité du signal au fil du temps.
- Encodeur : Traite le spectrogramme pour générer une représentation numérique de l’audio.
- Décodeur : Utilise un modèle de langage pour prédire la séquence de tokens texte (mots ou sous-mots) correspondant à l’entrée audio.
- Utilisation de tokens spéciaux : Utilise des tokens spéciaux pour gérer des tâches comme l’identification de la langue, les timestamps et les directives spécifiques (ex : transcrire ou traduire).
Entraînement sur des données supervisées multilingues et multitâches
Whisper a été entraîné sur un vaste ensemble de 680 000 heures de données supervisées collectées sur le web. Cela inclut :
- Données multilingues : Environ 117 000 heures de ces données sont en 99 langues différentes, renforçant la capacité du modèle à généraliser.
- Conditions acoustiques variées : Le jeu de données contient de l’audio provenant de divers domaines et environnements, garantissant la robustesse face aux accents, dialectes et bruits de fond.
- Apprentissage multitâche : En s’entraînant sur plusieurs tâches simultanément (transcription, traduction, identification de la langue), Whisper apprend des représentations partagées qui améliorent les performances globales.
Applications et cas d’utilisation
Services de transcription
- Réunions virtuelles et prise de notes : Automatiser la transcription sur des plateformes audio généralistes ou spécialisées (éducation, santé, journalisme, juridique).
- Création de contenu : Générer des transcriptions pour podcasts, vidéos et livestreams pour améliorer l’accessibilité et fournir des références textuelles.
Traduction linguistique
- Communication globale : Traduire la parole d’une langue vers l’anglais écrit, facilitant la communication multilingue.
- Outils d’apprentissage des langues : Aider les apprenants à comprendre la prononciation et le sens dans différentes langues.
Automatisation IA et chatbots
- Chatbots à commande vocale : Intégrer Whisper dans des chatbots pour autoriser les interactions vocales et améliorer l’expérience utilisateur.
- Assistants IA : Développer des assistants capables de comprendre et traiter des commandes vocales dans diverses langues.
Améliorations de l’accessibilité
- Sous-titrage : Générer des sous-titres pour les contenus vidéo, aidant les personnes malentendantes.
- Technologies d’assistance : Permettre aux appareils de transcrire et traduire la parole pour les utilisateurs nécessitant un support linguistique.
Centres d’appel et support client
- Transcription en temps réel : Fournir aux agents des transcriptions en temps réel des appels clients pour un meilleur service.
- Analyse de sentiment : Analyser le texte transcrit pour évaluer le sentiment client et améliorer les interactions.
Avantages d’OpenAI Whisper
Prise en charge multilingue
Avec la couverture de 99 langues, Whisper se distingue par sa capacité à gérer une grande diversité linguistique. Cette compétence multilingue le rend adapté aux applications mondiales et aux services visant un public international.
Haute précision et robustesse
Entraîné sur de vastes données supervisées, Whisper atteint de hauts taux de précision en transcription. Sa robustesse face aux accents, dialectes et bruits de fond le rend fiable dans divers scénarios réels.
Polyvalence des tâches
Au-delà de la transcription, Whisper sait également :
- Identification de la langue : Détecte la langue parlée sans indication préalable.
- Traduction vocale : Traduit la parole d’une langue vers l’anglais écrit.
- Génération de timestamps : Fournit des timestamps au niveau des phrases dans les transcriptions.
Disponibilité open source
Distribué en logiciel open source, Whisper permet aux développeurs de :
- Personnaliser et affiner : Adapter le modèle à des tâches ou domaines spécifiques.
- Intégrer dans des applications : Incorporer Whisper dans des produits et services sans contrainte de licence.
- Contribuer à la communauté : Améliorer le modèle et partager les évolutions.
Limites et points d’attention
Exigences informatiques
- Consommateur de ressources : Les modèles les plus grands nécessitent une puissance de calcul et une mémoire importantes (jusqu’à 10 Go de VRAM pour le plus grand).
- Temps de traitement : La vitesse de transcription varie, les modèles plus grands étant plus lents à traiter.
Risque d’hallucinations
- Transcriptions inexactes : Whisper peut parfois produire du texte non prononcé (hallucinations), surtout dans certaines langues ou avec une mauvaise qualité audio.
Support limité pour les langues non-anglaises
- Biais des données : Une grande partie des données d’entraînement est en anglais, ce qui peut affecter la précision dans les langues moins représentées.
- Nécessité d’affinage : Un entraînement complémentaire peut être nécessaire pour améliorer les performances sur des langues ou dialectes spécifiques.
Limitations des entrées
- Durée audio : Whisper traite l’audio par tranches de 30 secondes, ce qui peut compliquer la transcription d’audio continu plus long.
- Restrictions sur la taille des fichiers : Le modèle open source peut limiter la taille et les formats des fichiers en entrée.
OpenAI Whisper dans l’automatisation IA et les chatbots
Améliorer les interactions utilisateur
En intégrant Whisper dans des chatbots et assistants IA, les développeurs peuvent permettre :
- Commandes vocales : Autoriser les utilisateurs à interagir via la voix plutôt que le texte.
- Support multilingue : Répondre aux besoins des utilisateurs préférant ou nécessitant différentes langues.
- Accessibilité améliorée : Aider les personnes en situation de handicap ou n’ayant pas accès aux modes de saisie traditionnels.
Rationaliser les workflows
- Transcriptions automatisées : Réduire l’effort manuel de prise de notes et de suivi.
- Analyse des données : Convertir le contenu oral en texte pour analyse, suivi et insights.
Exemples pratiques
- Bots de réunion virtuelle : Outils qui rejoignent les réunions en ligne pour transcrire les discussions en temps réel.
- Bots de service client : Systèmes capables de comprendre et répondre à des demandes orales, pour améliorer l’expérience client.
- Plateformes éducatives : Applications transcrivant des cours ou fournissant des traductions aux étudiants.
Alternatives à OpenAI Whisper
Alternatives open source
- Mozilla DeepSpeech : Moteur ASR open source permettant un entraînement personnalisé.
- Kaldi : Boîte à outils largement utilisée en recherche et industrie pour la reconnaissance vocale.
- Wav2vec : Système de Meta AI pour le traitement vocal auto-supervisé.
APIs commerciales
- Google Cloud Speech-to-Text : Propose une reconnaissance vocale avec un large support linguistique.
- Microsoft Azure AI Speech : Fournit des services vocaux avec options de personnalisation.
- AWS Transcribe : Service Amazon de reconnaissance vocale avec fonctionnalités comme le vocabulaire personnalisé.
Fournisseurs spécialisés
- Gladia : Offre une architecture hybride et améliorée de Whisper avec des fonctionnalités supplémentaires.
- AssemblyAI : Fournit des APIs de reconnaissance vocale avec modération de contenu.
- Deepgram : Propose une transcription en temps réel avec options d’entraînement de modèles personnalisés.
Points clés pour choisir Whisper
Précision et vitesse
- Compromis : Les modèles plus grands offrent plus de précision mais nécessitent plus de ressources et sont plus lents.
- Tests : Évaluez la performance avec des données réelles pertinentes pour votre application.
Volume d’audio
- Scalabilité : Pensez aux besoins matériels et d’infrastructure pour traiter de grands volumes.
- Traitement par lots : Mettez en place des méthodes pour gérer efficacement de grands ensembles de données.
Fonctionnalités avancées
- Fonctionnalités supplémentaires : Évaluez si des options comme la transcription en direct ou la diarisation sont nécessaires.
- Personnalisation : Déterminez l’effort requis pour des fonctionnalités additionnelles.
Prise en charge linguistique
- Langues cibles : Vérifiez la performance du modèle dans les langues pertinentes à votre application.
- Affinage : Prévoyez un entraînement complémentaire pour les langues moins représentées.
Expertise et ressources
- Expertise technique : Assurez-vous que votre équipe a les compétences pour mettre en œuvre et adapter le modèle.
- Infrastructure : Évaluez les exigences matérielles et les capacités d’hébergement.
Coûts
- Open source vs commercial : Pesez les économies initiales de l’open source face aux coûts sur le long terme (maintenance, scalabilité).
- Coût total de possession : Prenez en compte le matériel, le temps de développement et le support continu.
Comment utiliser Whisper en Python ?
Whisper est implémenté en bibliothèque Python, permettant une intégration fluide dans les projets en Python. Utiliser Whisper en Python implique de configurer l’environnement, d’installer les dépendances nécessaires et d’utiliser les fonctions de la bibliothèque pour transcrire ou traduire des fichiers audio.
Installer Whisper en Python
Avant d’utiliser Whisper, il faut préparer l’environnement de développement en installant Python, PyTorch, FFmpeg et la bibliothèque Whisper.
Prérequis
- Python : Version 3.8 à 3.11 recommandée.
- PyTorch : Framework d’apprentissage profond nécessaire pour exécuter le modèle Whisper.
- FFmpeg : Outil en ligne de commande pour le traitement de fichiers audio et vidéo.
- Bibliothèque Whisper : Le package Python proposé par OpenAI.
Étape 1 : Installer Python et PyTorch
Si Python n’est pas installé, téléchargez-le depuis le site officiel. Pour installer PyTorch, utilisez pip :
pip install torch
Sinon, consultez le site PyTorch pour des instructions adaptées à votre OS et version de Python.
Étape 2 : Installer FFmpeg
Whisper nécessite FFmpeg pour traiter les fichiers audio. Installez FFmpeg avec le gestionnaire de paquets approprié à votre système d’exploitation.
Ubuntu/Debian :
sudo apt update && sudo apt install ffmpeg
MacOS (avec Homebrew) :
brew install ffmpeg
Windows (avec Chocolatey) :
choco install ffmpeg
Étape 3 : Installer la bibliothèque Whisper
Installez le package Python Whisper avec pip :
pip install -U openai-whisper
Pour installer la version la plus récente directement depuis le dépôt GitHub :
pip install git+https://github.com/openai/whisper.git
Remarque pour les utilisateurs Windows
Assurez-vous que le mode développeur est activé :
- Ouvrez Paramètres.
- Allez dans Confidentialité et sécurité > Pour les développeurs.
- Activez le mode développeur.
Modèles disponibles et spécifications
Whisper propose plusieurs modèles de tailles et capacités différentes. Les modèles vont de tiny
à large
, chacun équilibrant vitesse et précision différemment.
Taille | Paramètres | Modèle anglais uniquement | Modèle multilingue | VRAM requise | Vitesse relative |
---|---|---|---|---|---|
tiny | 39 M | tiny.en | tiny | ~1 Go | ~32x |
base | 74 M | base.en | base | ~1 Go | ~16x |
small | 244 M | small.en | small | ~2 Go | ~6x |
medium | 769 M | medium.en | medium | ~5 Go | ~2x |
large | 1550 M | N/A | large | ~10 Go | 1x |
Choisir le bon modèle
- Modèles anglais uniquement (
.en
) : Optimisés pour la transcription anglaise, avec de meilleures performances sur l’audio anglais. - Modèles multilingues : Capables de transcrire plusieurs langues, idéals pour des applications internationales.
- Taille du modèle : Les modèles plus grands offrent une meilleure précision, mais demandent plus de ressources. Choisissez selon vos capacités matérielles et besoins de performance.
Utiliser Whisper en Python
Après avoir préparé l’environnement et installé les composants nécessaires, vous pouvez commencer à utiliser Whisper dans vos projets Python.
Importer la bibliothèque et charger un modèle
Commencez par importer la bibliothèque Whisper et charger un modèle :
import whisper
# Charger le modèle souhaité
model = whisper.load_model("base")
Remplacez "base"
par le nom du modèle adapté à votre application.
Transcrire des fichiers audio
Whisper propose une fonction simple transcribe
pour convertir des fichiers audio en texte.
Exemple : Transcrire un fichier audio anglais
# Transcrire le fichier audio
result = model.transcribe("path/to/english_audio.mp3")
# Afficher la transcription
print(result["text"])
Explications
model.transcribe()
: Traite le fichier audio et retourne un dictionnaire contenant la transcription et d’autres métadonnées.result["text"]
: Accède au texte transcrit depuis le résultat.
Traduire l’audio vers l’anglais
Whisper peut traduire l’audio de diverses langues vers l’anglais.
Exemple : Traduire un audio espagnol vers l’anglais
# Transcrire et traduire l’audio espagnol vers l’anglais
result = model.transcribe("path/to/spanish_audio.mp3", task="translate")
# Afficher le texte traduit
print(result["text"])
Explications
task="translate"
: Demande au modèle de traduire l’audio en anglais au lieu de le transcrire littéralement.
Spécifier la langue
Bien que Whisper puisse détecter automatiquement la langue, la spécifier peut améliorer la précision et la vitesse.
Exemple : Transcrire un audio français
# Transcrire l’audio français en spécifiant la langue
result = model.transcribe("path/to/french_audio.wav", language="fr")
# Afficher la transcription
print(result["text"])
Détecter la langue de l’audio
Whisper peut identifier la langue parlée dans un fichier audio via la méthode detect_language
.
Exemple : Détection de la langue
# Charger et prétraiter l’audio
audio = whisper.load_audio("path/to/unknown_language_audio.mp3")
audio = whisper.pad_or_trim(audio)
# Convertir en spectrogramme log-Mel
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# Détecter la langue
_, probs = model.detect_language(mel)
language = max(probs, key=probs.get)
print(f"Langue détectée : {language}")
Explications
whisper.load_audio()
: Charge le fichier audio.whisper.pad_or_trim()
: Ajuste la longueur audio pour correspondre aux besoins du modèle.whisper.log_mel_spectrogram()
: Convertit l’audio dans le format attendu par le modèle.model.detect_language()
: Retourne les probabilités pour chaque langue, permettant d’identifier la plus probable.
Utilisation avancée et personnalisation
Pour plus de contrôle sur la transcription, vous pouvez utiliser des fonctions bas niveau et personnaliser les options de décodage.
Utiliser la fonction decode
La fonction decode
permet de spécifier des options comme la langue, la tâche et l’inclusion ou non des timestamps.
Exemple : Options de décodage personnalisées
# Définir les options de décodage
options = whisper.DecodingOptions(language="de", without_timestamps=True)
# Décoder l’audio
result = whisper.decode(model, mel, options)
# Afficher le texte reconnu
print(result.text)
Traiter l’audio en direct
Vous pouvez intégrer Whisper pour transcrire l’audio en direct depuis un microphone.
Exemple : Transcrire une entrée micro en direct
import whisper
import sounddevice as sd
# Charger le modèle
model = whisper.load_model("base")
# Enregistrer l’audio depuis le micro
duration = 5 # secondes
fs = 16000 # Taux d’échantillonnage
print("Enregistrement...")
audio = sd.rec(int(duration * fs), samplerate=fs, channels=1, dtype='float32')
sd.wait
Questions fréquemment posées
- Qu'est-ce qu'OpenAI Whisper ?
OpenAI Whisper est un système avancé de reconnaissance automatique de la parole (ASR) développé par OpenAI, conçu pour transcrire la langue parlée en texte écrit à l'aide de l'apprentissage profond. Il prend en charge 99 langues et excelle dans la transcription, la traduction et l'identification de la langue.
- Comment fonctionne Whisper ?
Whisper utilise une architecture encodeur-décodeur basée sur les transformers, traite l'audio en spectrogrammes log-Mel, et produit du texte via un modèle de langage. Il a été entraîné sur 680 000 heures de données multilingues et multitâches pour une grande précision et robustesse.
- Quelles sont les principales fonctionnalités de Whisper ?
Whisper prend en charge la reconnaissance vocale multilingue, la traduction du discours, l'identification automatique de la langue, la robustesse face aux accents et au bruit, et fournit un accès open source pour la personnalisation et l'intégration.
- Quelles sont les exigences matérielles pour Whisper ?
Les exigences matérielles dépendent de la taille du modèle : les plus petits modèles comme 'tiny' nécessitent ~1Go de VRAM, tandis que le plus grand nécessite ~10Go. Whisper fonctionne plus rapidement sur GPU mais peut fonctionner sur CPU avec des temps de traitement plus longs.
- Whisper peut-il être intégré dans des projets Python ?
Oui, Whisper est implémenté en tant que bibliothèque Python et peut être installé via pip. Il permet une intégration facile dans les projets Python pour la transcription vocale, la traduction et les applications vocales en temps réel.
- Quels sont les cas d'utilisation courants de Whisper ?
Les cas d'utilisation courants incluent la transcription automatisée de réunions, les chatbots à commande vocale, la traduction en direct, les outils d'accessibilité (sous-titres et aides techniques), l'automatisation des centres d'appels et les systèmes d'automatisation contrôlés par la voix.
- Existe-t-il des alternatives à OpenAI Whisper ?
Oui, il existe des alternatives comme des moteurs open source tels que Mozilla DeepSpeech, Kaldi, Wav2vec, et des API commerciales comme Google Cloud Speech-to-Text, Microsoft Azure AI Speech et AWS Transcribe.
- Whisper est-il open source ?
Oui, OpenAI Whisper est open source, ce qui permet aux développeurs de le personnaliser, le peaufiner et l'intégrer dans leurs propres produits et services sans contraintes de licence.
Commencez à construire avec OpenAI Whisper
Intégrez des capacités avancées de reconnaissance vocale dans vos applications, automatisez les workflows et améliorez l'expérience utilisateur avec OpenAI Whisper et FlowHunt.