Béranger Thomas
PythonSpeech ProcessingWhisperXDiarizationPyannoteSpeechBrainOpen Source

StellaScript

StellaScript

Pipeline Python de transcription audio local, avec diarisation des locuteurs, utilisable en temps réel (micro) ou sur fichier. Fonctionne sans accès internet après téléchargement des modèles.

Contexte

Développé initialement dans le cadre des projets d’IA souveraine à la Métropole de Lyon, j’ai ensuite poursuivi le développement de StellaScript indépendamment. Il s’agit d’un pipeline de transcription audio de bout en bout, conçu pour garantir la confidentialité et la souveraineté des données.

Architecture

Le pipeline enchaîne plusieurs modules spécialisés :

  1. Enhancement audio (optionnel) : réduction de bruit via DeepFilterNet ou séparation de sources vocales via Demucs, pour améliorer la clarté de l’audio en entrée
  2. Détection d’activité vocale (VAD) avec Silero-VAD, pour isoler les segments de parole et éviter les hallucinations du modèle de transcription
  3. Diarisation des locuteurs — deux méthodes au choix :
    • pyannote (défaut) : pipeline end-to-end pyannote/speaker-diarization-3.1, robuste sur les chevauchements de parole
    • cluster : embeddings vocaux extraits par SpeechBrain (ECAPA-TDNN), puis regroupement par clustering agglomératif sur similarité cosine
  4. Transcription via WhisperX (implémentation optimisée de Whisper d’OpenAI), avec horodatage au niveau du bloc, du segment ou du mot selon le mode choisi

Le pipeline fonctionne en mode temps réel (entrée microphone) ou en mode fichier (.wav), avec un système de découpage intelligent des chunks pour équilibrer qualité et latence.

Caractéristiques

Impact

Ce projet démontre qu’il est possible de produire des transcriptions de qualité professionnelle — interviews, focus groups, présentations en direct — sans recourir à des services cloud, en répondant aux exigences de confidentialité de tout secteur sensible.

Voir la démo → GitHub ↗