Whisper
OpenAI Whisper es un sistema ASR de código abierto que convierte con precisión voz en texto en 99 idiomas, admitiendo transcripción, traducción e identificación de idioma para una automatización robusta con IA.

Comprendiendo OpenAI Whisper
¿Whisper es un modelo o un sistema?
OpenAI Whisper puede considerarse tanto un modelo como un sistema, dependiendo del contexto.
- Como modelo, Whisper comprende arquitecturas de redes neuronales específicamente diseñadas para tareas ASR. Incluye varios modelos de diferentes tamaños, que van desde 39 millones hasta 1.550 millones de parámetros. Los modelos más grandes ofrecen mejor precisión pero requieren más recursos computacionales.
- Como sistema, Whisper abarca no solo la arquitectura del modelo sino también toda la infraestructura y procesos que lo rodean. Esto incluye los datos de entrenamiento, métodos de preprocesamiento y la integración de las diversas tareas que puede realizar, como la identificación de idioma y traducción.
Capacidades principales de Whisper
La función principal de Whisper es transcribir voz a texto. Destaca en:
- Reconocimiento de voz multilingüe: Soporta 99 idiomas, lo que lo convierte en una herramienta poderosa para aplicaciones globales.
- Traducción de voz: Capaz de traducir voz de cualquier idioma compatible a texto en inglés.
- Identificación de idioma: Detecta automáticamente el idioma hablado sin necesidad de especificación previa.
- Robustez ante acentos y ruido de fondo: Entrenado con datos diversos, Whisper maneja eficazmente acentos variados y entornos ruidosos.
¿Cómo funciona OpenAI Whisper?
Arquitectura Transformer
En el corazón de Whisper se encuentra la arquitectura Transformer, específicamente un modelo codificador-decodificador. Los Transformers son redes neuronales que sobresalen en el procesamiento de datos secuenciales y la comprensión de contexto en largas secuencias. Introducidos en el artículo “Attention is All You Need” en 2017, los Transformers se han vuelto fundamentales en muchas tareas de PLN.
El proceso de Whisper implica:
- Preprocesamiento de audio: El audio de entrada se divide en segmentos de 30 segundos y se convierte en un espectrograma log-Mel, capturando la frecuencia e intensidad de las señales de audio a lo largo del tiempo.
- Codificador: Procesa el espectrograma para generar una representación numérica del audio.
- Decodificador: Utiliza un modelo de lenguaje para predecir la secuencia de tokens de texto (palabras o subpalabras) correspondientes al audio.
- Uso de tokens especiales: Incorpora tokens especiales para tareas como identificación de idioma, marcas de tiempo y directivas específicas (por ejemplo, transcribir o traducir).
Entrenamiento con datos supervisados multilingües y multitarea
Whisper fue entrenado con un enorme conjunto de 680,000 horas de datos supervisados recolectados de la web. Esto incluye:
- Datos multilingües: Aproximadamente 117,000 horas de los datos están en 99 idiomas diferentes, lo que mejora la capacidad del modelo para generalizar entre idiomas.
- Condiciones acústicas diversas: El dataset contiene audio de varios dominios y entornos, garantizando robustez ante diferentes acentos, dialectos y ruidos de fondo.
- Aprendizaje multitarea: Al entrenar en múltiples tareas simultáneamente (transcripción, traducción, identificación de idioma), Whisper aprende representaciones compartidas que mejoran el desempeño general.
Aplicaciones y casos de uso
Servicios de transcripción
- Reuniones virtuales y toma de notas: Automatiza la transcripción en plataformas que atienden audio general e industrias específicas como educación, salud, periodismo y servicios legales.
- Creación de contenidos: Genera transcripciones de podcasts, videos y transmisiones en vivo para mejorar la accesibilidad y ofrecer referencias en texto.
Traducción de idiomas
- Comunicación global: Traduce voz en un idioma a texto en inglés, facilitando la comunicación entre lenguas.
- Herramientas para aprendizaje de idiomas: Ayuda a estudiantes a comprender pronunciación y significado en diferentes idiomas.
Automatización con IA y chatbots
- Chatbots activados por voz: Integra Whisper en chatbots para permitir interacciones por voz, mejorando la experiencia de usuario.
- Asistentes de IA: Desarrolla asistentes capaces de comprender y procesar comandos hablados en varios idiomas.
Mejoras en accesibilidad
- Subtítulos: Genera subtítulos para contenido en video, ayudando a personas con discapacidad auditiva.
- Tecnologías de asistencia: Permite que dispositivos transcriban y traduzcan voz para usuarios que necesitan apoyo lingüístico.
Centros de llamadas y atención al cliente
- Transcripción en tiempo real: Proporciona a los agentes transcripciones en tiempo real de llamadas para un mejor servicio.
- Análisis de sentimiento: Analiza el texto transcrito para evaluar el sentimiento del cliente y mejorar las interacciones.
Ventajas de OpenAI Whisper
Soporte multilingüe
Con cobertura de 99 idiomas, Whisper destaca por su capacidad para gestionar entradas lingüísticas diversas. Esta capacidad multilingüe lo hace adecuado para aplicaciones y servicios globales orientados a audiencias internacionales.
Alta precisión y robustez
Entrenado con extensos datos supervisados, Whisper alcanza tasas de precisión altas en tareas de transcripción. Su robustez ante diferentes acentos, dialectos y ruidos de fondo lo hace confiable en escenarios reales.
Versatilidad en tareas
Más allá de la transcripción, Whisper puede realizar:
- Identificación de idioma: Detecta el idioma hablado sin entrada previa.
- Traducción de voz: Traduce voz de un idioma a texto en inglés.
- Generación de marcas de tiempo: Proporciona marcas temporales a nivel de frase en las transcripciones.
Disponibilidad de código abierto
Lanzado como software de código abierto, Whisper permite a los desarrolladores:
- Personalizar y ajustar: Adaptar el modelo para tareas o dominios específicos.
- Integrar en aplicaciones: Incorporar Whisper en productos y servicios sin restricciones de licencia.
- Contribuir a la comunidad: Mejorar el modelo y compartir avances.
Limitaciones y consideraciones
Requisitos computacionales
- Uso intensivo de recursos: Los modelos grandes requieren gran potencia de cómputo y memoria (hasta 10 GB de VRAM para el modelo más grande).
- Tiempo de procesamiento: La velocidad de transcripción puede variar; los modelos grandes procesan más lentamente que los pequeños.
Propenso a alucinaciones
- Transcripciones inexactas: En ocasiones, Whisper puede producir texto que no fue pronunciado (alucinaciones). Es más probable en ciertos idiomas o con audio de baja calidad.
Soporte limitado para idiomas no ingleses
- Sesgo en los datos: Una parte significativa de los datos de entrenamiento está en inglés, lo que puede afectar la precisión en idiomas menos representados.
- Se requiere ajuste fino: Puede ser necesario entrenamiento adicional para mejorar el rendimiento en idiomas o dialectos específicos.
Limitaciones de entrada
- Duración del audio: Whisper procesa audio en fragmentos de 30 segundos, lo que puede complicar la transcripción de audios continuos largos.
- Restricciones de tamaño de archivo: El modelo de código abierto puede tener limitaciones en el tamaño y formato de los archivos de entrada.
OpenAI Whisper en automatización y chatbots de IA
Mejorando las interacciones de usuario
Al integrar Whisper en chatbots y asistentes de IA, los desarrolladores pueden permitir:
- Comandos de voz: Permitir a los usuarios interactuar mediante voz en vez de texto.
- Soporte multilingüe: Atender a usuarios que prefieren o requieren otros idiomas.
- Mejora de accesibilidad: Ayudar a usuarios con discapacidades o que no pueden usar métodos de entrada tradicionales.
Racionalizando flujos de trabajo
- Transcripciones automatizadas: Reduce el esfuerzo manual en la toma de notas y registro.
- Análisis de datos: Convierte contenido hablado en texto para análisis, monitoreo y obtención de información.
Ejemplos en la práctica
- Bots para reuniones virtuales: Herramientas que se unen a reuniones en línea para transcribir discusiones en tiempo real.
- Bots de atención al cliente: Sistemas que comprenden y responden a solicitudes habladas, mejorando la experiencia del cliente.
- Plataformas educativas: Aplicaciones que transcriben clases o brindan traducciones para estudiantes.
Alternativas a OpenAI Whisper
Alternativas de código abierto
- Mozilla DeepSpeech: Motor ASR de código abierto que permite entrenar modelos personalizados.
- Kaldi: Kit ampliamente utilizado en investigación e industria para reconocimiento de voz.
- Wav2vec: Sistema de Meta AI para procesamiento de voz auto-supervisado.
APIs comerciales
- Google Cloud Speech-to-Text: Ofrece reconocimiento de voz con soporte lingüístico integral.
- Microsoft Azure AI Speech: Proporciona servicios de voz con opciones de personalización.
- AWS Transcribe: Servicio de reconocimiento de voz de Amazon con funciones como vocabulario personalizado.
Proveedores especializados
- Gladia: Ofrece una arquitectura híbrida y mejorada de Whisper con capacidades adicionales.
- AssemblyAI: Proporciona APIs de voz a texto con funciones como moderación de contenido.
- Deepgram: Ofrece transcripción en tiempo real con opciones de entrenamiento personalizado.
Factores a considerar al elegir Whisper
Precisión y velocidad
- Compromisos: Los modelos más grandes ofrecen mayor precisión pero requieren más recursos y son más lentos.
- Pruebas: Evalúa el rendimiento con datos reales relevantes para tu aplicación.
Volumen de audio
- Escalabilidad: Considera necesidades de hardware e infraestructura para procesar grandes volúmenes.
- Procesamiento por lotes: Implementa métodos para gestionar grandes conjuntos de datos eficientemente.
Funcionalidades avanzadas
- Características adicionales: Evalúa si se necesitan funciones como transcripción en vivo o diarización de hablantes.
- Personalización: Determina el esfuerzo necesario para implementar funciones adicionales.
Soporte de idiomas
- Idiomas objetivo: Verifica el desempeño del modelo en los idiomas relevantes para tu aplicación.
- Ajuste fino: Planea un posible entrenamiento adicional para idiomas menos representados.
Experiencia y recursos
- Experiencia técnica: Asegúrate de que tu equipo tenga las habilidades para implementar y adaptar el modelo.
- Infraestructura: Evalúa los requisitos de hardware y capacidades de alojamiento.
Consideraciones de costo
- Código abierto vs. comercial: Equilibra el ahorro inicial del código abierto con los posibles costos a largo plazo de mantenimiento y escalado.
- Costo total de propiedad: Considera hardware, tiempo de desarrollo y costos de soporte continuo.
¿Cómo se usa Whisper en Python?
Whisper está implementado como una biblioteca de Python, permitiendo la integración fluida en proyectos basados en Python. Usar Whisper en Python implica configurar el entorno adecuado, instalar las dependencias necesarias y utilizar las funciones de la biblioteca para transcribir o traducir archivos de audio.
Configuración de Whisper en Python
Antes de usar Whisper, debes preparar tu entorno de desarrollo instalando Python, PyTorch, FFmpeg y la biblioteca Whisper.
Prerrequisitos
- Python: Se recomienda versión 3.8 a 3.11.
- PyTorch: Marco de aprendizaje profundo necesario para ejecutar el modelo Whisper.
- FFmpeg: Herramienta de línea de comandos para manejar archivos de audio y video.
- Biblioteca Whisper: El paquete de Python proporcionado por OpenAI.
Paso 1: Instala Python y PyTorch
Si aún no tienes Python instalado, descárgalo desde el sitio oficial. Para instalar PyTorch, utiliza pip:
pip install torch
Alternativamente, visita el sitio web de PyTorch para instrucciones específicas de instalación según tu sistema operativo y versión de Python.
Paso 2: Instala FFmpeg
Whisper requiere FFmpeg para procesar archivos de audio. Instala FFmpeg usando el gestor de paquetes apropiado para tu sistema operativo.
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
MacOS (con Homebrew):
brew install ffmpeg
Windows (con Chocolatey):
choco install ffmpeg
Paso 3: Instala la biblioteca Whisper
Instala el paquete de Python Whisper usando pip:
pip install -U openai-whisper
Para instalar la última versión directamente desde el repositorio de GitHub:
pip install git+https://github.com/openai/whisper.git
Nota para usuarios de Windows
Asegúrate de que el Modo Desarrollador esté activado:
- Ve a Configuración.
- Navega a Privacidad y seguridad > Para desarrolladores.
- Activa el Modo Desarrollador.
Modelos disponibles y especificaciones
Whisper ofrece varios modelos que varían en tamaño y capacidades. Los modelos van desde tiny
hasta large
, equilibrando de diferente manera la velocidad y la precisión.
Tamaño | Parámetros | Modelo solo inglés | Modelo multilingüe | VRAM requerida | Velocidad relativa |
---|---|---|---|---|---|
tiny | 39 M | tiny.en | tiny | ~1 GB | ~32x |
base | 74 M | base.en | base | ~1 GB | ~16x |
small | 244 M | small.en | small | ~2 GB | ~6x |
medium | 769 M | medium.en | medium | ~5 GB | ~2x |
large | 1550 M | N/A | large | ~10 GB | 1x |
Cómo elegir el modelo adecuado
- Modelos solo inglés (
.en
): Optimizados para transcripción en inglés, con mejor rendimiento para audio en inglés. - Modelos multilingües: Capaces de transcribir múltiples idiomas, ideales para aplicaciones globales.
- Tamaño del modelo: Los modelos más grandes ofrecen mayor precisión pero requieren más recursos computacionales. Elige el modelo que se ajuste a tu hardware y necesidades de rendimiento.
Uso de Whisper en Python
Tras configurar el entorno e instalar los componentes necesarios, puedes comenzar a usar Whisper en tus proyectos Python.
Importar la biblioteca y cargar un modelo
Comienza importando la biblioteca Whisper y cargando un modelo:
import whisper
# Carga el modelo deseado
model = whisper.load_model("base")
Sustituye "base"
por el nombre del modelo que se ajuste a tu aplicación.
Transcribir archivos de audio
Whisper ofrece una función simple transcribe
para convertir archivos de audio en texto.
Ejemplo: Transcribir un archivo de audio en inglés
# Transcribe el archivo de audio
result = model.transcribe("path/to/english_audio.mp3")
# Imprime la transcripción
print(result["text"])
Explicación
model.transcribe()
: Procesa el archivo de audio y devuelve un diccionario con la transcripción y otros metadatos.result["text"]
: Accede al texto transcrito del resultado.
Traducir audio a inglés
Whisper puede traducir audio de varios idiomas al inglés.
Ejemplo: Traducir audio en español a inglés
# Transcribe y traduce audio en español a inglés
result = model.transcribe("path/to/spanish_audio.mp3", task="translate")
# Imprime el texto traducido
print(result["text"])
Explicación
task="translate"
: Indica al modelo que traduzca el audio al inglés en vez de solo transcribirlo literalmente.
Especificar el idioma
Aunque Whisper puede detectar automáticamente el idioma, especificarlo puede mejorar la precisión y velocidad.
Ejemplo: Transcribir audio en francés
# Transcribe audio en francés especificando el idioma
result = model.transcribe("path/to/french_audio.wav", language="fr")
# Imprime la transcripción
print(result["text"])
Detectar el idioma de un audio
Whisper puede identificar el idioma hablado en un archivo de audio usando el método detect_language
.
Ejemplo: Detección de idioma
# Carga y preprocesa el audio
audio = whisper.load_audio("path/to/unknown_language_audio.mp3")
audio = whisper.pad_or_trim(audio)
# Convierte a espectrograma log-Mel
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# Detecta el idioma
_, probs = model.detect_language(mel)
language = max(probs, key=probs.get)
print(f"Idioma detectado: {language}")
Explicación
whisper.load_audio()
: Carga el archivo de audio.whisper.pad_or_trim()
: Ajusta la duración del audio para cumplir con los requisitos del modelo.whisper.log_mel_spectrogram()
: Convierte el audio al formato esperado por el modelo.model.detect_language()
: Devuelve probabilidades para cada idioma, identificando el más probable.
Uso avanzado y personalización
Para mayor control sobre el proceso de transcripción, puedes utilizar funciones de bajo nivel y personalizar las opciones de decodificación.
Uso de la función decode
La función decode
permite especificar opciones como idioma, tarea y si incluir marcas de tiempo.
Ejemplo: Opciones de decodificación personalizadas
# Configura opciones de decodificación
options = whisper.DecodingOptions(language="de", without_timestamps=True)
# Decodifica el audio
result = whisper.decode(model, mel, options)
# Imprime el texto reconocido
print(result.text)
Procesamiento de audio en vivo
Puedes integrar Whisper para transcribir audio en vivo desde un micrófono.
Ejemplo: Transcribir entrada de micrófono en vivo
import whisper
import sounddevice as sd
# Carga el modelo
model = whisper.load_model("base")
# Graba audio desde el micrófono
duration = 5 # segundos
fs = 16000 # Frecuencia de muestreo
print("Grabando...")
audio = sd.rec(int(duration * fs), samplerate=fs, channels=1, dtype='float32')
sd.wait
Preguntas frecuentes
- ¿Qué es OpenAI Whisper?
OpenAI Whisper es un avanzado sistema de reconocimiento automático de voz (ASR) desarrollado por OpenAI, diseñado para transcribir el lenguaje hablado a texto escrito usando aprendizaje profundo. Admite 99 idiomas y destaca en transcripción, traducción e identificación de idioma.
- ¿Cómo funciona Whisper?
Whisper utiliza una arquitectura de codificador-decodificador basada en transformadores, procesa el audio en espectrogramas log-Mel y genera texto mediante un modelo de lenguaje. Fue entrenado con 680,000 horas de datos multilingües y multitarea para alta precisión y robustez.
- ¿Cuáles son las principales características de Whisper?
Whisper admite reconocimiento de voz multilingüe, traducción de voz, identificación automática de idioma, robustez ante acentos y ruido, y proporciona acceso de código abierto para personalización e integración.
- ¿Cuáles son los requisitos de hardware para Whisper?
Los requisitos de hardware dependen del tamaño del modelo: los modelos pequeños como 'tiny' requieren ~1GB de VRAM, mientras que el más grande requiere ~10GB. Whisper es más rápido en GPUs pero puede funcionar en CPUs con tiempos de procesamiento mayores.
- ¿Se puede integrar Whisper en proyectos Python?
Sí, Whisper está implementado como una biblioteca de Python y puede instalarse vía pip. Permite fácil integración en proyectos Python para transcripción de voz, traducción y aplicaciones de voz en tiempo real.
- ¿Cuáles son los casos de uso comunes de Whisper?
Los casos de uso comunes incluyen transcripción automática de reuniones, chatbots activados por voz, traducción en vivo, herramientas de accesibilidad (subtítulos y tecnología asistiva), automatización de centros de llamadas y sistemas de automatización controlados por voz.
- ¿Existen alternativas a OpenAI Whisper?
Sí, las alternativas incluyen motores de código abierto como Mozilla DeepSpeech, Kaldi, Wav2vec y APIs comerciales como Google Cloud Speech-to-Text, Microsoft Azure AI Speech y AWS Transcribe.
- ¿Whisper es de código abierto?
Sí, OpenAI Whisper es de código abierto, lo que permite a los desarrolladores personalizarlo, ajustarlo e integrarlo en sus propios productos y servicios sin restricciones de licencia.
Comienza a construir con OpenAI Whisper
Integra capacidades avanzadas de voz a texto en tus aplicaciones, automatiza flujos de trabajo y mejora la experiencia de usuario con OpenAI Whisper y FlowHunt.