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.