Transcribir audio a texto con Whisper y Python

por | agosto 6, 2026
A person sitting at a desk with a laptop, wearing headphones, staring at a screen displaying Python code and audio waveforms, photorealistic, no text or logos

Si estás harto de pagar suscripciones mensuales por transcribir entrevistas o podcasts, tengo buenas noticias: con OpenAI Whisper y un poco de Python puedes montarte tu propio sistema de transcripción automática, local y completamente gratis. Aquí te cuento cómo.

¿Qué es OpenAI Whisper?

Whisper es un modelo de reconocimiento automático del habla (ASR) entrenado por OpenAI con una inmensa cantidad de datos multilingües. No solo transcribe: puntúa, distingue idiomas y hasta traduce al inglés. Y lo mejor es que puedes ejecutarlo en tu ordenador sin depender de la nube.

Lo que necesitas

Antes de lanzarte, asegúrate de tener:

Transcribir audio a texto con Whisper y Python
  • Python 3.7 o superior instalado (puedes descargarlo de python.org).
  • pip, el gestor de paquetes de Python, que viene con la instalación.
  • FFmpeg: una herramienta para procesar audio. Si usas Windows, descárgalo de ffmpeg.org y añádelo al PATH; en Mac con Homebrew (brew install ffmpeg) y en Linux con el gestor de paquetes (sudo apt install ffmpeg).
  • Un archivo de audio en formato común: MP3, WAV, M4A, OGG… Whisper con FFmpeg traga casi todo.

Paso 1: Instalar Whisper

Abre una terminal y ejecuta:

pip install openai-whisper

Esto también instalará PyTorch y otras dependencias. Si tienes GPU NVIDIA y quieres acelerar, puedes instalar la versión CUDA, pero para esta guía nos basta con la CPU.

Paso 2: Tu primera transcripción (modo fácil)

Para una transcripción rápida, usa la línea de comandos:

whisper "mi_audio.mp3" --model small --language Spanish

Esto generará varios archivos de texto con la transcripción. El modelo small es un buen equilibrio entre velocidad y precisión. Si omites --language Spanish, Whisper detectará el idioma automáticamente, pero especificarlo mejora el resultado.

Paso 3: Control fino con Python

Si necesitas más flexibilidad, un script de Python te permitirá procesar múltiples archivos o añadir funcionalidades. Aquí tienes un ejemplo básico:

import whisper

# Cargar el modelo (small, medium, large...)
model = whisper.load_model("small")

# Transcribir
result = model.transcribe("entrevista.mp3", language="es")

# Guardar transcripción en un archivo .txt
with open("transcripcion.txt", "w", encoding="utf-8") as f:
    f.write(result["text"])

Este script carga el modelo una vez y puede transcribir muchos archivos seguidos, ahorrando tiempo. Hace poco transcribí una entrevista de 45 minutos con el modelo small en un portátil básico: tardó unos 10 minutos y el resultado fue casi perfecto.

Si tienes una carpeta llena de audios, puedes iterar con un bucle:

import glob

for audio in glob.glob("*.mp3"):
    result = model.transcribe(audio, language="es")
    with open(f"{audio[:-4]}.txt", "w") as f:
        f.write(result["text"])

Paso 4: Segmentación y timestamps

Whisper ya divide el texto en segmentos con marcas de tiempo. Puedes acceder a ellos así:

for segment in result["segments"]:
    print(f"[{segment['start']:.2f} - {segment['end']:.2f}] {segment['text']}")

Ideal para generar subtítulos o localizar fragmentos en audios largos.

Paso 5: Formatos de audio compatibles

Gracias a FFmpeg, Whisper lee MP3, WAV, FLAC, M4A, OGG… casi cualquier cosa que le eches. Si tu audio tiene una calidad muy baja, el modelo tiny puede ser suficiente y es rapidísimo.

Consejos para mejores resultados

  • Elige el modelo según tu máquina: tiny para pruebas, small para uso diario, medium si quieres más precisión, y large solo si tienes GPU potente y mucha paciencia.
  • El audio debe tener poco ruido de fondo y voces claras. Si hay varios hablantes, Whisper intenta separarlos pero no es perfecto.
  • Para archivos muy largos (horas), conviene dividirlos en trozos o usar un modelo más pequeño para no saturar la RAM.

¿Realmente es gratis y privado?

Sí. Todo se procesa en tu máquina. No necesitas conexión a internet y tus datos nunca salen de tu ordenador. Además, el modelo es open source, con licencia MIT.

Preguntas frecuentes

¿Funciona en español y otros idiomas?

Whisper reconoce más de 90 idiomas, incluido el español con una precisión muy alta.

¿Puedo transcribir en tiempo real?

No directamente. Whisper trabaja sobre archivos, pero puedes grabar y luego transcribir en diferido. Hay proyectos comunitarios que exploran la transcripción en streaming.

¿Qué hago si la transcripción sale con errores?

Revisa la calidad del audio, prueba un modelo más grande, o combínalo con una etapa de corrección manual. Algunas veces la puntuación no es perfecta; puedes aplicar reglas simples con Python para limpiar el texto (mayúsculas, puntos, etc.).

Ahora ya no tienes excusa para no pasar a texto esas grabaciones que acumulas. Con un par de comandos y un script sencillo, tendrás un transcriptor privado y sin costes ocultos.