WhisperX avec diarisation

Exécutez WhisperX pour une transcription vocale rapide avec horodatage au niveau des mots et diarisation des locuteurs sur les GPU Clore.ai.

WhisperX étend Whisper d'OpenAI avec trois améliorations cruciales : horodatages au niveau des mots via 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 en production qui ont besoin d'un timing précis et d'une identification des locuteurs.

GitHub : m-bain/whisperXarrow-up-right PyPI : whisperxarrow-up-right Licence : BSD-4-Clause Article : arxiv.org/abs/2303.00747arrow-up-right

Principales caractéristiques

  • Horodatages au niveau des mots — précision ±50 ms via alignement forcé wav2vec2 (vs ±500 ms dans Whisper vanilla)

  • Diarisation des locuteurs — identifiez qui a dit quoi via pyannote.audio 3.1

  • Inférence par lots — jusqu'à 70× la vitesse en temps réel sur RTX 4090

  • Pré-filtrage VAD — Silero VAD supprime les silences avant la transcription

  • Tous les modèles Whisper — tiny jusqu'à large-v3-turbo

  • Formats de sortie multiples — 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 Go

RTX 4090 24 Go

VRAM

4 Go (modèle small)

10 Go+ (large-v3-turbo)

RAM

8 Go

16 Go+

Disque

5 Go

20 Go (cache de modèles)

Python

3.9+

3.11

CUDA

11.8+

12.1+

Jeton HuggingFace requis pour la diarisation — acceptez la licence sur pyannote/speaker-diarization-3.1arrow-up-right.

Recommandation Clore.ai : RTX 3090 ($0.30–1.00/jour) pour le modèle large-v3-turbo avec taille de lot 16. RTX 4090 ($0.50–2.00/jour) 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 1h
GPU
Vitesse approximative

Whisper vanilla

large-v3

~60 min

RTX 3090

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 — supprimer les modèles et appeler torch.cuda.empty_cache() entre transcription, alignement et diarisation

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

  • Ajustement de la taille de lot — commencez par batch_size=16, réduisez à 4–8 sur des cartes 12 Go, augmentez à 32 sur des cartes 24 Go

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

  • Image Dockerpytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime

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

Dépannage

Problème
Solution

CUDA out of memory

Réduire 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, pas whisper-x)

Mauvais horodatages de mots

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 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 ?