VoxLock : Extraction du locuteur cible pour les agents vocaux sans étape d'enrôlement (Target-Speaker Extraction for Voice Agents Without an Enrollment Step)

Les transcripteurs des agents vocaux retranscrivent tout ce que disent les personnes situées près du microphone. VoxLock est un modèle causal d'extraction du locuteur cible de 27 M de paramètres, affiné à partir de la base de référence REAL-TSE publique sur un seul GPU : il extrait un échantillon de la voix de l'appelant directement depuis l'appel (par défaut les 15 premières secondes, ou après 3 secondes en mode streaming), puis ne conserve que la voix de cette personne en supprimant les voix des tiers, avant de la transmettre à la reconnaissance vocale.

Les transcripteurs des agents vocaux retranscrivent tout ce que disent les personnes situées près du microphone. VoxLock est un modèle causal d'extraction du locuteur cible de 27 M de paramètres, affiné à partir de la base de référence REAL-TSE publique sur un seul GPU : il extrait un échantillon de la voix de l'appelant directement depuis l'appel (par défaut les 15 premières secondes, ou après 3 secondes en mode streaming), puis ne conserve que la voix de cette personne en supprimant les voix des tiers, avant de la transmettre à la reconnaissance vocale.

J'aime 3 · Étoiles GitHub 88

Raisons

  • Les auteurs affirment avoir réduit le taux d'erreur de mot (WER) de 23.21% à 4.95% sur les 265 enregistrements réels de Krisp, sans différence significative par rapport au meilleur filtrage payant de Krisp ; sur les fenêtres de réunion AMI non utilisées lors de l'entraînement, le WER est passé de 42.95% à 10.63%.
  • Léger et temps réel : le modèle 8 bits occupe 77% sur un seul thread CPU pour traiter un appel, avec une latence algorithmique de 24 ms ; ONNX propose plusieurs précisions : int8 / fp16 / fp32.
  • Intégration facile : pip install voxlock, inclut un filtre audio Pipecat et un plugin LiveKit Agents, intégré nativement dans sherpa-onnx à partir de la version 2.0.1 ; le modèle, le code et les scores par fichier sont ouverts sous licence Apache-2.0.

Utilisation

  • Ligne de commande : pip install voxlock → voxlock call.wav -o caller.wav (le modèle est téléchargé automatiquement lors de la première exécution).
  • Streaming Python : vl = voxlock.VoxLock(threads=1); stream = vl.live(), puis stream.push(chunk) pour chaque segment audio reçu à 16 kHz, et stream.flush() à la fin ; si un échantillon de l'appelant est déjà disponible, vl.stream(sample) permet d'isoler la voix dès le premier segment.
  • Agents vocaux : après pip install "voxlock[pipecat]", définissez VoxLockFilter() comme audio_in_filter ; pour LiveKit, utilisez "voxlock[livekit]" et passez-le comme noise_cancellation.
  • Essai dans le navigateur : Hugging Face Space arbazsiddiqui/voxlock.

Risques

  • Les données d'entraînement sont en anglais (LibriSpeech, AMI), la fiche modèle indique l'anglais comme langue, et les performances pour le chinois et d'autres langues ne sont pas rapportées.
  • Les premières secondes reposent sur la détection automatique de l'appelant au début de l'appel ; si une autre personne parle au début, le modèle peut se verrouiller sur la mauvaise voix, ce qui peut être évité en passant manuellement un échantillon ; la comparaison avec les produits commerciaux a été effectuée par les auteurs eux-mêmes.
  • Projet d'un auteur individuel, les scripts d'évaluation et les résultats par fichier sont disponibles dans le dossier bench/ du dépôt, permettant une vérification indépendante.

Ouvrir · Code · Page Hugging Face

Hugging Face Daily Papers

Parcourir les dernières actualités IA