GroovyMorning_RLAC

Synchronisation temporelle et recalibrage : Le défi du flux audio continu entre segmenteur de chroniques et enregistreur

Le système RLAC (Real-time Live Audio Chronicle) de GroovyMorning repose sur une architecture distribuée où deux environnements collaborent : un backend Java (Gradle) pour l’enregistrement et un serveur Python (FastAPI) pour l’intelligence artificielle. Le maintien d’une synchronisation parfaite à la seconde près sur un flux fonctionnant 24h/24 constitue le défi principal.

L’architecture “Master & Abonnés”

Le coeur du système d’enregistrement (situé dans 1.RLAC-AudioRecorder) repose sur une approche de flux master :

Le problème de la latence de détection

Lorsqu’une tâche de capture de chronique écoute le flux, elle reçoit les notifications de début et de fin de la part de l’IA (le serveur Python). Cependant, entre le début réel de la chronique et sa confirmation par l’IA, plusieurs secondes peuvent s’écouler (latence de transcription, analyse LLM, etc.).

Pour résoudre ce décalage, une stratégie de correction rétroactive est employée :

  1. Hard Linking : Pour éviter les copies de fichiers coûteuses, des liens physiques sont créés entre les segments du “Master” et le dossier spécifique de la chronique.
  2. Accumulation : Dès qu’un début de chronique est suspecté, le système accumule les segments.
  3. Tronquage a posteriori : Une fois le signal de fin envoyé par l’IA avec la realDuration exacte, l’heure de fin réelle est recalculée par le serveur Java. Les segments excédentaires, liés par erreur à cause de la latence, sont alors instantanément supprimés.

schema-decoupage-flux-enregistrement.png

Avantages de la méthode

Ce mécanisme de recalibrage est l’élément clé permettant de transformer une détection d’IA parfois imprécise ou tardive en un fichier audio parfaitement segmenté pour l’utilisateur final.