Tout chercheur travaillant à partir d’entretiens sait combien la transcription est une activité fastidieuse et chronophage… ou onéreuse. Pour une thèse de doctorat, l’activité représente des mois de travail. Ou plutôt : représentait, car l’automatisation de cette activité est désormais une option viable et sérieuse.
Deux enjeux : l’efficacité et la confidentialité
Si la reconnaissance automatique de la parole, notamment utilisé par les assistants vocaux, est une technologie mature depuis quelques années, la transcription automatique d’entretiens entiers n’était pas au point jusqu’à un passé récent. Élise Tancoigne a proposé un état des lieux très complet du secteur dans une vidéo de juin 2020, traitant de huit solutions différentes allant de YouTube aux logiciels dédiés aux professionnels. Pour avoir testé à l’époque plusieurs de ces solutions ainsi que celle de YobiYoba (fondé sur le logiciel VoxSigma), et pour avoir consulté des résultats obtenus par Trint il y a encore quelques mois, force m’a été de constater qu’aucune solution ne permettait sérieusement de remplacer l’efficacité d’un transcripteur humain pour des entretiens, et encore moins avec des conditions d’enregistrement imparfaites – et elles le sont très souvent pour les chercheurs en sciences sociales amenés à rencontrer des enquêtés dans un café ou un autre lieu bruyant.
La protection de la vie privée des enquêtés soulève quant à elle d’importants problèmes légaux et éthiques, même si la recherche scientifique est soumise à un cadre plus ouvert (par exemple, un chercheur peut collecter des données dites sensibles comme l’orientation sexuelle ou politique si son sujet le requière). Quelle que soit sa thématique de travail, un chercheur est presque forcément amené à traiter des données personnelles de ses enquêtés en entretien, ce qui engage en principe à des procédures précises pour le traitement et la conservation de ces données, et pour la collecte d’un consentement « libre, spécifique, éclairé et univoque », selon le RGPD.
Si ce consentement est généralement acquis et respecté pour un traitement par le chercheur lui-même, utilisant idéalement un enregistreur de son laboratoire et manipulant les données sur son ordinateur professionnel a priori bien sécurisé par son institution, le recours à des solutions externes de transcription automatique est une toute autre paire de manches. Elle implique en effet le transfert de l’enregistrement audio à un tiers, souvent une entreprise privée, et donc à la fois la dissémination des données personnelles collectées et une perte de contrôle sur ce qui peut en être fait – typiquement, les données audio collectées par des services comme YouTube ou l’outil de transcription de Word peuvent être utilisées pour auditer le service ou pour entraîner des modèles d’intelligence artificielle. L’utilisation de ces services n’est alors envisageable qu’au prix de l’anonymisation du fichier audio, dans lequel toute information identifiante doit être caviardée avec un logiciel de montage.
Enfin une martingale ! La transcription en local avec Whisper
Dans ma thèse de doctorat à propos des enceintes connectées, j’avais questionné le statut de « martingale » du traitement local des captats audio par les enceintes connectées (voir p. 250). La martingale est à comprendre ici comme cette croyance de l’amateur de jeux de hasard qui espère trouver une combine pour gagner à tous les coups – croyance qui est bien sûr, et presque par définition, illusoire. D’une certaine manière, cette croyance est aussi partagée en informatique quant aux possibilités offertes par le privacy by design, grâce auquel on espère permettre aux entreprises du numérique de fournir un service hautement rentable pour elles et finement personnalisé pour leurs utilisateurs, le tout sans compromettre la vie privée de ces derniers. Le plus souvent, seules les deux premières conditions sont respectées. Dans le cas du traitement local des données par les enceintes connectées, j’avais conclu que le service rendu était inférieur du fait des limitations matérielles et logicielles des enceintes connectées – c’est ici la personnalisation pour les utilisateurs qui pêchait.
Avec les derniers développements du machine learning et la mise à disposition de modèles performants par les principaux acteurs du secteur, la situation a complètement changé. L’utilisation de Faster Whisper permet de s’appuyer sur le modèle Whisper entraîné par Open AI (la fondation derrière Chat GPT) pour :
- Transcrire automatiquement, de façon efficace et rapide, des fichiers audios, même avec une qualité d’enregistrement moyenne ;
- Traiter les fichiers localement sans aucun transfert via Internet, ce qui garantit la protection de la vie privée des enquêtés ;
- Le tout en utilisant des logiciels libres, dont le code est vérifiable et fourni gracieusement (mais un soutien financier des projets est généralement possible) ;
- Et ce, dans plusieurs dizaines de langues possibles, essentiellement européennes, mais pas seulement.
En somme, la martingale de la transcription ! Certains laboratoires et équipes commencent d’ailleurs à proposer la solution, comme la MSH Lyon Saint-Étienne dans le cadre de ses ateliers “Café des données” à la rentrée 2024-2025.
Vous trouverez ci-dessous un tutoriel imparfait mais qui permettra au doctorant ou au chercheur curieux de vérifier avec ses propres enregistrements la preuve de concept d’une transcription automatique efficace, locale, gratuite et multilingue. Quelques limites possibles tout de même à partir de mes expérimentations :
- La diarisation n’est, à ma connaissance, pas encore possible à partir de Whisper seul. La diarisation désigne le fait d’attribuer à chaque locuteur ses répliques dans la transcription finale ;
- L’horodatage et plus largement la mise en forme des transcriptions ne correspond pas forcément à la norme souhaitée par le chercheur, un nettoyage des données obtenues est souvent requis ;
- La vitesse de transcription dépend de la puissance de l’ordinateur utilisé. Les meilleurs résultats sont obtenus avec les machines équipées d’une carte graphique compatible avec l’API CUDA de nVidia ;
- En attendant des interfaces plus conviviales, il faut un peu mettre les mains dans le cambouis, et notamment être familier des lignes de commande.
Tutoriel pour la transcription automatique d’entretiens avec Whisper-XXL
Télécharger sur ce lien le logiciel Whisper-XXL, qui est un programme contenant Whisper et plusieurs autres bibliothèques logicielles dans un fichier .exe facile à utiliser sur Windows. Extraire le dossier contenant Whisper-XXL vers un dossier facile d’accès pour l’utilisateur.
L’exécutable faster-whisper-xxl.exe présent dans le dossier s’utilise exclusivement en ligne de commande, il est inutile de cliquer directement dessus. Faire un clic-droit dans un espace vide du dossier contenant l’exécutable puis cliquer sur “Ouvrir dans un terminal”.
.\faster-whisper-xxl.exe '"C:\Users\[votre_nom_utilisateur_Windows]\Desktop\exemple.mp3"' --language "fr" --model "large-v2"
Insérer la ligne de commande adéquate en s’appuyant sur le modèle suivant pour
1) indiquer à Windows d’utiliser Whisper XXL,
2) pour le fichier “exemple.mp3”, ici présent sur le bureau Windows de l’utilisateur (remplacer par le nom de votre propre fichier dans votre propre ligne de commande),
3) afin de transcrire en français,
4) en utilisant la version “large-v2” du modèle de langage Whisper (il s’agit du modèle le plus lourd mais aussi le plus efficace développé par Open AI ; le programme devrait vous proposer de la télécharger lors de votre première utilisation).
En principe, vous allez commencer à voir s’afficher dans le terminal Windows la transcription de votre fichier audio. Une fois terminée, le programme l’enregistre dans le dossier contenant l’exécutable de Whisper XXL, et ce dans un fichier du même nom que le fichier audio source mais avec une extension .srt (dans notre cas : exemple.srt). Ce fichier .srt s’ouvre facilement avec Bloc-note ou un autre programme équivalent comme Notepad++. Pour information, le format .srt est le format standard pour le sous-titrage des pistes vidéo et audio.
Afin d’obtenir un fichier texte sans l’horodatage peu commode des fichiers .srt, j’ai demandé à ChatGPT de rédiger le script en Python suivant. Il ouvre une petite fenêtre de dialogue pour sélectionner le fichier .srt à nettoyer et le transforme en fichier .txt contenant le seul texte de la transcription :
import re
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
def nettoyer_srt(fichier_entrée, fichier_sortie):
with open(fichier_entrée, 'r', encoding='utf-8') as fichier:
lignes = fichier.readlines()
texte_nettoyé = []
for ligne in lignes:
# Supprimer les numéros de ligne et les timestamps
if re.match(r'^\d+$', ligne.strip()) or re.match(r'^\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}$', ligne.strip()):
continue
# Ajouter les lignes de texte non vides
if ligne.strip():
texte_nettoyé.append(ligne.strip())
# Écrire le texte nettoyé dans le fichier de sortie
with open(fichier_sortie, 'w', encoding='utf-8') as fichier:
fichier.write('\n'.join(texte_nettoyé))
def sélectionner_fichier():
# Ouvrir une boîte de dialogue pour sélectionner le fichier .srt
fichier_entrée = filedialog.askopenfilename(title="Sélectionner un fichier SRT", filetypes=[("Fichiers SRT", "*.srt")])
if fichier_entrée:
# Définir le nom du fichier de sortie
fichier_sortie = filedialog.asksaveasfilename(title="Enregistrer le fichier nettoyé sous", defaultextension=".txt", filetypes=[("Fichiers texte", "*.txt")])
if fichier_sortie:
# Nettoyer le fichier sélectionné
nettoyer_srt(fichier_entrée, fichier_sortie)
messagebox.showinfo("Succès", f"Le fichier a été nettoyé et sauvegardé sous {fichier_sortie}")
# Créer l'interface graphique
racine = tk.Tk()
racine.title("Nettoyeur de fichiers SRT")
# Ajouter un bouton pour sélectionner le fichier
bouton_sélectionner = tk.Button(racine, text="Sélectionner un fichier SRT", command=sélectionner_fichier)
bouton_sélectionner.pack(pady=20)
# Lancer la boucle principale de l'interface graphique
racine.mainloop()
Conclusion
Ce billet vise avant tout à permettre à tout un chacun de prendre la mesure des avancées considérables en matière de transcription automatique. Le tutoriel proposé relève davantage d’un compte-rendu de tâtonnements – tâtonnements qui m’ont néanmoins permis la transcription de quelques dizaines d’heures d’entretien. Un utilisateur habitué à Python gagnera sans aucun doute à intégrer directement Whisper à son environnement Python, ou à utiliser des versions alternatives intégrant nativement des options de diarisation ou de mise en forme adaptée à son usage. En août 2024, de multiples sites web proposent d’ailleurs des services en ligne qui, sous le capot, recourent sans modification ou presque aux intégrations logicielles évoquées dans cet article. S’ils proposent des interfaces graphiquement plus conviviales, ils n’en restent pas moins incompatibles avec les exigences réglementaires en matière de traitement des données – sauf à obtenir le consentement préalable des enquêtés.
Les laboratoires de recherche qui n’auraient pas déjà pris cette initiative gagneraient à mettre en place de telles solutions logicielles sur leurs serveurs à destination de leurs membres, en attendant que des versions standalone puissent être facilement installées sur les ordinateurs des chercheurs eux-mêmes.