BetterWhisperX: автоматическое распознавание речи отдельно от диктора, обеспечивающее высокую точность временных меток на уровне слов
Общее введение
BetterWhisperX - это оптимизированная версия проекта WhisperX, ориентированная на предоставление эффективных и точных услуг автоматического распознавания речи (ASR). Как усовершенствованное ответвление WhisperX, проект поддерживается Федерико Торриэлли, который стремится постоянно обновлять проект и повышать его производительность.BetterWhisperX объединяет ряд передовых технологий, включая принудительное выравнивание на уровне фонем, пакетную обработку на основе речевой активности и разделение дикторов. Инструмент не только поддерживает высокоскоростную транскрипцию (до 70 раз в реальном времени при использовании модели large-v2), но и обеспечивает точную временную метку на уровне слов и распознавание нескольких дикторов. В качестве бэкенда в системе используется faster-whisper, который требует меньше памяти GPU для обработки даже больших моделей, обеспечивая очень высокое соотношение производительности и эффективности.

Список функций
- Быстрое преобразование речи в текст: Использование большой модели large-v2, которая поддерживает 70-кратную транскрипцию в реальном времени.
- Временные метки на уровне слов: Обеспечивает точные временные метки на уровне слов с помощью выравнивания wav2vec2.
- распознавание нескольких дикторов: Разделение и маркировка дикторов с помощью pyannote-audio.
- Обнаружение голосовой активности: Уменьшение количества ошибок идентификации и пакетной обработки без значительного увеличения коэффициента ошибок.
- пакетный вывод: Поддержка пакетной обработки для повышения эффективности обработки.
- совместимость: Поддержка PyTorch 2.0 и Python 3.10 для широкого спектра сред.
Использование помощи
Подробная процедура работы
- Подготовка аудиофайлов: Убедитесь, что формат аудиофайла - WAV или MP3, а качество звука - чистое.
- Модели для погрузки: Выберите подходящую модель (например, large-v2) в соответствии с требованиями и загрузите ее в память.
- Выполнение транскрипции: Вызовите функцию транскрибирования, чтобы выполнить обработку речи в текст и получить предварительные результаты транскрибирования.
- выровненная метка времени: Выравнивание результатов транскрипции по временным меткам на уровне слов с помощью функции align для обеспечения точности временных меток.
- разделение динамиков: Вызовите функцию diarize для распознавания нескольких дикторов, чтобы получить метку и соответствующий фрагмент речи для каждого диктора.
- Вывод результатов: Сохраните конечный результат в виде текстового файла или в формате JSON для последующей обработки и анализа.
1. Подготовка окружающей среды
- Системные требования:
- Среда Python 3.10 (для создания виртуальной среды рекомендуется использовать mamba или conda)
- Поддержка CUDA и cuDNN (требуется для ускорения работы GPU)
- Набор инструментов FFmpeg
- Этапы установки:
# 创建 Python 环境
mamba create -n whisperx python=3.10
mamba activate whisperx
# 安装 CUDA 和 cuDNN
mamba install cuda cudnn
# 安装 BetterWhisperX
pip install git+https://github.com/federicotorrielli/BetterWhisperX.git
2. Основное использование
- Использование командной строки:
# 基础转录(英语)
whisperx audio.wav
# 使用大模型和更高精度
whisperx audio.wav --model large-v2 --align_model WAV2VEC2_ASR_LARGE_LV60K_960H --batch_size 4
# 启用说话人分离
whisperx audio.wav --model large-v2 --diarize --highlight_words True
# CPU 模式(适用于 Mac OS X)
whisperx audio.wav --compute_type int8
- Вызовы кода Python:
import whisperx
import gc
device = "cuda"
audio_file = "audio.mp3"
batch_size = 16 # GPU 内存不足时可降低
compute_type = "float16" # 内存不足可改用 "int8"
# 1. 加载模型并转录
model = whisperx.load_model("large-v2", device, compute_type=compute_type)
audio = whisperx.load_audio(audio_file)
result = model.transcribe(audio, batch_size=batch_size)
# 2. 音素对齐
model_a, metadata = whisperx.load_align_model(language_code=result["language"], device=device)
result = whisperx.align(result["segments"], model_a, metadata, audio, device)
# 3. 说话人分离(需要 Hugging Face token)
diarize_model = whisperx.DiarizationPipeline(use_auth_token=YOUR_HF_TOKEN, device=device)
diarize_segments = diarize_model(audio)
result = whisperx.assign_word_speakers(diarize_segments, result)
3. Рекомендации по оптимизации производительности
- Оптимизация памяти GPU:
- Уменьшите размер партии (batch_size)
- Использование небольших моделей (например, базовых вместо больших)
- Выберите тип легкого расчета (int8)
- Многоязычная поддержка:
- Языки, поддерживаемые по умолчанию: английский, французский, немецкий, испанский, итальянский, японский, китайский, голландский, украинский, португальский.
- Укажите используемый язык:
--language de
(Пример на немецком языке)
4. Предостережения
- Временные метки могут быть недостаточно точными для специальных символов (например, цифр, символов валюты)
- Распознавание сцен, в которых одновременно разговаривают несколько человек, может быть неэффективным
- Разделение динамиков все еще оптимизируется
- Для использования функции разделения динамиков требуются жетоны доступа Hugging Face
- Обеспечьте совместимость драйверов GPU и версий CUDA
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...