Conclusiones clave
- Creado por Georgi Gerganov en 2022; hoy mantenido bajo la organización ggml-org en GitHub.
- Licencia MIT: uso, modificación y redistribución gratuitos, incluido uso comercial.
- Funciona en CPU, Apple Metal/Core ML, NVIDIA CUDA, Vulkan, OpenVINO, AMD ROCm y backends Ascend NPU.
- No requiere entorno Python: se distribuye como binario C/C++ compilado, con bindings de Python opcionales.
- Admite transcripción de micrófono en tiempo real mediante su ejemplo de streaming, además de la transcripción por lotes de archivos.
- Última versión estable: v1.9.3, publicada el 20 de agosto de 2026.
📍 En una frase
whisper.cpp es un port gratuito en C/C++, con licencia MIT, del modelo de reconocimiento de voz Whisper de OpenAI, creado por Georgi Gerganov, que transcribe audio totalmente en el dispositivo mediante CPU, Apple Metal, NVIDIA CUDA y otros backends, sin Python.
💬 En términos simples
Convierte voz hablada en texto en tu propio equipo o dispositivo en lugar de enviarla a una API en la nube: descargas un binario compilado o lo compilas tú mismo, le das un archivo de audio o una transmisión de micrófono en vivo, y te devuelve una transcripción, gratis, con los mismos modelos que entrenó OpenAI.
📌Nota: Este análisis se centra en whisper.cpp como herramienta independiente: historia, instalación, comandos reales, licencia y límites honestos. Para un comparativo directo frente a faster-whisper en Apple Silicon y GPU NVIDIA, consulta el comparativo whisper.cpp vs faster-whisper.
Historia: quién creó whisper.cpp y por qué
OpenAI publicó su modelo de reconocimiento de voz Whisper en septiembre de 2022 como un modelo de pesos abiertos entrenado con una gran cantidad de audio multilingüe, distribuido como paquete de Python (openai-whisper) que depende de PyTorch y, para un buen rendimiento, de una GPU compatible con CUDA.
Georgi Gerganov portó el modelo a C/C++ puro poco después, también en 2022, en el repositorio ggml-org/whisper.cpp. Gerganov es también el creador de la librería de tensores ggml sobre la que se apoyan las matemáticas y la cuantización de whisper.cpp, y más tarde se hizo conocido por llama.cpp, el port equivalente en C/C++ para ejecutar localmente grandes modelos de lenguaje — ambos proyectos comparten la misma base ggml y el mismo objetivo de diseño: ejecutar en hardware normal un modelo que normalmente necesita Python y una GPU.
La motivación fue la portabilidad y la eficiencia de recursos, no solo la velocidad. La implementación original en Python/PyTorch de Whisper es sencilla de ejecutar en una estación de trabajo con una buena GPU, pero pesada de desplegar en una Raspberry Pi, una app de iOS, una página WebAssembly o una placa Linux embebida sin intérprete de Python. whisper.cpp elimina por completo la dependencia de PyTorch y Python, se compila en un binario pequeño y añade soporte de cuantización para que las variantes de modelo más pequeñas quepan en unos pocos cientos de megabytes de RAM.
El proyecto ha crecido mucho más allá de un proyecto de un único desarrollador. Hoy tiene cientos de colaboradores, está empaquetado para Debian, y ofrece soporte oficial para Core ML (Apple Neural Engine), CUDA, Vulkan, OpenVINO y otros backends que no existían en la publicación original de 2022. Sigue siendo un *entorno de ejecución* de Whisper: no entrena ni ajusta sus propios modelos, y cada transcripción sigue usando los mismos pesos publicados por OpenAI para un tamaño de modelo dado (de tiny a large-v3), convertidos al formato GGML del proyecto.
¿Quién creó whisper.cpp?
Georgi Gerganov creó whisper.cpp, publicado por primera vez en 2022 como port en C/C++ del modelo Whisper de OpenAI. Gerganov también creó la librería de tensores ggml sobre la que se ejecuta, y más tarde llama.cpp, el port equivalente para ejecutar localmente grandes modelos de lenguaje.
Qué hace realmente whisper.cpp
whisper.cpp toma una entrada de audio (un archivo WAV, y otros formatos mediante decodificación FFmpeg opcional, o una transmisión de micrófono en vivo) y produce una transcripción de texto, opcionalmente con marcas de tiempo por segmento y traducción al inglés. Para ello carga un modelo Whisper (convertido al formato de pesos GGML del proyecto) y ejecuta la inferencia mediante la librería de tensores ggml, totalmente en la máquina local.
- Transcripción por lotes. Apuntar el binario
whisper-clia un archivo de audio y obtener una transcripción, con opciones de salida en texto plano, subtítulos SRT/VTT, JSON o CSV. - Streaming en tiempo real. El ejemplo
whisper-streamcaptura audio de micrófono en vivo y lo transcribe de forma continua, útil para asistentes de voz o subtitulado en directo. - Transcripción y traducción multilingües. Los modelos Whisper subyacentes se entrenaron en muchos idiomas; whisper.cpp puede transcribir en el idioma de origen o traducir directamente al inglés, según los indicadores que se pasen.
- Inferencia acelerada por hardware. En Apple Silicon, whisper.cpp puede exportar modelos al formato Core ML para usar el Apple Neural Engine; en hardware NVIDIA usa CUDA; en otras GPU puede usar Vulkan u OpenVINO. En máquinas solo con CPU, usa instrucciones vectoriales AVX2 (x86) o NEON (ARM).
- Cuantización. Los modelos se pueden cuantizar (por ejemplo, a formatos GGML de 4 o 5 bits) para cambiar algo de precisión por un uso de memoria significativamente menor e inferencia más rápida — la misma técnica que usa llama.cpp para LLM.
Instalar y ejecutar whisper.cpp: paso a paso
Esta guía compila whisper.cpp desde el código fuente y ejecuta una primera transcripción, usando los comandos documentados en el propio README del proyecto.
- 1Clonar el repositorio.
Why it matters: Ejecuta `git clone https://github.com/ggml-org/whisper.cpp.git` seguido de `cd whisper.cpp`. Esto descarga el árbol completo de código fuente en C/C++, incluidos los archivos de compilación CMake y el script de descarga de modelos. - 2Descargar un modelo.
Why it matters: Ejecuta `sh ./models/download-ggml-model.sh base.en` para obtener el modelo base en inglés en formato GGML. Cambia `base.en` por `tiny`, `small`, `medium` o `large-v3` según el equilibrio entre precisión y velocidad que quieras, o quita el sufijo `.en` para un modelo multilingüe. - 3Compilar el proyecto.
Why it matters: Ejecuta `cmake -B build` seguido de `cmake --build build -j --config Release`. Esto compila los binarios de CLI (`whisper-cli`, `whisper-stream` y otros) en el directorio `build/bin/`. Este paso no requiere instalación de Python. - 4Transcribir un archivo de ejemplo.
Why it matters: Ejecuta `./build/bin/whisper-cli -f samples/jfk.wav` con el archivo de audio de ejemplo incluido en el repositorio. Esto confirma que la compilación funciona de principio a fin e imprime una transcripción en la terminal. - 5Transcribir tu propio audio.
Why it matters: Sustituye la ruta de ejemplo por tu propio archivo WAV: `./build/bin/whisper-cli -m models/ggml-base.en.bin -f your-audio.wav`. Añade `-osrt` para escribir también un archivo de subtítulos `.srt`, o `-oj` para salida en JSON. - 6(Opcional) Activar la aceleración por GPU.
Why it matters: En Apple Silicon, la aceleración Metal se usa automáticamente al compilar con los indicadores CMake predeterminados en macOS. En una máquina NVIDIA, añade `-DGGML_CUDA=ON` al paso `cmake -B build` (requiere tener instalado el toolkit de CUDA) para compilar con soporte CUDA. - 7(Opcional) Probar la transcripción en tiempo real.
Why it matters: Compila el ejemplo de streaming y ejecuta `./build/bin/whisper-stream -m models/ggml-base.en.bin` para transcribir de forma continua el audio del micrófono en vivo en lugar de un archivo fijo.
Ejemplos de uso reales
Más allá de la guía de instalación básica anterior, estas son invocaciones habituales del binario whisper-cli en escenarios reales.
- pywhispercpp proporciona bindings de Python para whisper.cpp, para equipos que quieren la aceleración Metal/CUDA pero prefieren llamarlo desde código Python en vez de invocar el binario CLI archivo por archivo.
- whisper.cpp también incluye un pequeño ejemplo de servidor HTTP local (
whisper-server) para equipos que quieren enviar audio por HTTP en lugar de invocar la CLI por archivo — útil para integrar whisper.cpp en un servicio existente sin depender de Python.
# Transcribir un archivo de audio a texto plano (salida por defecto)
./build/bin/whisper-cli -m models/ggml-base.en.bin -f interview.wav
# Transcribir y generar subtítulos SRT, usando el modelo más grande y preciso
./build/bin/whisper-cli -m models/ggml-large-v3.bin -f lecture.wav -osrt
# Traducir directamente audio no anglófono a texto en inglés
./build/bin/whisper-cli -m models/ggml-medium.bin -f french-audio.wav -tr
# Elegir una GPU concreta (máquinas con varias GPU)
./build/bin/whisper-cli -m models/ggml-large-v3.bin -f audio.wav -g 0
# Transcripción en tiempo real desde el micrófono predeterminado
./build/bin/whisper-stream -m models/ggml-base.en.bin -t 8Licencia y coste
whisper.cpp tiene licencia MIT — el archivo de licencia del repositorio oficial permite el uso, modificación y redistribución gratuitos, incluso en productos cerrados y comerciales, sin regalías y sin más requisito de atribución que conservar el aviso de licencia.
No existe ningún nivel de pago, suscripción ni tarifa de licencia para whisper.cpp en sí. Los únicos costes reales son el hardware en el que lo ejecutes (o una VM en la nube si eliges alojarlo ahí) y, si construyes un producto sobre él, tu propio tiempo de desarrollo. No hay medición de uso, ni clave de API, ni dependencia de un proveedor.
Los pesos del modelo Whisper subyacente también están publicados por OpenAI con licencia MIT, por lo que tanto el entorno de ejecución (whisper.cpp) como los pesos del modelo que carga tienen licencias permisivas para uso comercial.
¿Es whisper.cpp gratuito para uso comercial?
Sí. whisper.cpp tiene licencia MIT, y los pesos del modelo Whisper que usa también están publicados por OpenAI bajo licencia MIT. Ambos permiten uso, modificación y redistribución comercial sin coste.
Para qué no sirve whisper.cpp
whisper.cpp es un entorno de ejecución de transcripción, no un producto completo de IA conversacional o diarización de hablantes. Es la herramienta equivocada en estas situaciones:
- Diarización de hablantes ("quién dijo qué"). whisper.cpp transcribe lo que se dijo, pero no separa ni etiqueta de forma nativa a distintos hablantes en una grabación con varias personas. La diarización requiere un modelo o pipeline aparte (por ejemplo, combinar la transcripción de whisper.cpp con una herramienta de diarización) superpuesto encima.
- Latencia de streaming por debajo de 100 milisegundos a gran escala. El ejemplo integrado
whisper-streamfunciona bien para un único micrófono en vivo en una máquina, pero whisper.cpp no es un servicio de reconocimiento de voz en tiempo real diseñado específicamente y escalado horizontalmente, como sí lo estaría una API de voz en tiempo real dedicada para muchos usuarios simultáneos. - Cero configuración para usuarios no técnicos. whisper.cpp es una herramienta de línea de comandos que la mayoría de usuarios compila desde el código fuente u obtiene como binario compilado — no tiene un instalador gráfico pulido ni una ficha en una tienda de apps pensada para no desarrolladores. Quien quiera una app de transcripción de un clic debería recurrir a una aplicación gráfica construida sobre whisper.cpp, o a un servicio de transcripción alojado.
- Exprimir el último punto de rendimiento de GPU NVIDIA en un pipeline Python-first. En los modelos más grandes y en hardware NVIDIA, el comparativo de PromptQuorum encontró que el backend CTranslate2 de faster-whisper es más rápido y usa menos VRAM que la ruta CUDA de whisper.cpp — si tu despliegue ya es un servicio en Python sobre una GPU NVIDIA, faster-whisper suele ser la mejor opción.
Alternativas a whisper.cpp
faster-whisper
- Mejor para:
- Pipelines en Python sobre GPU NVIDIA — backend CTranslate2, ~4x el rendimiento del Whisper original
- Licencia:
- MIT
WhisperX
- Mejor para:
- Cuando necesitas marcas de tiempo palabra por palabra y diarización sobre las transcripciones de Whisper
- Licencia:
- BSD-2-Clause
API de OpenAI Whisper
- Mejor para:
- Equipos que prefieren una API en la nube gestionada frente al autoalojamiento, a cambio de tarifas por uso
- Licencia:
- Propietaria (API de pago)
Vosk
- Mejor para:
- Dispositivos sin conexión de muy pocos recursos donde una huella pequeña importa más que la precisión de Whisper
- Licencia:
- Apache-2.0
Preguntas frecuentes
¿Qué es whisper.cpp?
whisper.cpp es una reimplementación gratuita en C/C++, con licencia MIT, del modelo de reconocimiento de voz Whisper de OpenAI, creada por Georgi Gerganov, que ejecuta la transcripción localmente sin entorno Python.
¿Es gratuito whisper.cpp?
Sí. whisper.cpp tiene licencia MIT, sin nivel de pago, suscripción ni tarifa de uso. Los pesos del modelo Whisper que usa también están licenciados por OpenAI bajo MIT.
¿Necesito una GPU para ejecutar whisper.cpp?
No. whisper.cpp funciona en CPU con optimizaciones AVX2 (x86) o NEON (ARM), y los modelos más pequeños (tiny, base) se ejecutan cómodamente en tiempo real en hardware solo con CPU, incluida una Raspberry Pi. Una GPU (Apple Metal, NVIDIA CUDA o Vulkan) acelera modelos más grandes como large-v3, pero no es obligatoria.
¿whisper.cpp admite transcripción en tiempo real?
Sí, mediante el ejemplo whisper-stream, que captura audio de micrófono en vivo y lo transcribe de forma continua. La latencia depende del tamaño del modelo y del hardware — los modelos más pequeños en una CPU o GPU rápida son los que más se acercan al tiempo real.
¿Cuál es la diferencia entre whisper.cpp y faster-whisper?
whisper.cpp es una implementación pura en C/C++ sin dependencia de Python, diseñada para portabilidad entre CPU, Apple Metal, CUDA y dispositivos embebidos. faster-whisper es una librería de Python basada en CTranslate2, optimizada sobre todo para el rendimiento en GPU NVIDIA dentro de pipelines en Python. Consulta el comparativo detallado de PromptQuorum para cifras específicas por plataforma.
¿Puede whisper.cpp ejecutarse en una Raspberry Pi?
Sí. Los modelos tiny y base se ejecutan en tiempo real en la CPU de una Raspberry Pi 5 gracias a las optimizaciones ARM NEON de whisper.cpp, ya que el proyecto no tiene ninguna dependencia de Python o CUDA que instalar.
¿whisper.cpp traduce audio al inglés?
Sí. Al pasar el indicador -tr (traducir) a whisper-cli se transcribe voz no anglófona y se traduce directamente a texto en inglés, usando la capacidad de traducción integrada en los modelos Whisper multilingües.
¿Quién mantiene whisper.cpp hoy?
El proyecto se mantiene bajo la organización ggml-org en GitHub, fundada por su creador original, Georgi Gerganov, con contribuciones de cientos de desarrolladores de la comunidad. Sigue publicándose activamente, con la v1.9.3 lanzada el 20 de agosto de 2026.
¿whisper.cpp separa a los distintos hablantes de una grabación?
No de forma nativa. whisper.cpp transcribe voz a texto, pero no realiza diarización de hablantes por sí mismo. Para "quién dijo qué", combínalo con una herramienta de diarización dedicada o usa WhisperX, que añade diarización sobre las transcripciones de Whisper.
Veredicto
whisper.cpp logra exactamente lo que se propuso: llevar el modelo de reconocimiento de voz Whisper de OpenAI a cualquier dispositivo capaz de compilar C/C++, sin necesitar Python, CUDA ni un entorno de ejecución pesado. Esa portabilidad — funcionando sin cambios desde una Raspberry Pi hasta un Mac con Apple Silicon o una GPU compatible con Vulkan — no tiene un equivalente gratuito cercano para transcripción local y sin conexión, y la licencia MIT permite construir con seguridad productos comerciales sobre él. Es gratuito, está bien mantenido, y usa los mismos pesos de modelo que el Whisper original, así que la precisión para un tamaño de modelo dado coincide con lo que publicó OpenAI. Donde no es la opción más sólida es en un pipeline Python-first, solo con GPU NVIDIA, que busque el máximo rendimiento — ahí gana el backend CTranslate2 de faster-whisper, como documenta el comparativo directo de PromptQuorum. Para todos los demás casos — desarrolladores que apuntan a hardware embebido, Apple Silicon, apps multiplataforma, o cualquiera que quiera un único binario autónomo en lugar de un entorno Python — whisper.cpp es un punto de partida bien verificado y sin coste.
Fuentes
- whisper.cpp en GitHub — repositorio oficial: README, instrucciones de instalación, licencia e historial de versiones.
- Releases de whisper.cpp — historial de versiones, incluida la v1.9.3 (20 de agosto de 2026).
- LICENCIA de whisper.cpp — texto de la licencia MIT.
- Anuncio de OpenAI Whisper — publicación original del modelo Whisper en 2022.
