Tutoriel

Statut éditorial : En attente de relecture

Transcrire un fichier audio en Python avec Whisper

Installer Whisper, préparer un fichier audio, lancer une transcription française et produire un résultat horodaté exploitable.

Classification du contenu

Types

  • Speech et voix

Technologies

Niveau
Débutant
Publié le
24 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
24 octobre 2026

Whisper permet de transformer un enregistrement en texte sans envoyer le fichier à un service tiers. Ce tutoriel réalise une transcription locale, conserve les horodatages et explique les réglages qui influencent vitesse et qualité.

Prérequis

Créez un environnement isolé :

~~~bash python -m venv .venv source .venv/bin/activate pip install -U openai-whisper ffmpeg -version ~~~

Sous Windows, activez l’environnement avec ".venv\\Scripts\\activate".

Première transcription

Créez "transcribe.py" :

~~~python import whisper

model = whisper.load_model("small") result = model.transcribe( "audio.mp3", language="fr", task="transcribe", fp16=False, )

print(result["text"].strip()) ~~~

Puis lancez "python transcribe.py". Le premier démarrage télécharge les poids. "fp16=False" évite une erreur fréquente sur CPU ; sur un GPU CUDA compatible, retirez ce paramètre pour profiter de la demi-précision.

Exporter les segments horodatés

Le texte global ne suffit pas pour des sous-titres ou une recherche dans l’audio. Le résultat contient aussi des segments :

~~~python import json import whisper

model = whisper.load_model("small") result = model.transcribe("audio.mp3", language="fr", fp16=False)

segments = [ { "start": round(segment["start"], 2), "end": round(segment["end"], 2), "text": segment["text"].strip(), } for segment in result["segments"] ]

with open("transcription.json", "w", encoding="utf-8") as file: json.dump({"language": result["language"], "segments": segments}, file, ensure_ascii=False, indent=2) ~~~

Choisir le modèle

"tiny" et "base" privilégient la vitesse. "small" est un bon point de départ en français. "medium" et "large" demandent davantage de mémoire mais résistent mieux aux accents, au bruit et au vocabulaire spécialisé. Mesurez sur vos propres fichiers : un modèle plus lourd n’améliore pas forcément un son saturé.

Pour une longue durée, normalisez d’abord le média :

~~~bash ffmpeg -i audio.mp3 -ac 1 -ar 16000 audio-16k.wav ~~~

Vérifier la qualité

Constituez un extrait de référence corrigé manuellement, puis mesurez le taux d’erreur sur les mots. Contrôlez séparément les noms propres, nombres, acronymes et changements de locuteur. Whisper ne réalise pas à lui seul une diarisation fiable : ajoutez un composant spécialisé si vous devez identifier les intervenants.

Passage en production

Ne chargez pas le modèle à chaque requête : initialisez-le au démarrage d’un worker. Limitez la taille des fichiers, vérifiez leur type réel, supprimez les originaux selon votre politique de rétention et placez les traitements longs dans une file de tâches. Surveillez durée audio, temps de calcul, mémoire GPU et taux d’échec.

FAQ

Peut-on forcer le français ?

Oui, avec "language="fr"". Cela évite une détection inutile lorsque la langue est connue.

Whisper fonctionne-t-il en temps réel ?

Le modèle travaille naturellement par fenêtres. Un flux quasi temps réel exige un découpage, un tampon et une stratégie de fusion des segments.

Sources utilisées