For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Composant
Minimum
Recommandé

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

Méthode
Modèle
Audio 1 h
GPU
Vitesse approx.

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×

Taille de lot
Vitesse (RTX 4090)
VRAM

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 diarisation

  • Jeton HuggingFace — vous devez accepter la licence du modèle pyannote avant que la diarisation fonctionne ; définissez HF_TOKEN comme variable d'environnement

  • Ajustement 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 Go

  • int8 calcul — utiliser compute_type="int8" pour diviser par deux l'utilisation de la VRAM avec une perte de qualité minimale

  • Image Docker — pytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtime

  • Cache de modèle persistant — montez /root/.cache/huggingface pour éviter de retélécharger les modèles à chaque redémarrage du conteneur

Dépannage

Problème
Solution

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 ?