WhisperX
WhisperX

WhisperX

WhisperX es una canalización abierta para audio largo que añade a faster-whisper transcripción por lotes, alineación forzada por idioma y diarización opcional con pyannote.

103

Views

0

Likes

Jan 2026

Added

github.com

Enlace del proyecto

Tags

WhisperXspeech alignmentspeaker diarizationlong-form ASR

Product Preview

A quick visual look at WhisperX before you visit the official site.

Published 1/21/2026
WhisperX screenshot

Editorial Review

About WhisperX

WhisperX es una canalización de código abierto para audio largo mantenida por Max Bain y la comunidad. Combina detección de actividad vocal, transcripción por lotes mediante faster-whisper/CTranslate2, alineación forzada específica por idioma y diarización opcional de hablantes con pyannote. Su resultado no es solo «Whisper más rápido»: ofrece palabras con tiempos más finos y etiquetas anónimas de hablante. Cada etapa utiliza un modelo distinto y conserva sus propios modos de fallo.

WhisperX no sustituye el reconocedor por un nuevo ASR universal. Cambia la segmentación y la inferencia, alinea el texto reconocido con un modelo fonético y puede reconciliar las palabras con intervalos de hablantes. Un texto incorrecto no se vuelve verdadero por tener tiempos precisos. Si el diccionario del alineador no contiene una cifra, símbolo o escritura, el tiempo puede faltar o ser interpolado. Con voces simultáneas, una etiqueta SPEAKER_00 visualmente limpia todavía puede estar equivocada.

Canalización WhisperX desde VAD y transcripción por lotes hasta alineación forzada diarización y control de calidad
Diagrama verificable basado en el README, artículo y código actual de WhisperX. Texto, tiempos de palabra y asignación de hablantes se validan por separado.

Qué añade WhisperX a Whisper

EtapaImplementaciónValorLímite de fallo
SegmentaciónVAD pyannote o Silero y Cut & MergeCrea fragmentos de voz para batchPuede cortar voz baja o unir turnos
Transcripciónfaster-whisper/CTranslate2Batch y opciones cuantizadasDecodificación distinta del upstream
Alineaciónwav2vec2/ASR fonético por idiomaMapea palabras a tiempos finosCaracteres, cifras, símbolos o idioma fallan
Diarizaciónpyannote Community-1Asigna IDs anónimosSolapamiento, turnos cortos, voces similares; no nombres
SalidaSRT/VTT/TSV/TXT/JSONSubtítulos y procesamientoLectura, saltos y contenido requieren QA

El artículo original aborda tres problemas de formato largo: Whisper con ventanas puede derivar, repetir o alucinar; la decodificación secuencial dificulta el batch; y las marcas por enunciado son demasiado gruesas. VAD Cut & Merge permite inferencia por lotes y la alineación fonética incorpora tiempos de palabra tras reconocer. Los resultados de velocidad y error publicados pertenecen a modelos, datos, configuración y GPU concretos. No los convertimos en un multiplicador universal ni en un WER actual sin contexto.

Estado actual y dependencias

WhisperX sigue mantenido. En la revisión, v3.8.6 era el último release estable mostrado y main ya declaraba 3.8.7rc1. Versiones recientes repararon tiempos de palabras no alineables, añadieron callbacks de progreso y ajustaron compatibilidad de Torch/TorchCodec. Es una señal positiva de mantenimiento, pero también la razón para fijar un release probado en producción en vez de instalar main en cada build.

FronteraRequisito actualImplicación
Python3.10 hasta menor de 3.14Entorno aislado; actualización del sistema puede romper
ASRfaster-whisper≥1.2 y CTranslate2≥4.5Regresión de CUDA, modelo y decodificación
PyTorchTorch/Torchaudio alrededor de 2.8Wheel, driver y CUDA deben coincidir
Diarizaciónpyannote.audio≥4TorchCodec, acceso cerrado y segundo ciclo de modelos
LicenciasWhisperX BSD-2; modelos/dependencias separadosConservar avisos y condiciones individualmente

Instalación y primera ejecución controlada

python -m venv .venv
source .venv/bin/activate
pip install whisperx
whisperx meeting.wav --model large-v2 --batch_size 4 --output_format json
whisperx meeting.wav --diarize --hf_token "$HF_TOKEN"

El README recomienda PyPI para uso normal y advierte que la versión de desarrollo puede incluir experimentos y errores. La guía GPU documenta actualmente CUDA 12.8. CPU es posible con --device cpu --compute_type int8, pero hay que medir velocidad y calidad. Si falta memoria, reduce primero batch; después compara un ASR menor o int8, porque ambos pueden cambiar la transcripción. El token de Hugging Face solo sirve para descargar modelos cerrados y no debe quedar en historial, código ni metadatos.

Flujo de producción para audio largo

  1. Obtener consentimiento.Documentar propósito, fuente, retención y quién puede escuchar o exportar.
  2. Preservar el original.Crear una copia decodificada estable y conservar canales antes de convertir a mono.
  3. Construir una prueba privada.Incluir silencio, ruido, música, solapamiento, interrupciones, nombres, cifras, cambio de idioma y máxima duración.
  4. Fijar toda la pila.Registrar WhisperX, faster-whisper, ASR, alineador, VAD, pyannote, Torch/CUDA y compute type.
  5. Calibrar VAD y batch.Medir voz cortada, falsa voz, memoria GPU y factor de tiempo real a la vez.
  6. Conservar ASR previo.Guardar segmentos antes de alinear para no ocultar la hipótesis original.
  7. Marcar excepciones.Distinguir palabras alineadas, interpoladas y sin alinear y comprobar deriva en toda la grabación.
  8. Diarizar solo si aporta valor.Mantener token secreto, limitar número si se conoce y revisar solapamientos/turnos cortos.
  9. Aplicar puertas de salida.Revisar nombres, cifras, negación, alucinación, tiempos, cambios de voz y legibilidad.
  10. Exportar con manifiesto.Guardar JSON/SRT/VTT, versiones, estado de revisión y fecha de borrado.

Idiomas de alineación y fallos visibles

La alineación forzada es específica del idioma. El README menciona pipelines torchaudio por defecto para inglés, francés, alemán, español e italiano y más mapeos en DEFAULT_ALIGN_MODELS_HF. Si el idioma detectado no está, hay que proporcionar un ASR fonético con --align_model y validarlo en habla representativa. Que Whisper transcriba un idioma no significa que WhisperX alinee todas sus palabras.

Cifras, moneda, símbolos, escrituras mezcladas, code-switching y ortografía inusual pueden quedar fuera del diccionario. Releases recientes mejoraron el tratamiento temporal, pero nearest/linear es una estimación útil, no evidencia acústica. ignore conserva la ausencia. El sistema downstream debe guardar aligned/interpolated y no presentar todos los tiempos con igual confianza.

CasoRiesgoControl
Cifras/monedaForma escrita fuera del diccionarioRevisar años, precios, fechas y unidades
Cambio de idiomaUn modelo no cubre ambas escriturasSeparar regiones o usar alineador validado
Nombres propiosLa grafía ASR no coincide con lexicónPuntuar texto/tiempo contra referencia humana
Música/silencioVAD y ASR discrepan sobre vozEtiquetar falsa voz y alucinación
SolapamientoLas tres etapas degradanPruebas con crosstalk y hablante incierto
Turnos cortosPoco solape palabra-intervaloRevisar límites de interrupción

pyannote: acceso, licencia y significado

La CLI actual usa pyannote/speaker-diarization-community-1 por defecto. El usuario acepta condiciones del modelo cerrado y crea un token de acceso de Hugging Face. La model card identifica Community-1 como CC-BY-4.0 y explica ejecución local/offline tras copiarlo. Esas condiciones son independientes de la licencia BSD-2 de WhisperX y de los modelos Whisper/faster-whisper.

Diarización responde qué cluster anónimo habla en cada momento; no identifica personas. SPEAKER_00 puede cambiar entre archivos, dividir a una persona o fusionar voces parecidas. min/max_speakers restringe, no garantiza. El solapamiento es una limitación oficial. Para derecho, investigación, atención telefónica o clínica, conserva el audio y trata la atribución como metadato revisable, no prueba de identidad.

Comparación con opciones cercanas

OpciónElígela cuandoContrapartida
WhisperXAudio largo necesita batch, palabras y hablantes localesVarios modelos y errores compuestos
OpenAI WhisperReferencia Python upstream y comportamiento simpleTiempos gruesos, sin diarización/batch largo nativo
faster-whisperSolo importa rendimiento CTranslate2Añadir alineación/diarización y QA
whisper.cppC/C++, CPU, Apple Silicon, edge/offlineOtro ecosistema; no incluye la pipeline
API gestionadaDelegar inferencia, escala y modelos actualesDatos externos, coste y funciones variables

Criterio independiente:WhisperX es una canalización de producción posterior al ASR, no un botón de más exactitud. Aporta valor cuando los tiempos de palabras y hablantes anónimos reducen trabajo editorial. Si basta texto, no hay alineador validado, domina el solapamiento o el equipo no mantiene Python/Torch/CUDA/modelos, faster-whisper, Whisper upstream, whisper.cpp o una API pueden ser más fiables en operación.

Preguntas frecuentes

¿Es un modelo nuevo distinto de Whisper?

No en el sentido habitual. Usa Whisper mediante faster-whisper y añade VAD, alineación y pyannote opcional.

¿Garantiza tiempos exactos por palabra?

No. Caracteres, cifras, símbolos, escritura mixta o modelo lingüístico incorrecto fallan; interpolar es estimar.

¿Identifica nombres reales?

No. Produce clusters anónimos como SPEAKER_00. Vincularlos con personas necesita evidencia separada.

¿Necesito token de HF?

No para transcripción central. La diarización pyannote por defecto exige aceptar condiciones y token de descarga.

¿Funciona offline?

Sí tras descargar ASR, alineación y diarización. También hay que auditar egress, logs, cachés y almacenamiento.

¿Por qué agota la GPU?

Batch, modelo ASR, compute type, alineación y diarización consumen. Baja batch primero y mide cada cambio.

¿Es fiable con voces solapadas?

No como verdad. El proyecto reconoce solapamiento y diarización imperfecta como límites.

¿Qué idiomas alinea?

Hay defaults torchaudio y mapeos HF en alignment.py. Si falta, valida un modelo fonético o omite transparentemente.

Fuentes revisadas

Revisión técnica independiente: 2026-08-20. Versiones, dependencias, acceso e idiomas cambian. Fija las fuentes primarias y evalúa con audio privado.

Revisar WhisperX en su fuente oficial

Abre el repositorio, la documentación o los recursos del modelo.

Abrir fuente oficial

Quick Info

Enlace del proyecto
github.com
Added
1/21/2026
Published
1/21/2026
Updated
9/7/2026

Share This Tool

Have an AI tool to share?

Submit it to AI Dreamhub

Get your product in front of people actively exploring AI tools.

Submit Your Tool
Whisper

Whisper

Whisper es la familia de reconocimiento de voz y referencia Python con licencia MIT de OpenAI para transcripción local multilingüe, subtítulos y traducción de voz al inglés.

Whisperreconocimiento de voztranscripción local
1080
Whisper.cpp

Whisper.cpp

Whisper.cpp es una implementación C/C++ sin dependencias de OpenAI Whisper para transcripción, traducción, transmisión, servidores y aplicaciones integradas locales. Esta guía cubre modelos, cuantificación, backends, precisión, privacidad e implementación.

speech-recognitionfree
1280
Buzz

Buzz

Buzz es una aplicación de escritorio gratuita con licencia del MIT para transcripción local de Whisper, subtítulos, subtítulos en vivo, traducción y etiquetado de oradores en macOS, Windows y Linux. Esta guía compara backends, hardware, privacidad, pruebas de precisión, control de calidad de subtítulos, automatización CLI y alternativas en la nube.

BuzzBuzz Captionstranscripción offline
1610
WhisperDesktop

WhisperDesktop

WhisperDesktop es una aplicación de escritorio de Windows y una implementación de DirectCompute para ejecutar OpenAI Whisper localmente en entradas de audio, video y micrófono. Esta guía cubre la configuración, los modelos, las GPU, los subtítulos, la privacidad y las alternativas.

WhisperDesktopOpenAI Whisperspeech recognition
2080