2-Cómo Usar Whisper de OpenAI con Python para Transcripción de Audio
Cómo Usar Whisper de OpenAI con Python para Transcripción de Audio
Hola lectores! En este tutorial les mostraré cómo utilizar Whisper, el potente modelo de reconocimiento de voz de OpenAI, con Python para transcribir archivos de audio a texto.
¿Qué es Whisper?
Whisper es un sistema de reconocimiento automático de voz (ASR) de código abierto desarrollado por OpenAI que puede transcribir audio en múltiples idiomas con gran precisión. Es capaz de manejar diferentes acentos, ruido de fondo y jerga técnica.
Requisitos previos
Python 3.7 o superior
pip (gestor de paquetes de Python)
Un poco de conocimiento básico de Python
Paso 1: Instalación
Primero, necesitamos instalar Whisper. Abre tu terminal o línea de comandos y ejecuta:
pip install -U openai-whisperWhisper también requiere tener instalado ffmpeg en tu sistema:
Windows: Descarga desde https://ffmpeg.org/download.html
Mac:
brew install ffmpegLinux (Ubuntu/Debian):
sudo apt update && sudo apt install ffmpeg
Paso 2: Cargar un modelo
Whisper ofrece varios modelos con diferentes equilibrios entre velocidad y precisión:
tiny- Más rápido, menos precisobasesmallmediumlarge- Más lento, más preciso
import whisper
# Cargar el modelo (puedes cambiar 'base' por otro modelo según tus necesidades)
model = whisper.load_model("base")Paso 3: Transcribir un archivo de audio
Ahora vamos a transcribir un archivo de audio. Guarda tu archivo de audio (MP3, WAV, etc.) en el mismo directorio que tu script o proporciona la ruta completa.
# Transcribir audio
result = model.transcribe("audio.mp3")
print(result["text"])Paso 4: Opciones avanzadas
Whisper ofrece varias opciones para personalizar la transcripción:
result = model.transcribe(
"audio.mp3",
language="es", # Especificar idioma (opcional)
fp16=False, # Usar precisión simple si no tienes GPU
verbose=True # Mostrar progreso
)
# También puedes obtener segmentos con marcas de tiempo
for segment in result["segments"]:
print(f"{segment['start']} - {segment['end']}: {segment['text']}")Paso 5: Procesamiento por lotes
Si tienes varios archivos para transcribir:
import os
audio_files = ["audio1.mp3", "audio2.mp3", "audio3.mp3"]
for audio_file in audio_files:
if os.path.exists(audio_file):
result = model.transcribe(audio_file)
print(f"Transcripción para {audio_file}:")
print(result["text"])
print("\n---\n")
else:
print(f"Archivo {audio_file} no encontrado")Consejos para mejores resultados
Calidad de audio: Mientras más claro el audio, mejor será la transcripción.
Modelo adecuado: Para español, los modelos
mediumolargesuelen dar mejores resultados.Especificar idioma: Aunque Whisper detecta automáticamente el idioma, especificarlo puede mejorar la precisión.
Hardware: Para archivos largos o modelos grandes, considera usar una GPU.
Ejemplo completo
import whisper
def transcribir_audio(ruta_audio, modelo="base", idioma="es"):
# Cargar modelo
model = whisper.load_model(modelo)
# Transcribir audio
result = model.transcribe(ruta_audio, language=idioma)
# Mostrar resultados
print("Transcripción completa:")
print(result["text"])
print("\nSegmentos con marcas de tiempo:")
for segment in result["segments"]:
print(f"{segment['start']:.2f}s - {segment['end']:.2f}s: {segment['text']}")
return result
# Uso de la función
transcripcion = transcribir_audio("entrevista.mp3", modelo="medium")Conclusión
Whisper es una herramienta poderosa para convertir audio a texto con Python. Con solo unas pocas líneas de código puedes integrar capacidades avanzadas de reconocimiento de voz en tus proyectos.
¿Tienes preguntas o quieres compartir cómo estás usando Whisper? ¡Déjalo en los comentarios!
Nota: Recuerda que los modelos más grandes requieren más recursos y tiempo de procesamiento. Elige el modelo que mejor se adapte a tus necesidades
Comentarios
Publicar un comentario