WhisperX con diarización
Ejecuta WhisperX para transcripción rápida de voz con marcas de tiempo a nivel de palabra y diarización de hablantes en GPUs de Clore.ai.
WhisperX amplía Whisper de OpenAI con tres mejoras críticas: marcas de tiempo a nivel de palabra mediante alineación forzada de fonemas, diarización de hablantes usando pyannote.audio, y hasta 70× de velocidad en tiempo real mediante inferencia por lotes con faster-whisper. Es la herramienta de referencia para flujos de transcripción en producción que necesitan tiempos precisos e identificación de hablantes.
GitHub: m-bain/whisperX PyPI: whisperx Licencia: BSD-4-Clause Artículo: arxiv.org/abs/2303.00747
Características clave
Marcas de tiempo a nivel de palabra — precisión de ±50 ms mediante alineación forzada con wav2vec2 (frente a ±500 ms en Whisper estándar)
Diarización de hablantes — identifica quién dijo qué mediante pyannote.audio 3.1
Inferencia por lotes — hasta 70× de velocidad en tiempo real en RTX 4090
Pre-filtrado VAD — Silero VAD elimina el silencio antes de la transcripción
Todos los modelos Whisper — desde tiny hasta large-v3-turbo
Múltiples formatos de salida — JSON, SRT, VTT, TXT, TSV
Detección automática de idioma — o fuerza un idioma específico para un procesamiento más rápido
Requisitos
GPU
RTX 3060 12 GB
RTX 4090 24 GB
VRAM
4 GB (modelo pequeño)
10 GB+ (large-v3-turbo)
RAM
8 GB
16 GB+
Disco
5 GB
20 GB (caché del modelo)
Python
3.9+
3.11
CUDA
12.8+
12.8+
Se requiere token de HuggingFace para la diarización de hablantes — acepta la licencia en pyannote/speaker-diarization-3.1.
Recomendación de Clore.ai: RTX 3090 ($0.07–0.21/h) para el modelo large-v3-turbo con tamaño de lote 16. RTX 4090 ($0.14–0.42/h) para el máximo rendimiento con tamaño de lote 32.
Instalación
Si encuentras conflictos de versión de CUDA:
Inicio rápido
Ejemplos de uso
Transcripción con diarización de hablantes
Uso desde la línea de comandos
Script de generación de SRT
Puntos de referencia de rendimiento
Whisper estándar
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 tiempo real
6 GB
8
~45× en tiempo real
8 GB
16
~60× en tiempo real
10 GB
32
~70× en tiempo real
14 GB
Consejos para usuarios de Clore.ai
Liberar VRAM entre pasos — elimina los modelos y llama a
torch.cuda.empty_cache()entre la transcripción, la alineación y la diarizacióntoken de HuggingFace — debes aceptar la licencia del modelo de pyannote antes de que la diarización funcione; establece
HF_TOKENcomo variable de entornoAjuste del tamaño de lote — empieza con
batch_size=16, reduce a 4–8 en tarjetas de 12 GB, aumenta a 32 en tarjetas de 24 GBint8compute — usacompute_type="int8"para reducir a la mitad el uso de VRAM con una pérdida mínima de calidadImagen Docker —
pytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtimeCaché persistente del modelo — monta
/root/.cache/huggingfacepara evitar volver a descargar los modelos en cada reinicio del contenedor
Solución de problemas
CUDA sin memoria
Reduce batch_size, usa compute_type="int8", o usa un modelo más pequeño (medium, small)
La diarización devuelve UNKNOWN
Asegúrate de que el token de HuggingFace sea válido y de haber aceptado la licencia de pyannote
No module named 'whisperx'
pip install whisperx — asegúrate de que no haya un error tipográfico (es whisperx, no whisper-x)
Malas marcas de tiempo de palabras
Comprueba que whisperx.align() se llame después de transcribe() — la salida sin procesar de Whisper no tiene precisión a nivel de palabra
Detección de idioma incorrecta
Fuerza el idioma con --language en o language="en" en la API de Python
Procesamiento lento
Aumenta batch_size, usa large-v3-turbo en lugar de large-v3, asegúrate de que la GPU no esté compartida
Última actualización
¿Te fue útil?