Skip to main content
Diarisation des locuteurs en temps réel à grande échelle

Diarisation des locuteurs en temps réel à grande échelle

July 20, 2025

9

min read

Ingénierie

Forme d’onde de diarisation des locuteurs
Figure 1 : séparation des flux audio en temps réel

Le problème du « cocktail party »

Les humains sont très doués pour se concentrer sur une seule voix dans une pièce bruyante. Les ordinateurs peinent.
Dans un appel VoIP monocanal (courant en téléphonie héritée), l’agent et le client sont mélangés dans un seul flux.

Pour construire un agent d’IA qui sait quand interrompre, vous devez savoir qui parle.

L’architecture

1. Embeddings au niveau de la frame

Nous découpons l’audio en fenêtres de 500 ms et les passons dans un encodeur léger (SpeechBrain ECAPA-TDNN).
Sortie : un vecteur à 192 dimensions qui décrit le « timbre » de ce fragment.

2. Architecture hybride

Nous avons délaissé la diarisation purement interne (Pyannote) au profit d’une approche hybride :

  1. Diarisation externe : nous ingérons des segments déjà diarisés depuis des API à haut débit (comme Google speech-to-text ou OpenAI).
  2. Vérification interne : nous exécutons localement notre vérification ECAPA-TDNN de 192 dimensions pour « revérifier » et lier les identités à des profils vocaux connus.

3. Contraintes de latence

Les API cloud résolvent la carte du « qui a parlé et quand ? ».
IdentityCall se charge de la vérification « est-ce bien l’agent X ? ».

  • Budget : 50 ms de temps de traitement par frame pour la vérification.
  • Optimisation : nous exécutons l’encodeur dans ONNX Runtime sur GPU, quantifié en INT8.

Gérer les chevauchements

La partie la plus difficile, c’est la « parole superposée » (environ 10-15 % d’un appel).
Les modèles standard choisissent le locuteur « le plus fort ».
Nous utilisons la diarisation multi-étiquette, qui attribue deux étiquettes de locuteur à un même intervalle temporel si l’embedding suggère un mélange.

Conclusion

Une bonne diarisation est le préalable d’une bonne transcription. Si vous attribuez le « Bonjour » de l’agent au client, tout votre contexte démarre faussé.

Tags:

DiarisationTraitement audioMachine LearningTemps réel