AI Applications

Cómo transcribir audio gratis con Whisper (guía 2026)

La respuesta corta (agosto 2026): Whisper de OpenAI es un modelo de reconocimiento de voz gratuito y open-source publicado bajo licencia MIT que se ejecuta completamente en tu propio equipo sin ningún costo. Instálalo con pip install -U openai-whisper, apúntalo a cualquier archivo de audio y obtén una transcripción en segundos. Si prefieres una configuración gestionada, la API de OpenAI expone el mismo modelo como whisper-1 a $0.006 por minuto sin suscripción requerida. Seis tamaños de modelo, desde el tiny de 39M parámetros hasta el large de 1.55B, te permiten ajustar la precisión y velocidad a tu hardware disponible.

Última verificación: 1 de agosto de 2026, con la documentación oficial y las páginas de precios.

Qué es Whisper y cuánto cuesta

Whisper es un modelo de reconocimiento de voz de propósito general entrenado con 680,000 horas de audio multilingüe. OpenAI publicó los pesos y el código en 2022; el paquete en PyPI (openai-whisper, versión 20250625) tiene licencia MIT, lo que significa que puedes usarlo en productos comerciales sin pagar regalías.

Ejecutarlo en local es gratuito en términos operativos. Pagas la electricidad de tu propio hardware o el tiempo de VM en la nube, pero no hay llamadas a la API ni contadores de uso. La API whisper-1 alojada en OpenAI cuesta $0.006 por minuto de audio, con facturación por segundo, sin cargo mínimo ni cuota mensual por usuario.

Para uso personal puntual, el modo local casi siempre es más económico. Para funciones serverless, pipelines de CI o equipos sin acceso a GPU, la API suele ser más práctica una vez que consideras el costo de mantener infraestructura de inferencia.

Instalar Whisper en local

Necesitas Python 3.8 o superior y ffmpeg en el PATH del sistema. Instala ffmpeg primero y luego el paquete de Python.

ffmpeg en Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

ffmpeg en macOS (Homebrew):

brew install ffmpeg

ffmpeg en Windows (Chocolatey):

choco install ffmpeg

Luego instala Whisper:

pip install -U openai-whisper

Si la instalación falla al compilar tiktoken, también necesitas Rust. Consulta el README oficial para el mensaje de error exacto y la solución. Una vez instalado, el comando whisper de la CLI está disponible de forma global en tu entorno de Python.

Elegir el modelo adecuado

Whisper incluye seis modelos. Turbo es la opción recomendada por defecto: funciona aproximadamente 8x más rápido que el modelo large con solo 6 GB de VRAM, lo que lo convierte en la elección práctica para la mayoría de los equipos.

Modelo Parámetros VRAM necesaria Velocidad vs. large Ideal para
tiny 39M ~1 GB ~10x faster Equipos solo con CPU, borradores rápidos
base 74M ~1 GB ~7x faster Solo CPU con mejor precisión
small 244M ~2 GB ~4x faster Portátiles con GPU integrada
medium 769M ~5 GB ~2x faster GPUs de gama media, buena precisión
large 1550M ~10 GB 1x (baseline) Máxima precisión, GPU de gama alta
turbo 809M ~6 GB ~8x faster Opción recomendada; mejor equilibrio

Para audio solo en inglés, las variantes con sufijo .en (tiny.en, base.en, small.en, medium.en) sacrifican la capacidad multilingüe a cambio de ligeramente mejor precisión en contenido en inglés. Whisper admite 98 idiomas en total; omite el flag de idioma y detecta automáticamente a partir de los primeros 30 segundos de audio.

Ejecutarlo completamente en CPU es posible. En un portátil moderno sin GPU, la transcripción tarda aproximadamente lo mismo que dura el audio. Un Mac con Apple Silicon y el backend MPS es notablemente más rápido. Una GPU NVIDIA con CUDA es la opción local más veloz.

Transcribir desde la línea de comandos

Tras la instalación, whisper está disponible de forma global. La llamada más sencilla:

whisper audio.mp3

Esto genera cinco archivos de salida en el directorio actual: audio.txt (texto plano), audio.vtt (subtítulos WebVTT), audio.srt (subtítulos SubRip), audio.tsv (separado por tabulaciones con marcas de tiempo) y audio.json (datos completos de segmentos con puntuaciones de confianza). El modelo por defecto es turbo.

Especificar un modelo:

whisper interview.mp4 --model turbo

Obtener solo un formato de salida:

whisper meeting.m4a --model turbo --output_format srt

Establecer el idioma explícitamente (más rápido y preciso que la detección automática):

whisper lecture.wav --model small --language French

El flag --language acepta nombres de idioma o códigos ISO de dos letras. Especificar el idioma omite el paso de detección automática y mejora la precisión en habla con acento.

Transcribir en Python

import whisper

model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])

load_model descarga y almacena en caché los pesos la primera vez. Carga el modelo una sola vez y reutilízalo entre archivos; recargarlo por cada archivo multiplica innecesariamente el tiempo de inicio.

Para obtener marcas de tiempo a nivel de segmento:

model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")

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

Para marcas de tiempo a nivel de palabra, añade word_timestamps=True a la llamada transcribe(). Cada diccionario de segmento incluye entonces una lista words con los valores de inicio, fin y probabilidad por palabra.

Usar la API de OpenAI

Si necesitas transcripción en una función serverless, un pipeline en la nube o cualquier entorno donde instalar un runtime de GPU no es viable, la API alojada es la alternativa práctica. Consulta nuestra guía sobre cómo construir agentes de IA si quieres integrar la transcripción en una automatización más amplia.

from openai import OpenAI

client = OpenAI() # reads OPENAI_API_KEY from environment

with open("audio.mp3", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
)

print(transcription.text)

La API acepta archivos mp3, mp4, mpeg, mpga, m4a, wav y webm de hasta 25 MB por solicitud. A $0.006 por minuto, una entrevista de una hora cuesta $0.36. Los archivos de más de 25 MB deben dividirse antes de enviarlos.

Divide un archivo largo con ffmpeg en fragmentos de 10 minutos:

ffmpeg -i interview.mp3 -f segment -segment_time 600 -c copy part%03d.mp3

Luego itera sobre las partes y une los campos de texto.

La documentación de OpenAI también menciona ahora gpt-transcribe como opción más reciente para algunas tareas de transcripción; whisper-1 sigue siendo el modelo Whisper directo en la API.

Archivos grandes y procesamiento en lote

Whisper procesa el audio internamente en ventanas de 30 segundos. Para archivos locales largos, pásalos completos en la línea de comandos y Whisper gestiona la segmentación automáticamente. Solo necesitas dividirlos previamente cuando superas el límite de 25 MB de la API.

Para transcribir muchos archivos en lote:

import whisper
from pathlib import Path

model = whisper.load_model("turbo")

for audio_path in Path("recordings/").glob("*.mp3"):
result = model.transcribe(str(audio_path))
output_path = audio_path.with_suffix(".txt")
output_path.write_text(result["text"])
print(f"Done: {output_path}")

Carga el modelo una sola vez fuera del bucle. Cada llamada a transcribe() reutiliza los pesos ya cargados.

Para lotes muy grandes (cientos de archivos), considera ejecutarlo en una instancia GPU en la nube. A aproximadamente 8x la velocidad en tiempo real, turbo procesa una hora de audio en menos de 8 minutos en una GPU NVIDIA decente.

Preguntas frecuentes

¿Funciona Whisper en un Mac con Apple Silicon?
Sí. Whisper usa el backend MPS (Metal Performance Shaders) de PyTorch en Apple Silicon de forma automática al instalar PyTorch con normalidad. Turbo y small son las opciones más equilibradas en los Mac de la serie M sin las limitaciones de VRAM dedicada.

¿Qué tan preciso es Whisper con audio ruidoso o con acento?
Whisper fue entrenado con audio real y variado, incluyendo podcasts y conferencias, por lo que maneja el ruido de fondo moderado y una amplia gama de acentos mejor que la mayoría de los motores anteriores. El audio muy degradado (eco, ruido de multitud, grabaciones telefónicas de muy baja tasa de bits) seguirá generando errores. Turbo y large son las opciones más robustas para audio difícil.

¿Puede Whisper identificar quién habla?
Whisper no genera etiquetas de hablante. Para diarización de hablantes, combina la salida de Whisper con una librería como pyannote.audio, o usa el modelo gpt-4o-transcribe-diarize de la API de OpenAI, que gestiona la diarización de forma nativa pero es un producto distinto de Whisper.

¿Se envía mi audio a OpenAI cuando ejecuto Whisper en local?
No. El paquete local se ejecuta completamente en tu equipo. Los archivos de audio nunca salen de tu sistema. Solo la ruta de la API (whisper-1) transmite el audio a los servidores de OpenAI, lo que es relevante para grabaciones sensibles sujetas a obligaciones de confidencialidad.

¿Qué hago si necesito subtítulos con sincronización exacta?
Usa --output_format srt o --output_format vtt desde la CLI. Ambos formatos incluyen marcas de tiempo de inicio y fin para cada segmento. Para un control más preciso sobre la longitud de los segmentos, añade los flags --max_line_width y --max_line_count para limitar la longitud de las líneas de subtítulo.


Guías como esta se publican tres veces a la semana en AI Weekly, gratis, y las leen 40,000+ profesionales de la IA.