Logotipo de VRAMfarm VRAMfarm
ES
Registrarse

12 de noviembre de 2026 · Equipo de VRAMfarm

Transcripción con Whisper en una GPU: large-v3 o turbo, faster-whisper y hablantes con WhisperX

Ondas de audio que se convierten en líneas de transcripción con marcas de tiempo y etiquetas de hablante en una GPU: transcripción con Whisper en una GPU alquilada

Cien horas de entrevistas grabadas suenan a semanas tecleando. En una RTX 4090 alquilada, Whisper large-v3 las transcribe en una o dos horas de tiempo de GPU, unos 0,89 €, con marcas de tiempo para cada frase. El modelo solo necesita 3–10 GB de memoria, así que la pregunta no es tanto qué tarjeta cabe como qué versión de Whisper usar y cómo mantener ocupada la GPU.

Qué Whisper: large-v3, turbo o uno más pequeño

Whisper, de OpenAI, viene en varios tamaños. Para trabajar en GPU importan dos, que comparten el mismo diseño de codificador pero tienen decodificadores distintos.

Modelo Parámetros VRAM, código original (fp16) VRAM, faster-whisper Velocidad Lo mejor para
large-v3 1,55 B ~10 GB ~4–5 GB en fp16, ~3 GB en int8 1× Máxima precisión, traducción, audio difícil
large-v3-turbo 0,8 B ~6 GB ~2–3 GB varias veces más rápido Habla limpia, grandes volúmenes
medium / small 0,77 B / 0,24 B 2–5 GB 1–2 GB aún más rápido Trabajos solo en inglés, borradores muy baratos

Turbo es large-v3 con un decodificador mucho más pequeño (4 capas en lugar de 32). Con habla clara, su precisión se acerca a la de large-v3 y va varias veces más rápido. Comete más errores con acentos, voces que se pisan e idiomas poco comunes, y no se entrenó para traducir. Un buen punto de partida: turbo para grabaciones limpias como pódcasts y clases, y large-v3 para llamadas telefónicas, salas ruidosas, acentos marcados o cualquier cosa que vayas a citar.

faster-whisper es una reimplementación de Whisper sobre el motor CTranslate2. Mismos modelos y prácticamente la misma precisión, hasta unas cuatro veces más rápido que el código de OpenAI y con menos memoria, y puede cuantizar a int8 con poca pérdida. WhisperX se apoya en faster-whisper y añade dos cosas: marcas de tiempo por palabra mediante un modelo de alineación aparte, y etiquetas de hablante (diarización).

¿Necesitas una GPU?

Para unas pocas grabaciones al mes, no. Un portátil con Apple Silicon o una CPU reciente ejecuta turbo con whisper.cpp a un ritmo cómodo, y las API de transcripción en la nube cobran por minuto sin nada que configurar. Las API de la categoría de Whisper cuestan desde unos céntimos hasta unos 0,30 € por hora de audio (noviembre de 2026), según el proveedor y el modelo.

Una GPU alquilada gana cuando:

  • tienes volumen: decenas o cientos de horas, en las que el precio por hora de la API se acumula y la GPU está ocupada cada minuto;
  • las grabaciones son sensibles: entrevistas, pacientes, llamadas internas que no quieres mandar a la API de un tercero;
  • necesitas etiquetas de hablante o un pipeline a medida, por ejemplo transcribir, etiquetar hablantes y luego resumir con un LLM local;
  • los archivos son grandes: muchas API limitan el tamaño de cada subida; a tu propio servidor le da igual.

Velocidad: horas de audio por hora de GPU

La velocidad de Whisper se suele expresar como múltiplo del tiempo real: 50× significa una hora de audio en 72 segundos. La palanca más grande no es la tarjeta, sino el procesamiento por lotes: el pipeline por lotes de faster-whisper pasa muchos fragmentos de 30 segundos por el modelo a la vez, y así mantiene ocupada una GPU moderna.

Configuración RTX 3060 RTX 3090 RTX 4090
large-v3, código original de OpenAI 4–8× 6–15× 8–20×
large-v3, faster-whisper, un fragmento cada vez 8–15× 15–30× 20–40×
large-v3, faster-whisper por lotes (lote de 16) 20–40× 40–80× 60–150×
turbo, faster-whisper por lotes 40–90× 80–180× 120–250×

Lee cada cifra como «horas de audio por hora de GPU». Son rangos para planificar, sacados de benchmarks públicos y de las especificaciones de las tarjetas, no mediciones nuestras. La velocidad real depende de cuánto del audio es habla, del tamaño del beam, de los ajustes de VAD y de la CPU, que decodifica los archivos de audio y puede convertirse en el cuello de botella en la parte alta. La diarización de WhisperX añade una pasada aparte; cuenta con un 30–60 % más de tiempo en archivos largos.

La tarjeta más barata por hora de audio suele ser la RTX 3090 o la RTX 4090, la que tenga mejor relación de precio en ese momento; la página de precios muestra las dos. Las tarjetas de centro de datos como la H100 son aún más rápidas, pero la transcripción no aprovecha su memoria y cuestan varias veces más por hora.

Instalar faster-whisper en un servidor alquilado

No hay una app de Whisper lista para usar; te basta con un servidor vacío PyTorch + Jupyter. Elige una tarjeta de 12–24 GB, lánzalo y abre Jupyter → File → New → Terminal (o SSH, mira la guía de claves SSH).

Sube primero el audio. Convertirlo en tu ordenador a 16 kHz mono ahorra mucho tiempo de subida sin perjudicar la precisión, porque Whisper lo remuestrea a 16 kHz de todos modos: una hora de MP3 a 128 kbps ocupa unos 58 MB, y una hora de Opus mono a 16 kHz, unos 11 MB.

# en tu ordenador, una vez por archivo
ffmpeg -i interview.mp4 -vn -ac 1 -ar 16000 -c:a libopus -b:a 24k interview.opus

Sube un zip por Jupyter o con scp, o descárgalo en el servidor desde tu propio almacenamiento en la nube. Después, en el servidor:

pip install faster-whisper
mkdir -p /workspace/audio /workspace/out   # pon los archivos de audio en /workspace/audio

Guarda esto como /workspace/transcribe.py:

import glob, os
from faster_whisper import WhisperModel, BatchedInferencePipeline

model = WhisperModel("large-v3", device="cuda", compute_type="float16")  # o "large-v3-turbo"
batched = BatchedInferencePipeline(model=model)

def ts(t):
    h, rem = divmod(t, 3600); m, s = divmod(rem, 60)
    return f"{int(h):02}:{int(m):02}:{s:06.3f}".replace(".", ",")

for path in sorted(glob.glob("/workspace/audio/*")):
    name = os.path.splitext(os.path.basename(path))[0]
    segments, info = batched.transcribe(path, batch_size=16, vad_filter=True)  # añade language="es" si sabes el idioma
    with open(f"/workspace/out/{name}.srt", "w") as srt, open(f"/workspace/out/{name}.txt", "w") as txt:
        for i, seg in enumerate(segments, 1):
            srt.write(f"{i}\n{ts(seg.start)} --> {ts(seg.end)}\n{seg.text.strip()}\n\n")
            txt.write(seg.text.strip() + "\n")
    print(name, info.language, round(info.duration / 60), "min")

Ejecútalo con nohup python /workspace/transcribe.py > /workspace/log.txt 2>&1 & para que siga funcionando cuando cierres el navegador. La primera ejecución descarga el modelo (unos 3 GB para large-v3), que cuenta como tráfico con la tarifa de la máquina.

Si faster-whisper se queja de que no puede cargar libcudnn o libcublas, es que faltan en la ruta las bibliotecas de CUDA que espera: ejecuta pip install nvidia-cublas-cu12 nvidia-cudnn-cu12 y sigue la línea de LD_LIBRARY_PATH del README de faster-whisper. El driver y la versión de CUDA de la máquina se muestran antes de lanzar; hay más sobre eso en versión del driver de CUDA incompatible.

Fijar language cuando sabes el idioma ahorra tiempo y evita alguna detección errónea cuando los primeros 30 segundos son tranquilos. Con batch_size=16, large-v3 usa unos 6–10 GB de VRAM; en una tarjeta de 12 GB, baja a 8 si te quedas sin memoria.

Etiquetas de hablante con WhisperX

En entrevistas y reuniones normalmente quieres «Hablante 1 / Hablante 2», no un único bloque de texto. WhisperX lo hace con un solo comando. Fija sus propias versiones de PyTorch y de otras bibliotecas, así que instálalo en un entorno virtual aparte para que no rompa otras herramientas (descarga su propio PyTorch, unos cuantos GB más de tráfico):

apt-get update && apt-get install -y ffmpeg
python -m venv /workspace/wx && . /workspace/wx/bin/activate
pip install whisperx
export HF_TOKEN=<your Hugging Face read token>
whisperx /workspace/audio/meeting.opus --model large-v3 --language en \
  --diarize --hf_token $HF_TOKEN --output_format srt --output_dir /workspace/out

Los modelos de diarización son de pyannote y tienen acceso restringido en Hugging Face: abre sus páginas de modelo, acepta las condiciones y usa un token de lectura. Añade --min_speakers 2 --max_speakers 4 cuando sepas cuántos hablantes hay; mejora bastante la separación. Cuenta con unos cuantos gigas más de VRAM además de la transcripción; una tarjeta de 24 GB tiene sitio de sobra.

La diarización es el eslabón más débil de la cadena. Las voces que se pisan, las voces parecidas y las interjecciones cortas («sí», «vale») reciben la etiqueta equivocada más a menudo de lo que Whisper se equivoca con las palabras. Revisa los hablantes de los primeros minutos antes de fiarte de una transcripción larga.

Subtítulos: SRT y VTT

El script de arriba escribe archivos SRT con un segmento de Whisper por subtítulo. Los segmentos pueden ser largos, de hasta 30 segundos de habla, y se leen mal en pantalla. WhisperX lo resuelve mejor, porque alinea cada palabra con el audio:

whisperx video.opus --model large-v3 --language en --output_format srt \
  --max_line_width 42 --max_line_count 2 --output_dir /workspace/out

Así obtienes subtítulos de dos líneas como máximo, de 42 caracteres cada una, un estilo habitual en televisión, con tiempos que siguen a las palabras. Usa --output_format vtt para reproductores web. YouTube, Premiere, DaVinci Resolve y la mayoría de los reproductores importan SRT directamente. Para subtítulos traducidos, usa el modo de traducción de Whisper al inglés, o transcribe en el idioma original y traduce el texto del SRT con un LLM local, que normalmente suena más natural.

Lo que cuestan 100 horas de audio

En el punto medio de los rangos de arriba, con faster-whisper por lotes:

Trabajo Tarjeta Velocidad usada Tiempo de GPU Coste
100 h, large-v3 RTX 3090 60× 1 h 40 min 0,50 €
100 h, large-v3 RTX 4090 100× 1 h 0,59 €
100 h, turbo RTX 4090 180× 33 min 0,32 €
100 h, large-v3 con hablantes de WhisperX RTX 4090 65× 1 h 32 min 0,91 €

Súmale 10–15 minutos de preparación y descarga de modelos. Los trabajos pequeños pagan el mínimo de 15 minutos por lanzamiento: una hora de audio cuesta como mínimo 0,15 € en una RTX 4090, por rápido que vaya. Así que junta las grabaciones y transcríbelas en una sola sesión en vez de un archivo por lanzamiento.

Con una API a unos 0,15–0,30 € por hora de audio (noviembre de 2026), las mismas 100 horas costarían unos 15–30 €, y con los proveedores de inferencia rápida más baratos, unos pocos euros. La GPU sale más barata con volumen, pero la configuración y el tiempo corren de tu cuenta; para cinco horas de audio al mes, lo sensato es la API.

Cuando termine el script, comprime /workspace/out en un zip, descárgalo desde Jupyter y detén el servidor. Si vas a repetir el mismo trabajo la semana que viene, Guardar y detener conserva los scripts y el entorno de WhisperX en /workspace (solo el entorno ocupa unos cuantos GB de almacenamiento); borra antes el audio si no debe quedarse guardado. La página de Whisper tiene la versión corta de estos comandos.

Preguntas sobre el tema

¿Qué idiomas entiende Whisper?

Whisper se entrenó con 99 idiomas. La precisión es muy buena en inglés, español, alemán, francés, italiano, portugués y otros idiomas muy hablados, y baja en los idiomas con pocos datos de entrenamiento. Prueba antes con unos minutos de tu propio audio.

¿Puede Whisper traducir al inglés?

Sí, large-v3 tiene un modo de traducción que genera texto en inglés a partir de cualquier idioma admitido. El modelo turbo no se entrenó para traducir y lo hace mal, así que para eso usa large-v3.

¿Por qué la transcripción repite una frase o se inventa texto en los silencios?

Whisper rellena las pausas largas y la música con suposiciones. Activa la detección de actividad de voz (vad_filter=True en faster-whisper; en WhisperX viene integrada), que se salta las partes en silencio antes de transcribir.

¿Están seguras mis grabaciones en una máquina alquilada?

Las grabaciones se quedan en el servidor que has alquilado y se eliminan con su disco cuando se detiene; ninguna API de voz externa las ve. Aun así, el anfitrión maneja el hardware, así que para audio muy confidencial elige el país de la máquina antes de lanzar y borra los archivos al terminar.

Encuentra la GPU en la que cabe tu modelo

Elige un modelo y verás la tarjeta más barata con VRAM suficiente, con facturación por minuto en euros.