
Whisper est un modèle polyvalent de reconnaissance automatique de la parole, entraîné sur un vaste jeu de données audio. Il prend en charge la transcription multilingue, la traduction de la parole et la détection de la langue.
Whisper peut servir d’assistant vocal, de chatbot, de moteur de traduction vers l’anglais, d’outil d’automatisation pour la prise de notes en réunion, et de solution de transcription.
La transcription consiste à convertir la parole en texte. Autrefois réalisée manuellement, elle s’appuie désormais sur des outils d’IA comme Whisper, capables de comprendre la parole avec précision.
Si vous avez des bases en Python, vous pouvez intégrer l’API OpenAI Whisper à votre application. L’API Whisper fait partie de openai/openai-python, qui permet d’accéder à divers services et modèles OpenAI.
Approfondissez la création d’applications d’IA avec LangChain dans notre AI Code Along "Building Multimodal AI Applications with LangChain & the OpenAI API", où vous apprendrez à transcrire le contenu d’une vidéo YouTube avec la conversion parole‑en‑texte de Whisper, puis à utiliser GPT pour interroger le contenu.
Quels sont les bons cas d’usage de la transcription ?
- Transcrire des entretiens, réunions, cours et podcasts pour l’analyse, un accès facilité et l’archivage.
- Transcription en temps réel pour les sous-titres (YouTube), le sous-titrage (réunions Zoom) et la traduction de la parole.
- Transcription de la parole à des fins personnelles et professionnelles : notes vocales, messages, rappels, mémos et retours.
- Transcription au service des personnes malentendantes.
- Transcription pour les applications vocales nécessitant une saisie texte, par exemple les chatbots, assistants vocaux et la traduction de langues.
Quelles langues sont prises en charge ?
Les langues prises en charge pour la transcription et la traduction par l’API OpenAI Whisper sont :
Afrikaans, arabe, arménien, azéri, biélorusse, bosnien, bulgare, catalan, chinois, croate, tchèque, danois, néerlandais, anglais, estonien, finnois, français, galicien, allemand, grec, hébreu, hindi, hongrois, islandais, indonésien, italien, japonais, kannada, kazakh, coréen, letton, lituanien, macédonien, malais, marathe, maori, népalais, norvégien, persan, polonais, portugais, roumain, russe, serbe, slovaque, slovène, espagnol, swahili, suédois, tagalog, tamoul, thaï, turc, ukrainien, ourdou, vietnamien et gallois.
La répartition du taux d’erreur de mots (WER) sur le jeu de données Fleur avec le modèle large‑v2 est illustrée ci‑dessous, par langue. Plus le WER est faible, meilleure est la précision de la transcription.

Quels formats de fichiers sont pris en charge ?
Les formats pris en charge par l’API Whisper sont mp3, mp4, mpeg, mpga, m4a, wav et webm. Actuellement, la taille d’upload est limitée à 25 Mo. Pour des fichiers plus volumineux, vous pouvez les découper en segments avec pydub.
De la parole au texte avec l’API OpenAI
Dans cette section, nous utiliserons l’API OpenAI pour la transcription et la traduction. Nous verrons aussi différents formats de sortie.
Configuration
Vous pouvez installer l’API OpenAI pour Python avec pip.
pip install openai
Ensuite, générez des clés d’API depuis la page OpenAI API, en cliquant sur votre photo de profil puis sur « View API keys ». Tous les nouveaux comptes OpenAI incluent 5 $ de crédits offerts, vous n’avez donc pas à renseigner de carte bancaire.

Cliquez ensuite sur « Create new security key », nommez la clé, puis copiez la clé générée.

Configurer votre clé API via une variable d’environnement
Vous pouvez définir la clé API sur votre machine locale avec la commande ci‑dessous dans le terminal. Elle crée une variable d’environnement pour utiliser les services OpenAI.
export OPENAI_API_KEY='sk-...kMEM'
Configurer votre clé API avec le package OpenAI
Vous pouvez aussi définir la clé dans votre programme Python via openai.api_key. Cette méthode est déconseillée car elle expose votre clé publiquement.
import openai
openai.api_key = "sk-...kMEM"
Configurer facilement votre clé API dans DataLab
Si vous utilisez DataLab, cliquez sur Environment > l’icône « + », puis renseignez les noms et valeurs de vos variables d’environnement.

Ensuite, activez la variable d’environnement en cliquant sur le bouton Connect.

Jeu de données
Anglais
Nous utiliserons un court extrait de la Interview de Marvin Minsky sur l’IA sur YouTube, converti en audio. Le fichier marvin_minsky.mp3 dure une minute et pèse 970 Ko.
Espagnol
Nous avons découpé un court extrait de la vidéo YouTube en espagnol How Are People in Barcelona Using AI? pour créer le fichier Easy_spanish_315.mp3. Il pèse 509 Ko et dure 20 secondes.
Transcriptions en anglais
L’API de transcription est simple d’emploi. Il suffit de charger le fichier audio avec l’instruction with et de passer l’objet audio à openai.Audio.transcribe. La fonction nécessite uniquement le nom du modèle et l’objet audio, mais vous pouvez fournir l’argument language pour gagner en précision.
import openai
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(transcript)
of theories called Steps Toward Artificial Intelligence around 1970. That sort of charted several possible lines of research, which pretty much predicted what several communities of researchers would do in the next 20 years. Those predictions started to fall apart around--so that paper was 1970, roughly. By the late 1980s, the world had changed. It was interesting because when I started research in that general area, almost all of my students soon became professors.
Consultez le mémo OpenAI API Python pour réviser rapidement le rôle de chaque fonction. Ce mémo couvre les principales commandes de l’API OpenAI : génération de texte, transcription de la parole, génération d’images, embeddings, et plus encore.
Autres formats de sortie
Dans l’exemple précédent, nous avons demandé une sortie en texte brut, mais vous pouvez la changer en sous‑titres SubRip (response_format="srt"), sous‑titres WebVTT (response_format="vtt") ou métadonnées (response_format="verbose_json").
Dans nos exemples, nous passons response_format à « srt » pour obtenir des sous‑titres en sortie.
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript2 = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="srt",
language="en"
)
print(transcript2)
Comme on le voit, le texte de sortie est segmenté par horodatage.
1
00:00:00,000 --> 00:00:10,960
of theories called Steps Toward Artificial Intelligence around 1970.
2
00:00:10,960 --> 00:00:24,320
That sort of charted several possible lines of research, which pretty much predicted what
3
00:00:24,320 --> 00:00:31,920
several communities of researchers would do in the next 20 years.
4
00:00:31,920 --> 00:00:42,040
Those predictions started to fall apart around--so that paper was 1970, roughly.
5
00:00:42,040 --> 00:00:48,200
By the late 1980s, the world had changed.
6
00:00:48,200 --> 00:00:56,760
It was interesting because when I started research in that general area, almost all
7
00:00:56,760 --> 00:01:16,920
of my students soon became professors.
Transcription en espagnol
Whisper a été entraîné sur 98 langues, ce qui lui permet de transcrire dans plusieurs langues. Pour cela, il suffit de modifier l’argument language.
Dans notre cas, nous transcrivons un audio en espagnol, et nous définissons donc language="es"
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
transcript_es = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="es"
)
print(transcript_es)
¿Qué crees que es la inteligencia artificial? ¿Qué creo que es? Eh... no sé, no sé cómo describirlo. Algo que no es natural, obviamente. Eh... Pues la inteligencia artificial es mediante... mediante datos, eh... introducirle a un algoritmo.
Traductions de l’espagnol vers l’anglais
Vous pouvez uniquement traduire votre audio en une transcription anglaise.
Dans cet exemple, nous passons la fonction `translate` un audio en espagnol, qui sera traduit en anglais.
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
translate = openai.Audio.translate(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(translate)
What do you think artificial intelligence is? What do I think it is? I don't know how to describe it. Something that is not natural, obviously. Artificial intelligence is, through data, introduced to an algorithm.
Testez cet exemple dans ce workbook DataLab. Il contient les fichiers audio et le code source. Il vous suffit d’en faire une copie et de configurer une variable d’environnement pour l’exécuter.
Consultez aussi le tutoriel Using ChatGPT via the OpenAI API in Python. Il vous montrera comment utiliser l’API OpenAI pour les complétions de chat avec le modèle gpt-3.5-turbo.
Comment améliorer la performance de transcription ?
On peut améliorer la qualité de la transcription en utilisant l’argument prompt. En fournissant une transcription partielle dans prompt, vous aidez le modèle à saisir le style d’écriture, la ponctuation, la capitalisation et l’orthographe.
La principale limite du prompting actuel est le faible contrôle sur le texte généré. De plus, ce processus ne peut pas être entièrement automatisé, puisqu’il suppose une transcription partielle manuelle.
Et ensuite ?
Vous pouvez vous inspirer du code de ce tutoriel pour créer un assistant vocal, voire un J.A.R.V.I.S. façon Iron Man. Pour y parvenir, il vous reste à concevoir l’interface utilisateur et à combiner Whisper, la synthèse vocale et l’API ChatGPT, comme expliqué dans cette formation en direct.
Si vous découvrez ChatGPT, suivez le cours Introduction to ChatGPT pour apprendre les bonnes pratiques de rédaction de prompts et transformer ChatGPT en valeur métier. Et si vous souhaitez comprendre GPT-4 et le fonctionnement des modèles génératifs, lisez What is GPT-4 and Why Does it Matter? Vous trouverez aussi d’autres ressources ci‑dessous :
- [Webinaire] Guide du débutant sur le prompt engineering avec ChatGPT
- [Cheat sheet] Mémo ChatGPT pour les data scientists
- [Cheat sheet] The OpenAI API in Python
- [Podcast] ChatGPT et comment l’IA générative augmente les workflows
- Commencez à apprendre l’IA avec DataCamp