Falcon : Extraction efficace et en temps réel de la voix cible audiovisuelle pour des scènes acoustiques réelles (Efficient Streaming Audio-Visual Target Speaker Extraction for Real-World Acoustic Scenes)

En entrée, un audio mélangé contenant plusieurs locuteurs, du bruit et de la réverbération, ainsi que l'image des lèvres du locuteur cible. Le modèle ne sort que la voix de cette personne, de manière causale, permettant une sortie en temps réel pendant l'écoute. Le séparateur effectue une séparation multi-échelle temps-fréquence en une seule passe encodeur-décodeur, contrairement aux solutions légères précédentes qui font appel de manière répétée à de petits séparateurs. Pendant l'entraînement, une « fonction de perte de contraste des locuteurs dans l'espace de l'encodeur » a été ajoutée pour supprimer spécifiquement les interférences des voix proches, sans surcoût supplémentaire lors de l'inférence. Les auteurs publient également le benchmark RealSSA : les scènes simulées contiennent 1–5 interférences en champ proche et 10–15 interférences supplémentaires en champ lointain, ainsi qu'un ensemble de test basé sur des enregistrements réels.

En entrée, un audio mélangé contenant plusieurs locuteurs, du bruit et de la réverbération, ainsi que l'image des lèvres du locuteur cible. Le modèle ne sort que la voix de cette personne, de manière causale, permettant une sortie en temps réel pendant l'écoute. Le séparateur effectue une séparation multi-échelle temps-fréquence en une seule passe encodeur-décodeur, contrairement aux solutions légères précédentes qui font appel de manière répétée à de petits séparateurs. Pendant l'entraînement, une « fonction de perte de contraste des locuteurs dans l'espace de l'encodeur » a été ajoutée pour supprimer spécifiquement les interférences des voix proches, sans surcoût supplémentaire lors de l'inférence. Les auteurs publient également le benchmark RealSSA : les scènes simulées contiennent 1–5 interférences en champ proche et 10–15 interférences supplémentaires en champ lointain, ainsi qu'un ensemble de test basé sur des enregistrements réels.

J'aime 149 · Étoiles du code 20

Raisons

  • Tout est inclus : code d'entraînement / d'évaluation, deux jeux de poids pour Falcon et Falcon-Big (sur Hugging Face : JusperLee/Falcon, JusperLee/Falcon-Big), une démo en ligne sur Hugging Face ZeroGPU, ainsi qu'une démo locale en temps réel Falcon Studio. Le code et les poids sont sous licence Apache-2.0.
  • Les auteurs affirment que, comparé à AV-TFGridNet causal, le modèle a 91.9% de paramètres en moins, une charge de calcul réduite d'un facteur 20.2 et une latence GPU réduite d'un facteur 11.1. Selon la paper, le nombre de paramètres entraînables est de 0.5M (pour un total de 11.72M avec l'encodeur de lecture labiale gelé).
  • Les auteurs affirment que le modèle est le meilleur parmi les méthodes causales sur RealSSA-Sim, LRS2-2Mix, LRS3-2Mix et VoxCeleb2-2Mix. Le README fournit un tableau comparatif complet avec neuf méthodes de référence.
  • Prêt pour la production : Falcon Studio suit les lèvres via MediaPipe dans le navigateur, envoie la voix séparée aux écouteurs ou via une carte son virtuelle vers Zoom / Tencent Meeting. Le README indique qu'avec une fenêtre de 2 secondes et une nouvelle sortie audio toutes les 0.5 secondes, le traitement d'une fenêtre prend environ 0.12 secondes sur un Apple M5 Pro via Metal.

Utilisation

  • Expérience la plus rapide : ouvrez le lien Hugging Face Space du README (JusperLee/Falcon-Studio), enregistrez un clip d'une durée maximale de 60 secondes dans le navigateur, puis lancez la séparation.
  • Temps réel local : git clone github.com/JusperLee/Falcon, pip install -r studio/requirements.txt (Python 3.10–3.12, supportant Apple Metal / NVIDIA CUDA / CPU). Sur macOS, double-cliquez sur studio/Start Falcon.command ou exécutez studio/scripts/launch.sh ; sur Linux + NVIDIA, ajoutez --device cuda. Les poids sont téléchargés automatiquement depuis Hugging Face lors de la première exécution.
  • Traitement hors ligne d'un seul fichier : convertissez en mix.wav mono à 16 kHz avec ffmpeg, puis exécutez python infer_file.py --audio mix.wav --mouth mouth.npy --out target.wav --model JusperLee/Falcon. mouth.npy contient les images des lèvres en niveaux de gris de la personne cible, à 25 fps et de taille 96×96. L'interface Python FalconRuntime.from_pretrained est également disponible.
  • Entraînement : organisez les données selon la structure de répertoires LRS2/LRS3, créez les index avec les scripts dans DataPreProcess, puis exécutez python audio_train.py --conf_dir configs/Falcon.yml.

Risques

  • Nécessite impérativement une vue frontale / des lèvres du locuteur cible ; inutilisable en audio pur. Pour l'inférence hors ligne, il faut préparer soi-même la séquence d'images des lèvres.
  • La solution de carte son virtuelle pour l'intégration aux réunions (BlackHole) est spécifique à macOS ; sur d'autres systèmes, il faut trouver sa propre méthode de routage. Le README ne fournit pas de documentation complète pour une exécution temps réel sur CPU.
  • Les deux jeux de données RealSSA nécessitent une approbation manuelle. RealSSA-Sim est sous licence CC BY-NC-ND 4.0. Les fichiers multi-canaux publiés doivent être modifiés pour être compatibles avec le chargeur d'entraînement mono du dépôt. Les poids du backbone visuel de lecture labiale nécessaires à l'entraînement ne sont pas encore liés dans le README.
  • Toutes les métriques de qualité et d'efficacité sont rapportées par les auteurs ; sans avoir écouté les démos audio, aucune évaluation de la qualité perçue n'est fournie.

Éditeur : Contrairement à la réduction de bruit classique, ce système cible spécifiquement la voix de « la personne visible à l'écran », en supprimant également les voix des autres personnes à proximité. Idéal pour les réunions, les interviews et les applications d'aide auditive.

Ouvrir · Code · Page Hugging Face Paper

Hugging Face Daily Papers

Parcourir les dernières actualités IA