WhisperX avec diarisation
Exécutez WhisperX pour une transcription vocale rapide avec horodatage au niveau du mot et diarisation des locuteurs sur les GPU Clore.ai.
WhisperX étend Whisper d'OpenAI avec trois améliorations essentielles : horodatages au niveau du mot via un alignement forcé des phonèmes, diarisation des locuteurs en utilisant pyannote.audio, et jusqu'à 70× la vitesse en temps réel grâce à l'inférence par lots avec faster-whisper. C'est l'outil de référence pour les pipelines de transcription de production qui ont besoin d'un minutage précis et d'une identification des locuteurs.
GitHub : m-bain/whisperX PyPI : whisperx Licence : BSD-4-Clause Article : arxiv.org/abs/2303.00747
Caractéristiques clés
Horodatages au niveau du mot — précision de ±50 ms via l'alignement forcé wav2vec2 (contre ±500 ms dans Whisper standard)
Diarisation des locuteurs — identifiez qui a dit quoi via pyannote.audio 3.1
Inférence par lots — jusqu'à 70× la vitesse temps réel sur RTX 4090
Préfiltrage VAD — Silero VAD supprime le silence avant la transcription
Tous les modèles Whisper — de tiny à large-v3-turbo
Plusieurs formats de sortie — JSON, SRT, VTT, TXT, TSV
Détection automatique de la langue — ou forcez une langue spécifique pour un traitement plus rapide
Exigences
GPU
RTX 3060 12 GB
RTX 4090 24 Go
VRAM
4 Go (petit modèle)
10 Go+ (large-v3-turbo)
RAM
8 Go
16 Go+
Disque
5 Go
20 Go (cache du modèle)
Python
3.9+
3.11
CUDA
12.8+
12.8+
Jeton HuggingFace requis pour la diarisation des locuteurs — acceptez la licence sur pyannote/speaker-diarization-3.1.
Recommandation de Clore.ai : RTX 3090 (0,07–0,21 $/h) pour le modèle large-v3-turbo avec une taille de lot de 16. RTX 4090 (0,14–0,42 $/h) pour un débit maximal avec une taille de lot de 32.
Installation
Si vous rencontrez des conflits de version CUDA :
Démarrage rapide
Exemples d'utilisation
Transcription avec diarisation des locuteurs
Utilisation en ligne de commande
Script de génération SRT
Benchmarks de performance
Whisper standard
large-v3
~60 min
RTX 3090
1×
faster-whisper
large-v3
~5 min
RTX 3090
~12×
WhisperX
large-v3-turbo
~1 min
RTX 3090
~60×
WhisperX
large-v3-turbo
~50 s
RTX 4090
~70×
4
~30× en temps réel
6 Go
8
~45× en temps réel
8 Go
16
~60× en temps réel
10 Go
32
~70× en temps réel
14 Go
Conseils pour les utilisateurs de Clore.ai
Libérer la VRAM entre les étapes — supprimez les modèles et appelez
torch.cuda.empty_cache()entre la transcription, l'alignement et la diarisationJeton HuggingFace — vous devez accepter la licence du modèle pyannote avant que la diarisation fonctionne ; définissez
HF_TOKENcomme variable d'environnementAjustement de la taille de lot — commencez avec
batch_size=16, réduisez à 4–8 sur les cartes de 12 Go, augmentez à 32 sur les cartes de 24 Goint8calcul — utilisercompute_type="int8"pour diviser par deux l'utilisation de la VRAM avec une perte de qualité minimaleImage Docker —
pytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtimeCache de modèle persistant — montez
/root/.cache/huggingfacepour éviter de retélécharger les modèles à chaque redémarrage du conteneur
Dépannage
Mémoire CUDA insuffisante
Réduisez batch_size, utilisez compute_type="int8", ou utilisez un modèle plus petit (medium, small)
La diarisation renvoie UNKNOWN
Assurez-vous que le jeton HuggingFace est valide et que vous avez accepté la licence pyannote
Aucun module nommé 'whisperx'
pip install whisperx — assurez-vous qu'il n'y a pas de faute de frappe (c'est whisperx, et non whisper-x)
Horodatages des mots médiocres
Vérifiez que whisperx.align() est appelé après transcribe() — la sortie brute de Whisper manque de précision au niveau des mots
Détection de la langue incorrecte
Forcez la langue avec --language en ou language="en" dans l'API Python
Traitement lent
Augmentez batch_size, utilisez large-v3-turbo au lieu de large-v3, assurez-vous que le GPU n'est pas partagé
Mis à jour
Ce contenu vous a-t-il été utile ?