Comment automatiser la transcription audio en Python et Node.js (tutoriel 2026)

Un script Python ouvre le fichier audio, le confie à un modèle de reconnaissance de la parole, puis récupère le texte.
Le premier choix à faire : l'audio peut-il quitter votre ordinateur ? Une API cloud évite l'installation, mais le son part chez un fournisseur dont il faut vérifier la conservation des données. Un modèle local garde le son chez vous, à condition d'avoir assez de puissance de calcul.
Relisez toujours la transcription : la reconnaissance peut se tromper sur les noms propres et le vocabulaire métier.
Un entretien d'une heure peut prendre plusieurs heures à retaper. Python permet de le transformer en texte automatiquement.
Reste à savoir si ce son doit quitter votre ordinateur, et comment obtenir un texte fiable. Cet article vous montre comment écrire ce script, choisir la bonne solution et repérer les points de vigilance.
Qu'est-ce qu'une transcription automatique en Python et à quoi sert-elle ?
La reconnaissance automatique de la parole, telle qu'expliquée par le glossaire du NIST, transforme une voix entendue en texte écrit. C'est ce qui permet de récupérer le contenu d'un entretien ou d'une réunion sans le retaper.
En Python, votre programme sert d'intermédiaire. Il ouvre le fichier audio, l'envoie à un service distant ou à un modèle installé sur votre ordinateur, puis récupère le texte. Pour transformer un audio en texte, c'est cette chaîne qu'il faut maîtriser en suivant nos conseils pour convertir vos fichiers.
Pour un chercheur, un responsable ou un étudiant, l'intérêt est simple : retrouver ce qui a été dit sans tout retaper. Le texte obtenu peut ensuite être corrigé, recherché par mot-clé ou résumé.
Python relie trois éléments : le fichier audio, le modèle qui reconnaît la parole et le texte final. Votre script ouvre le fichier, le donne au modèle, puis récupère les mots reçus.
API cloud ou modèle local : lequel vous faut-il ?
Le critère principal tient en une question : l'audio doit-il quitter votre ordinateur ? Avec une API cloud, le fichier est envoyé à un service distant. Vous n'installez rien, mais le son passe chez un fournisseur.
Avec un modèle local, le son reste chez vous. En contrepartie, il faut installer le logiciel et avoir assez de mémoire et de puissance de calcul. Sa licence ne dit pas où les données sont traitées.
Pour comparer d'autres outils, consultez le meilleur logiciel de transcription audio en texte.
Transcrire un fichier audio avec Python
Avec l'API OpenAI
Installez d'abord la bibliothèque avec pip install openai. Définissez ensuite la clé API dans l'environnement du programme, avant de lancer le script : sans elle, l'appel échoue.
Le modèle gpt-transcribe sert aux fichiers déjà enregistrés : MP3, MP4, M4A, WAV et WebM, jusqu'à 25 Mo par fichier. Pour choisir entre cloud et machine locale, lisez comment traduire un audio en texte avec précision.
La réponse contient le texte et la langue détectée, à lire dans cet ordre :
Le texte transcrit, affiché tel quel. C'est lui que vous reprenez pour la suite.
La langue détectée, sous forme de code court, par exemple
frpour le français.Une liste de langues vide. Elle apparaît quand l'API ne reconnaît pas la langue avec assez de certitude.
Les paramètres
prompt,keywordsetlanguagesdonnent du contexte, mais ils ne garantissent pas que chaque mot sera reconnu correctement.
En local avec faster-whisper
Voici comment transcrire un fichier sur votre machine, sans rien envoyer à un tiers :
Installez la bibliothèque avec
pip install faster-whisper.Réglez le modèle
smallavecdevice="cpu"etcompute_type="int8", ce qui convient à un processeur.Transcrivez votre fichier MP3 en français, puis rassemblez les segments renvoyés pour obtenir un texte continu.
Comptez environ 2 minutes 4 secondes pour une heure d'audio sur un Intel Xeon Gold 6226R à 8 cœurs, avec le réglage
int8.
Préparer le fichier et traiter le texte obtenu
Avant l'envoi, vérifiez la taille du fichier : l'API OpenAI accepte 25 Mo au maximum. Au-delà, compressez l'audio ou découpez-le en morceaux de 25 Mo au plus.
Pour découper, installez PyDub avec pip install pydub. Attention : une coupe à durée fixe ne garantit pas qu'elle tombe entre deux phrases. Relisez donc les points de coupe, sachant que PyDub compte le temps en millisecondes.
Avec vad_filter=True, le filtre VAD de faster-whisper repère les passages parlés et retire par défaut les silences de plus de 2 secondes. Vous gardez ainsi la parole, sans les longs blancs qui alourdissent le texte.
Relisez ensuite votre transcription horodatée avant de l'exploiter : la reconnaissance peut confondre noms propres et vocabulaire métier, même avec des mots-clés ou du contexte fournis.
Transcrire un micro ou un flux en direct
Un enregistrement déjà fait est un fichier qu'on envoie d'un bloc. Un son qui arrive en direct, depuis un micro, un appel ou un flux, se traite autrement. Il faut alors un modèle conçu pour le temps réel.
Pour ce cas, le modèle temps réel recommandé est gpt-live-transcribe. Le texte apparaît pendant que la personne parle. Une transcription de fichier peut afficher du texte partiel, mais elle ne crée pas de session en direct.
Un micro se lit par blocs de quelques secondes. Le code qui capture le son s'écrit à part, par exemple avec sounddevice (pip install sounddevice).
Chaque bloc part vers la session, qui renvoie d'abord des fragments partiels, puis un résultat final.
Les fragments partiels changent pendant que la personne parle : ne les gardez pas tels quels. La session ne dit pas qui parle : pour cela, comparez les outils de transcription IA souverains et leurs contraintes techniques.
Confidentialité, sous-titres et locuteurs : les points à vérifier
Avant d'envoyer un enregistrement, vérifiez quelles données le service garde : l'audio, le texte et la date ou l'heure. Demandez aussi combien de temps elles restent et si elles servent à entraîner ses modèles.
Chez OpenAI, les journaux de surveillance des abus sont conservés 30 jours au maximum, sauf exceptions prévues. Pour un son sensible, vérifiez aussi le lieu d'hébergement et les conditions de suppression avant l'envoi.
Pour une application, commencez par l'API Vook.ai pour développeurs, puis comparez ces points :
Pour savoir qui parle, le format diarized_json renvoie un segment par passage, avec les champs speaker, start, end et text.
Pour des sous-titres, le texte partiel apparaît pendant le traitement, et le texte complet arrive avec l'événement final.
Pour un son sensible, Vook.ai est hébergé en Europe et chiffre les données au repos.
Les modèles whisper-1 et trois autres s'arrêteront le 26 février 2027 : remplacez-les dans votre code avant cette date.
Retenez deux points avant de coder. Si l'audio peut quitter votre ordinateur, une API cloud suffit, à condition de vérifier la conservation des données. S'il doit rester chez vous, prenez un modèle local comme faster-whisper.
Votre prochain pas : choisissez la solution selon la sensibilité de l'audio, puis lancez le script sur un petit fichier test. Relisez le texte obtenu avant de l'exploiter.
FAQ
The OpenAI transcription API accepts files up to 25 MB maximum. The supported formats are MP3, MP4, M4A, WAV and WebM.
An uncompressed WAV recording can quickly exceed this limit, whereas a compressed MP3 or M4A file usually stays below it. If your file is too large, you can compress the audio or split it into chunks of 25 MB or less before sending.
Yes, faster-whisper works without an NVIDIA GPU. You can run it on your CPU by setting device="cpu" when creating the WhisperModel, which keeps all audio processing on your own machine.
Processing takes longer than with a GPU — for reference, transcribing one hour of audio on an Intel Xeon Gold 6226R at 8 cores with the int8 setting takes around 2 minutes and 4 seconds. A GPU with CUDA and cuDNN will significantly speed things up if available.
The key question is whether your audio can leave your computer. A cloud API requires no local installation and works with just an internet connection, but the audio is sent to a third-party provider whose data retention policies you need to verify.
A local model such as faster-whisper keeps the audio entirely on your machine, but requires enough memory and computing power to run. For sensitive recordings, a local model is the safer choice.
Yes, using the diarized_json format, each text segment includes a speaker field along with start, end and text fields, indicating which speaker produced each passage.
However, the field provides a label rather than a name — you will need to manually match each label to the corresponding person. Always review the transcription afterwards, as automatic recognition can make mistakes on proper nouns and technical vocabulary.