BetterWhisperX: автоматическое распознавание речи отдельно от диктора, обеспечивающее высокую точность временных меток на уровне слов

Общее введение

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

BetterWhisperX:自动语音识别与说话人分离,提供高精度单词级时间戳

 

Список функций

  • Быстрое преобразование речи в текст: Использование большой модели large-v2, которая поддерживает 70-кратную транскрипцию в реальном времени.
  • Временные метки на уровне слов: Обеспечивает точные временные метки на уровне слов с помощью выравнивания wav2vec2.
  • распознавание нескольких дикторов: Разделение и маркировка дикторов с помощью pyannote-audio.
  • Обнаружение голосовой активности: Уменьшение количества ошибок идентификации и пакетной обработки без значительного увеличения коэффициента ошибок.
  • пакетный вывод: Поддержка пакетной обработки для повышения эффективности обработки.
  • совместимость: Поддержка PyTorch 2.0 и Python 3.10 для широкого спектра сред.

 

Использование помощи

Подробная процедура работы

  1. Подготовка аудиофайлов: Убедитесь, что формат аудиофайла - WAV или MP3, а качество звука - чистое.
  2. Модели для погрузки: Выберите подходящую модель (например, large-v2) в соответствии с требованиями и загрузите ее в память.
  3. Выполнение транскрипции: Вызовите функцию транскрибирования, чтобы выполнить обработку речи в текст и получить предварительные результаты транскрибирования.
  4. выровненная метка времени: Выравнивание результатов транскрипции по временным меткам на уровне слов с помощью функции align для обеспечения точности временных меток.
  5. разделение динамиков: Вызовите функцию diarize для распознавания нескольких дикторов, чтобы получить метку и соответствующий фрагмент речи для каждого диктора.
  6. Вывод результатов: Сохраните конечный результат в виде текстового файла или в формате JSON для последующей обработки и анализа.

1. Подготовка окружающей среды

  1. Системные требования:
    • Среда Python 3.10 (для создания виртуальной среды рекомендуется использовать mamba или conda)
    • Поддержка CUDA и cuDNN (требуется для ускорения работы GPU)
    • Набор инструментов FFmpeg
  2. Этапы установки:
# 创建 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. Основное использование

  1. Использование командной строки:
# 基础转录(英语)
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
  1. Вызовы кода 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. Рекомендации по оптимизации производительности

  1. Оптимизация памяти GPU:
    • Уменьшите размер партии (batch_size)
    • Использование небольших моделей (например, базовых вместо больших)
    • Выберите тип легкого расчета (int8)
  2. Многоязычная поддержка:
    • Языки, поддерживаемые по умолчанию: английский, французский, немецкий, испанский, итальянский, японский, китайский, голландский, украинский, португальский.
    • Укажите используемый язык:--language de(Пример на немецком языке)

4. Предостережения

  • Временные метки могут быть недостаточно точными для специальных символов (например, цифр, символов валюты)
  • Распознавание сцен, в которых одновременно разговаривают несколько человек, может быть неэффективным
  • Разделение динамиков все еще оптимизируется
  • Для использования функции разделения динамиков требуются жетоны доступа Hugging Face
  • Обеспечьте совместимость драйверов GPU и версий CUDA
© заявление об авторских правах

Похожие статьи

Pinokio:一键本地部署各类AI开源项目,小白全自动部署
海螺AI视频生成器:文本或图像生成高质量视频,影视级镜头创作

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...