Cómo transcribir audio con IA: tutorial de Whisper y alternativas

Por Guillermo del PinoActualizado el 7 de agosto de 2026Lectura de 15 min
Cómo transcribir audio con IA: tutorial de Whisper y alternativas

Este es el tutorial técnico: instalación, línea de comandos, Python, API y código que puedes copiar y pegar. Si lo que buscas es cuál es la mejor herramienta de transcripción para usar sin programar —comparativa de apps, precios y precisión en español—, eso lo tengo en la mejor IA para transcribir audio. Aquí vamos a montarlo nosotros.

Transcribir audio solía ser un trabajo tedioso, caro y lento. Pagabas a alguien para que lo hiciera a mano, o usabas herramientas automáticas que fallaban más que acertaban.

Whisper, el modelo de transcripción de OpenAI, cambió eso por completo. Es gratuito, open source de verdad (licencia MIT), funciona en más de 90 idiomas y tiene una precisión que supera a la mayoría de servicios de pago. En español funciona especialmente bien.

Publiqué 172 artículos en marzo y fue mi peor mes

Tenía esta web parada y la estoy rehaciendo con IA. Cambié la forma de hacerlo y en once días de agosto ha tenido más visitas desde Google que en todo julio. Te cuento por correo qué cambié.

impresiones clics1-9 ago · 710 → 2.522
  • · Por qué la oportunidad es mayor ahora, y no menor
  • · Lo único que la IA no te puede copiar: tu criterio
  • · Cómo hacer que Google te vea en días, no en seis meses

Qué es Whisper

Whisper es un modelo de IA de OpenAI especializado en:

  • Transcripción: convertir audio a texto
  • Traducción: transcribir audio en cualquier idioma directamente a inglés
  • Detección de idioma: identificar automáticamente el idioma hablado

Es open source —puedes descargarlo y usarlo gratis en tu ordenador— y además OpenAI ofrece transcripción de pago por API, hoy con varios modelos más allá del Whisper original.

Modelos locales disponibles

ModeloParámetrosPrecisiónVelocidadVRAM necesaria
tiny39MBajaMuy rápida~1 GB
base74MMediaRápida~1 GB
small244MBuenaMedia~2 GB
medium769MMuy buenaLenta~5 GB
large-v31550MExcelenteMuy lenta~10 GB
turbo809MMuy buenaRápida~6 GB

Para español, el modelo turbo ofrece el mejor equilibrio calidad/velocidad. Si tu ordenador no tiene GPU potente, small es suficiente para la mayoría de usos.

Opción a: Whisper local (gratis)

Instalar Whisper en tu ordenador es gratis y tus datos no salen de tu máquina. Ideal si trabajas con contenido confidencial: historiales, entrevistas, reuniones internas. Y en España, si el audio contiene datos personales, esto te evita de un plumazo media conversación sobre transferencias internacionales de datos.

Paso 1: requisitos previos

  1. Python 3.9 o superior instalado
  2. FFmpeg instalado (necesario para procesar audio):

Windows:

# Con chocolatey
choco install ffmpeg

# O descarga desde ffmpeg.org y añade al PATH

Mac:

brew install ffmpeg

Linux:

sudo apt install ffmpeg
  1. Verifica la instalación:
ffmpeg -version

Paso 2: instalar Whisper

# Crear proyecto
mkdir whisper-tutorial
cd whisper-tutorial
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Instalar Whisper de OpenAI
pip install openai-whisper

Consejo: si tienes GPU NVIDIA, instala PyTorch con soporte CUDA primero para transcripciones mucho más rápidas. Consulta en pytorch.org el comando exacto para tu versión de CUDA, porque el índice cambia con cada release:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

Paso 3: transcribir desde la línea de comandos

La forma más rápida de transcribir:

# Transcripción básica
whisper audio.mp3 --language es --model turbo

# Con más opciones
whisper audio.mp3 \
  --language es \
  --model turbo \
  --output_format txt \
  --output_dir ./transcripciones/

# Generar subtítulos SRT
whisper video.mp4 \
  --language es \
  --model turbo \
  --output_format srt

Formatos de salida disponibles:

  • txt: texto plano
  • srt: subtítulos con marcas de tiempo
  • vtt: subtítulos WebVTT
  • json: datos completos con timestamps por segmento
  • tsv: datos tabulares

Paso 4: transcribir desde Python

Para más control, usa Python directamente:

import whisper

# Cargar el modelo (se descarga la primera vez)
model = whisper.load_model("turbo")

# Transcribir
result = model.transcribe(
    "audio.mp3",
    language="es",
    fp16=False  # Cambiar a True si tienes GPU
)

# Texto completo
print(result["text"])

# Segmentos con timestamps
for segment in result["segments"]:
    start = segment["start"]
    end = segment["end"]
    text = segment["text"]
    print(f"[{start:.2f}s - {end:.2f}s] {text}")
whisper transcripcion local proceso
whisper transcripcion local proceso

Nota Importante

Presta atención a este detalle.

Opción b: API de OpenAI (más fácil)

Si no quieres instalar nada o necesitas transcripciones rápidas sin GPU, la API es la vía más sencilla.

Un apunte importante de 2026: whisper-1 ya no es el único modelo de transcripción de OpenAI. La API incorpora una familia de modelos de voz a texto basados en la generación actual, con variantes económicas, variantes de máxima calidad y variantes de tiempo real para transcripción en directo. El código de ejemplo funciona igual cambiando el identificador del modelo, así que consulta el catálogo vigente en la documentación de OpenAI antes de fijar uno en producción.

Paso 1: configurar

pip install openai python-dotenv

Archivo .env:

OPENAI_API_KEY=tu-api-key-aqui

Paso 2: transcribir con la API

from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI()

# Transcripción básica
with open("audio.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",   # sustituye por el modelo de transcripción vigente
        file=audio_file,
        language="es"
    )

print(transcript.text)

Paso 3: opciones avanzadas de la API

# Con marcas de tiempo (formato SRT)
with open("audio.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",
        file=audio_file,
        language="es",
        response_format="srt"  # o "vtt", "json", "text"
    )

print(transcript)  # Subtítulos en formato SRT

# Con prompt para mejorar precisión
with open("audio.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",
        file=audio_file,
        language="es",
        prompt="Transcripción de una reunión sobre marketing digital y SEO"
    )

Consejo: el parámetro prompt es de lo más útil que tiene esta API. Dale contexto sobre el tema, nombres propios y términos técnicos que vayan a aparecer. Whisper lo usa para desambiguar y la diferencia en vocabulario especializado es notable. Ojo: no todos los modelos nuevos admiten los mismos formatos de salida ni el mismo prompt, compruébalo al migrar.

Coste de la API

La transcripción por API se mueve, con los modelos actuales, en el rango de 0,003 a 0,006 dólares por minuto de audio según elijas la variante económica o la de máxima calidad. Para hacerte una idea:

  • Una reunión de 1 hora: entre 0,18 y 0,36 $
  • Un podcast de 30 minutos: entre 0,09 y 0,18 $

La transcripción en tiempo real es bastante más cara, del orden de tres veces el precio del procesamiento por archivo. Y el límite de tamaño de archivo sigue en 25 MB, así que para audios largos hay que dividir:

from pydub import AudioSegment

# Cargar audio largo
audio = AudioSegment.from_file("reunion_larga.mp3")

# Dividir en segmentos de 10 minutos
chunk_length_ms = 10 * 60 * 1000  # 10 minutos
chunks = [audio[i:i+chunk_length_ms] for i in range(0, len(audio), chunk_length_ms)]

# Transcribir cada segmento
transcripcion_completa = ""
for i, chunk in enumerate(chunks):
    chunk.export(f"temp_chunk_{i}.mp3", format="mp3")
    with open(f"temp_chunk_{i}.mp3", "rb") as f:
        result = client.audio.transcriptions.create(
            model="whisper-1",
            file=f,
            language="es"
        )
    transcripcion_completa += result.text + " "
    print(f"Segmento {i+1}/{len(chunks)} transcrito")

print(transcripcion_completa)

Truco: corta en silencios, no en tiempos exactos. Si partes a los 10 minutos justos y ahí hay una palabra a medias, la pierdes en la costura entre segmentos.

Opción c: faster-whisper (local pero más rápido)

Faster-Whisper es una reimplementación de Whisper que llega a ser hasta cuatro veces más rápida con el mismo nivel de precisión. Usa CTranslate2 por debajo.

pip install faster-whisper
from faster_whisper import WhisperModel

# Cargar modelo
model = WhisperModel("large-v3", device="cpu", compute_type="int8")
# Para GPU: device="cuda", compute_type="float16"

# Transcribir
segments, info = model.transcribe("audio.mp3", language="es")

print(f"Idioma detectado: {info.language} (probabilidad: {info.language_probability:.2f})")

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

Si vas a hacer muchas transcripciones localmente, esta es la opción que recomiendo sin dudarlo. Y si además necesitas separar por hablantes, WhisperX añade diarización y alineación palabra a palabra sobre esta misma base.

Alternativas a Whisper

Whisper es excelente, pero hay alternativas mejores según el caso de uso. Los precios de esta categoría cambian con frecuencia: úsalos como orden de magnitud y confírmalos antes de dimensionar un proyecto.

ServicioFuerte enPrecio orientativoMejor para
Whisper (local)Gratis, privacidad total0 $ + tu hardwareUso general, datos sensibles
API de OpenAIFacilidad de uso0,003-0,006 $/minDesarrollo rápido
AssemblyAIDiarización, resumen, capítulos~0,01 $/minReuniones, entrevistas
DeepgramTiempo real, latencia bajaDesde ~0,004 $/minDirectos, call centers
Google Speech-to-TextIntegración con GCPPor bloques de segundosSi ya vives en Google Cloud
Amazon TranscribeIntegración con AWS~0,024 $/minSi ya vives en AWS

AssemblyAI: cuando necesitas más que transcripción

AssemblyAI destaca por sus funciones de posprocesado:

import assemblyai as aai

aai.settings.api_key = "tu-api-key"

transcriber = aai.Transcriber()

config = aai.TranscriptionConfig(
    language_code="es",
    speaker_labels=True,   # Diarización: identifica quién habla
    auto_chapters=True,    # Divide en capítulos automáticamente
    entity_detection=True, # Detecta nombres, fechas, etc.
    summarization=True,    # Genera un resumen
    summary_model=aai.SummarizationModel.informative
)

transcript = transcriber.transcribe("reunion.mp3", config=config)

# Transcripción con hablantes
for utterance in transcript.utterances:
    print(f"Speaker {utterance.speaker}: {utterance.text}")

# Resumen automático
print(f"\nResumen: {transcript.summary}")

# Capítulos
for chapter in transcript.chapters:
    print(f"\n[{chapter.start/1000:.0f}s] {chapter.headline}")
    print(f"  {chapter.summary}")

La diarización —saber quién dice qué— es lo que Whisper no hace de forma nativa y donde AssemblyAI marca la diferencia.

whisper alternativas comparativa
whisper alternativas comparativa
Newsletter Semanal

Inteligencia Artificial aplicada a negocio

Sin humo. Solo experimentos reales, prompts que funcionan y estrategias de escalabilidad.

Casos de uso prácticos

1. Transcribir reuniones y generar actas

from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI()

# Paso 1: Transcribir la reunión
with open("reunion.mp3", "rb") as f:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",
        file=f,
        language="es",
        prompt="Reunión de equipo sobre proyecto web. Participantes: Ana, Carlos, María."
    )

# Paso 2: Generar acta con un modelo de texto
acta = client.chat.completions.create(
    model="gpt-5-mini",  # usa el modelo económico vigente en tu cuenta
    messages=[
        {"role": "system", "content": """Eres un asistente que genera actas de reunión profesionales.
        Genera el acta con estas secciones:
        - Resumen ejecutivo (3-5 líneas)
        - Temas tratados
        - Decisiones tomadas
        - Acciones pendientes (quién, qué, cuándo)
        - Próxima reunión"""},
        {"role": "user", "content": f"Genera el acta de esta reunión:\n\n{transcript.text}"}
    ]
)

print(acta.choices[0].message.content)

Si prefieres hacer esto sin escribir código, tengo la versión sin programar en cómo hacer un acta de reunión con IA.

2. Crear subtítulos para vídeos

# Generar archivo SRT directamente
whisper video.mp4 --language es --model turbo --output_format srt

El archivo .srt resultante lo puedes subir directamente a YouTube, Vimeo o cualquier plataforma.

3. Transcribir podcasts para SEO

# Transcribir y generar artículo optimizado para búsqueda
transcript = "..."  # Tu transcripción

articulo = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[
        {"role": "system", "content": """Convierte esta transcripción de podcast en un artículo de blog
        optimizado para SEO. Estructura con H2 y H3, añade una introducción y conclusión,
        y mantén el tono conversacional del podcast."""},
        {"role": "user", "content": transcript}
    ]
)

Publicar la transcripción completa junto al episodio es, además, una de las formas más baratas de que los buscadores con IA puedan citarte: el audio no lo leen, el texto sí.

4. Base de conocimiento desde vídeos

Combina Whisper con RAG:

  1. Transcribe todos tus vídeos y podcasts
  2. Indexa las transcripciones en una base vectorial
  3. Crea un chatbot que responda preguntas sobre tu contenido

Es brutal para cursos online, formación interna o canales de YouTube con mucho fondo de armario. El montaje completo está en crear una base de conocimiento con IA y RAG.

Consejos para mejor precisión

La calidad del audio importa. Whisper es robusto, pero un audio limpio siempre dará mejores resultados. Reduce el ruido de fondo antes de transcribir si puedes.

Usa el prompt para dar contexto. Nombres propios, términos técnicos y el tema general mejoran mucho la precisión en vocabulario especializado.

Elige el modelo adecuado. No uses "tiny" para una transcripción importante. Usa "turbo" o "large-v3" cuando la precisión importa.

Preprocesa el audio si hace falta:

# Convertir a formato óptimo para Whisper
ffmpeg -i input.wav -ar 16000 -ac 1 -c:a pcm_s16le output.wav

Revisa siempre el resultado. Especialmente nombres propios, cifras y términos técnicos. Whisper tiene además una manía conocida: en tramos de silencio o ruido puede inventarse frases enteras que nadie ha dicho, normalmente muletillas o textos de subtítulos que aprendió en el entrenamiento. Si el audio tiene silencios largos, repásalo.

La Era del Qué
Nuevo Lanzamiento

¿Te preocupa el futuro con la IA?

Descubre cómo la inteligencia artificial ha liquidado las viejas reglas del juego y qué puedes hacer tú al respecto.

Leer más sobre el libro

Errores comunes

No instalar FFmpeg. Whisper lo necesita para procesar audio. Sin él, error al primer intento.

Usar un modelo demasiado grande para tu hardware. Sin GPU, large-v3 puede tardar diez veces la duración del audio. Empieza por small o base y sube si necesitas más precisión.

Transcribir archivos enormes sin dividir. El límite de la API es 25 MB, y en local los audios muy largos agotan la memoria. Divide en segmentos de 10-15 minutos, cortando por silencios.

No especificar el idioma. Aunque Whisper lo detecta solo, indicar language="es" mejora la precisión y evita que confunda español con portugués o italiano en audios cortos.

Ignorar la diarización cuando hace falta. Si transcribes reuniones o entrevistas necesitas saber quién dice qué. Whisper no lo hace de serie: usa WhisperX, pyannote-audio o AssemblyAI.

Subir audio con datos personales a una API sin pensarlo. Si el audio contiene datos de clientes o pacientes, necesitas base legal, contrato de encargado del tratamiento con el proveedor y decidir si te compensa procesarlo en local. Aquí es donde Whisper local gana por goleada.

Preguntas frecuentes

¿Whisper es gratis?

El modelo es gratuito y open source con licencia MIT: puedes descargarlo y ejecutarlo en tu ordenador sin pagar nada ni límite de uso. Lo que sí cuesta dinero es la transcripción por la API de OpenAI, que se mueve entre 0,003 y 0,006 dólares por minuto de audio según el modelo. Local es gratis pero necesitas hardware; la API es cómoda pero se factura por uso.

¿Cómo instalo Whisper en Windows paso a paso?

Instala Python 3.9 o superior, instala FFmpeg (con choco install ffmpeg o descargándolo y añadiéndolo al PATH), crea un entorno virtual y ejecuta pip install openai-whisper. Después ya puedes transcribir con whisper audio.mp3 --language es --model turbo. Si tienes GPU NVIDIA, instala antes PyTorch con soporte CUDA para multiplicar la velocidad.

¿Qué modelo de Whisper es mejor para español?

turbo es el mejor equilibrio: precisión muy alta y velocidad razonable con unos 6 GB de VRAM. Si necesitas la máxima calidad y no te importa esperar, large-v3. Y si tu equipo no tiene GPU, small transcribe español decentemente sin ahogar la máquina. Especifica siempre --language es: mejora la precisión respecto a la detección automática.

¿Cuánto cuesta transcribir una hora de audio con la API de OpenAI?

Entre 0,18 y 0,36 dólares según el modelo que elijas, porque la tarifa se mueve en el rango de 0,003 a 0,006 dólares por minuto. La transcripción en tiempo real cuesta bastante más, del orden de tres veces esa cifra. Confirma las tarifas vigentes en la documentación de OpenAI, que las ha ido bajando con cada generación de modelos.

¿Whisper identifica quién habla en una reunión?

No de forma nativa: Whisper transcribe pero no separa hablantes. Para conseguirlo tienes tres vías: WhisperX, que añade diarización sobre Whisper; pyannote-audio, si quieres montarlo tú; o servicios como AssemblyAI y Deepgram, que traen diarización de serie a cambio de un coste algo mayor por minuto.

¿Puedo transcribir audio sin subirlo a internet?

Sí, y es una de las mejores razones para usar Whisper. Ejecutándolo en local, el audio nunca sale de tu máquina. Para entrevistas, historiales clínicos, reuniones de dirección o cualquier contenido con datos personales, esto simplifica muchísimo el cumplimiento del RGPD: sin transferencia a un tercero no hay contrato de encargado que negociar.

¿Por qué Whisper se inventa frases que nadie ha dicho?

Es un comportamiento conocido del modelo: en tramos de silencio, ruido o música puede generar texto plausible que no está en el audio, a menudo muletillas o frases tipo "subtítulos realizados por...". Ocurre porque genera texto de forma predictiva. Se mitiga limpiando el audio, recortando los silencios largos antes de transcribir y revisando siempre los tramos sin voz.

¿Cuál es la diferencia entre Whisper y faster-whisper?

Faster-Whisper es una reimplementación del mismo modelo sobre CTranslate2 que llega a ser hasta cuatro veces más rápida y consume menos memoria, con la misma precisión. No es un modelo distinto: son los mismos pesos ejecutados de forma más eficiente. Si vas a transcribir volumen en local, empieza directamente por Faster-Whisper.

¿Whisper vale para generar subtítulos de YouTube?

Sí, y es uno de sus mejores usos. Con --output_format srt te genera el archivo de subtítulos con marcas de tiempo listo para subir a YouTube, Vimeo o el editor de vídeo que uses. Revisa los nombres propios y las cifras antes de publicar, que es donde falla, y ajusta los cortes de línea si el vídeo es para móvil.

¿Hay alguna alternativa mejor que Whisper?

Depende de qué necesites. Para transcripción pura en español, Whisper local sigue siendo insuperable en relación calidad/precio. Para reuniones con varios hablantes y resúmenes automáticos, AssemblyAI aporta funciones que Whisper no tiene. Para transcripción en directo con latencia mínima, Deepgram o los modelos de tiempo real de OpenAI. Y si no quieres programar nada, ahí está la comparativa de aplicaciones ya montadas.

Conclusión: elige tu camino

Tienes tres caminos claros según tu situación:

  1. Quieres algo rápido y fácil: API de OpenAI. Pagas céntimos, no instalas nada, funciona en cinco minutos.
  2. Quieres gratis y privacidad: Whisper local, o mejor, Faster-Whisper. Requiere algo de configuración pero tus datos no salen de tu máquina.
  3. Necesitas funciones avanzadas (diarización, resumen, capítulos): AssemblyAI o Deepgram. Cuesta algo más y te ahorra código.

Mi recomendación: empieza con la API para validar el concepto. Si lo usas mucho o manejas datos sensibles, migra a Faster-Whisper local. Y si necesitas saber quién dice qué, AssemblyAI.

La transcripción con IA abre muchas puertas: generar contenido desde vídeos, crear bases de conocimiento, automatizar actas, subtitular. El primer paso es transcribir. Lo que hagas después con ese texto es donde está el verdadero valor.

Guillermo del Pino
Escrito por

Guillermo del Pino

Director de Marketing e Innovación en Clínicas Cleardent. Escribo sobre inteligencia artificial aplicada a negocio real, con foco en asesorías, fiscalidad y el sector dental. Sin humo: herramientas, datos y criterio.