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.

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
- 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.
- Modelos de cargaSeleccione el modelo adecuado (por ejemplo, large-v2) en función de los requisitos y cárguelo en la memoria.
- 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.
- 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.
- 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.
- ResultadoGuardar el resultado final como archivo de texto o en formato JSON para su posterior procesamiento y análisis.
1. Preparación medioambiental
- 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
- 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
- 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
- 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
- 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)
- 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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...




