BetterWhisperX: reconocimiento automático de voz independiente del orador que proporciona marcas de tiempo de gran precisión a nivel de palabra.

Introducción general

BetterWhisperX es una versión optimizada del proyecto WhisperX, cuyo objetivo es ofrecer servicios de reconocimiento automático del habla (ASR) eficaces y precisos. BetterWhisperX integra una serie de tecnologías avanzadas, como la alineación forzada a nivel de fonema, el procesamiento por lotes basado en la actividad del habla y la separación de locutores. La herramienta no sólo permite la transcripción a alta velocidad (hasta 70 veces la velocidad en tiempo real cuando se utiliza el modelo large-v2), sino que también ofrece un registro cronológico preciso a nivel de palabra y el reconocimiento de varios locutores. El sistema utiliza faster-whisper como backend, que requiere menos memoria de la GPU para procesar incluso modelos de gran tamaño, lo que proporciona una relación rendimiento/eficiencia muy elevada.

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

 

Lista de funciones

  • Conversión rápida de voz a texto: Utilizando el modelo grande large-v2, que admite la transcripción 70x en tiempo real.
  • Marcas de tiempo a nivel de palabra: Proporciona marcas de tiempo precisas a nivel de palabra mediante la alineación wav2vec2.
  • reconocimiento de varios altavocesSeparación y etiquetado de altavoces con pyannote-audio.
  • Detección de actividad vocal: Reducción de los errores de identificación y procesamiento por lotes sin aumento significativo de la tasa de error.
  • inferencia por lotes: Admite el procesamiento por lotes para mejorar la eficacia del procesamiento.
  • compatibilidadSoporte para PyTorch 2.0 y Python 3.10 para una amplia gama de entornos.

 

Utilizar la ayuda

Procedimiento de funcionamiento detallado

  1. Preparación de archivos de audioAsegúrate de que el formato del archivo de audio es WAV o MP3 y de que la calidad del sonido es clara.
  2. Modelos de cargaSeleccione el modelo adecuado (por ejemplo, large-v2) en función de los requisitos y cárguelo en la memoria.
  3. Realizar la transcripciónLlamada a la función de transcripción para realizar el procesamiento de voz a texto y obtener los resultados preliminares de la transcripción.
  4. marca de tiempo alineadaAlineación de marcas de tiempo a nivel de palabra de los resultados de transcripción utilizando la función de alineación para garantizar marcas de tiempo precisas.
  5. separación de altavoces: Llama a la función diarize para el reconocimiento multihablante para obtener la etiqueta y el fragmento de habla correspondiente a cada hablante.
  6. ResultadoGuardar el resultado final como archivo de texto o en formato JSON para su posterior procesamiento y análisis.

1. Preparación medioambiental

  1. Requisitos del sistema:
    • Entorno Python 3.10 (se recomienda mamba o conda para crear un entorno virtual)
    • Compatibilidad con CUDA y cuDNN (necesaria para la aceleración por GPU)
    • Kit de herramientas FFmpeg
  2. Pasos de la instalación:
# 创建 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. Uso básico

  1. Uso de la línea de comandos:
# 基础转录(英语)
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. Llamadas al código 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. Recomendaciones para optimizar el rendimiento

  1. Optimización de la memoria de la GPU:
    • Reducir el tamaño del lote (batch_size)
    • Uso de modelos más pequeños (por ejemplo, base en lugar de grandes)
    • Seleccione el tipo de cálculo ligero (int8)
  2. Soporte multilingüe:
    • Idiomas admitidos por defecto: inglés, francés, alemán, español, italiano, japonés, chino, neerlandés, ucraniano y portugués.
    • Especifique el idioma que desea utilizar:--language de(Ejemplo en alemán)

4. Precauciones

  • Las marcas de tiempo pueden no ser lo suficientemente precisas para caracteres especiales (por ejemplo, números, símbolos monetarios)
  • El reconocimiento de escenas en las que varias personas hablan al mismo tiempo puede no ser eficaz.
  • La separación de los altavoces aún se está optimizando
  • Para utilizar la función de separación de altavoces se necesitan fichas de acceso de Cara Abrazada
  • Garantizar la compatibilidad del controlador de la GPU y la versión de CUDA
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...