WhisperX с диаризацией
Запустите WhisperX для быстрой расшифровки речи с таймкодами на уровне слов и диаризацией говорящих на GPU Clore.ai.
WhisperX расширяет Whisper от OpenAI тремя важными улучшениями: временные метки на уровне слов через принудительное фонемное выравнивание, диаризация говорящих с использованием pyannote.audio, и скорость до 70× в реальном времени за счёт пакетного вывода с faster-whisper. Это основной инструмент для производственных пайплайнов транскрибации, которым нужны точное время и определение говорящих.
GitHub: m-bain/whisperX PyPI: whisperx Лицензия: BSD-4-Clause Статья: arxiv.org/abs/2303.00747
Ключевые особенности
Временные метки на уровне слов — точность ±50 мс благодаря принудительному выравниванию wav2vec2 (против ±500 мс в обычном Whisper)
Диаризация говорящих — определение, кто что сказал, с помощью pyannote.audio 3.1
Пакетный вывод — скорость до 70× в реальном времени на RTX 4090
Предфильтрация VAD — Silero VAD удаляет тишину перед транскрибацией
Все модели Whisper — от tiny до large-v3-turbo
Несколько форматов вывода — JSON, SRT, VTT, TXT, TSV
Автоматическое определение языка — или принудительно задайте конкретный язык для более быстрой обработки
Требования
GPU
RTX 3060 12 ГБ
RTX 4090 24 GB
VRAM
4 ГБ (маленькая модель)
10 ГБ+ (large-v3-turbo)
ОЗУ
8 ГБ
16 ГБ+
Диск
5 ГБ
20 ГБ (кэш модели)
Python
3.9+
3.11
CUDA
12.8+
12.8+
Требуется токен HuggingFace для диаризации говорящих — примите лицензию на pyannote/speaker-diarization-3.1.
Рекомендация Clore.ai: RTX 3090 ($0.07–0.21/час) для модели large-v3-turbo с размером пакета 16. RTX 4090 ($0.14–0.42/час) для максимальной пропускной способности при размере пакета 32.
Установка
Если возникнут конфликты версий CUDA:
Быстрый старт
Примеры использования
Транскрибация с диаризацией говорящих
Использование из командной строки
Скрипт генерации SRT
Тесты производительности
Обычный Whisper
large-v3
~60 мин
RTX 3090
1×
faster-whisper
large-v3
~5 мин
RTX 3090
~12×
WhisperX
large-v3-turbo
~1 мин
RTX 3090
~60×
WhisperX
large-v3-turbo
~50 сек
RTX 4090
~70×
4
~30× в реальном времени
6 ГБ
8
~45× в реальном времени
8 ГБ
16
~60× в реальном времени
10 ГБ
32
~70× в реальном времени
14 ГБ
Советы для пользователей Clore.ai
Освобождайте VRAM между шагами — удаляйте модели и вызывайте
torch.cuda.empty_cache()между транскрибацией, выравниванием и диаризациейТокен HuggingFace — перед тем как диаризация заработает, нужно принять лицензию pyannote; установите
HF_TOKENкак переменную окруженияНастройка размера пакета — начните с
batch_size=16, уменьшите до 4–8 на картах с 12 ГБ, увеличьте до 32 на картах с 24 ГБint8вычисления — используйтеcompute_type="int8"чтобы вдвое сократить использование VRAM с минимальной потерей качестваDocker-образ —
pytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtimeПостоянный кэш модели — подключите
/root/.cache/huggingfaceчтобы не загружать модели заново при каждом перезапуске контейнера
Устранение неполадок
CUDA out of memory
Уменьшите batch_size, используйте compute_type="int8", или используйте меньшую модель (medium, small)
Диаризация возвращает UNKNOWN
Убедитесь, что токен HuggingFace действителен и вы приняли лицензию pyannote
Нет модуля с именем 'whisperx'
pip install whisperx — убедитесь, что нет опечатки (это whisperx, а не whisper-x)
Плохие временные метки слов
Проверьте, что whisperx.align() вызывается после transcribe() — сырой вывод Whisper не содержит точных меток слов
Неверное определение языка
Принудительно задайте язык с помощью --language en или language="en" в Python API
Медленная обработка
Увеличьте batch_size, используйте large-v3-turbo вместо large-v3, убедитесь, что GPU не используется совместно
Последнее обновление
Это было полезно?