
Whisper de OpenAI es un modelo de PLN (Procesamiento de lenguaje natural) y también de ASR (Reconocimiento de voz), que transforma voz hablada en texto escrito, liberado bajo licencia MIT (100 % open source y gratuita), hecho en lenguaje Python.
Whisper no es un LLM (Large Language Models), como p. ej. ChatGPT, debido a que no genera texto libre a partir de texto. Sin embargo, se puede usar junto con LLMs, para tareas de análisis, resumen o traducción de texto manuscrito.
Whisper es actualmente, con toda probabilidad, la mejor herramienta libre/Open source para transcribir voz a texto. Una herramienta de alta precisión disponible para multitud de idiomas, incluyendo el español, y para multitud de formatos de audio, incluyendo MP3, WAV, M4A, …
Existe un modelo local, fácilmente instalable y usable desde línea de comandos, que no necesita Internet para funcionar, con las consiguientes ventajas que implica, como la privacidad y seguridad de los datos tratados con la herramienta.
Whisper Soporta transcripción y traducción.
Tabla de contenidos
Modelos disponibles en Whisper
- tiny ~39 MB. Baja. Muy rápida
- base ~74 MB. Moderada. Muy rápida
- small ~244 MB. Buena. Rápida
- medium ~769 MB. Muy buena. Lenta
- large ~1550 MB. Excelente. Más lenta
Uso de Whisper en instalación local o en línea
Whisper en una instalación local es 100% libre, gratuito y sin límites, aunque requiere de cierta potencia de procesamiento.
Sin embargo, en línea (Internet) es algo diferente, ya que no existe Una plataforma oficial de OpenAI para usar Whisper en línea y, por tanto, hay que usar servicios de terceros. Estos suelen tener límites de duración, restricciones o publicidad. En muchos caso, se ofrece una versión gratuita y otra de pago.
Como conclusión, si su uso de Whisper no es algo muy puntual, le recomendamos que instale la versión de escritorio, disponible para Linux, Windows y macOS.
Whisper vs VOSK
VOSK es otro ASR lilre de gran calidad. Menos preciso aunque más ligero que Whisper, corre en dispositivos móviles y Raspberry Pi.
Whisper es superior a VOSK en cuanto a precisión en la transcripción, aunque los modelos de Whisper son a menudo más grandes, más pesados y más exigentes en recursos de computación. En contrapartida, VOSK es ligero y funciona en dispositivos limitados, como una Raspberry Pi y teléfonos móviles.
Whisper ha sido entrenado con una gran cantidad de datos, y lo que le otorga una muy alta precisión en la transcripción, especialmente en condiciones no óptimas, como reconociendo acentos, con ruido de fondo, etc.
En resumen, Whisper es adecuado para proyectos donde la capacidad de cómputo no es una limitación.
Por otra parte, tanto whisper como VOSK tienen soporte completo del idioma español, y son relativamente fáciles de utilizar e integrar en otras aplicaciones, cualidades que probablemente los convierten en las dos herramientas libres que reúnen las mejores cualidades.
Instalación local de Whisper
Requisitos de instalación
Debe tener instalado en su equipo:
- Python ≥ 3.7
- ffmpeg instalado
Instalación
Es muy recomendable instalar Whisper en un entorno virtual Python, para evitar conflictos con otros paquetes del sistema.
Instale dependencias (si no las tiene):
sudo apt install python3-venv ffmpeg
Cree y active un entorno virtual Python:
python3 -m venv ~/whisper-env
source ~/whisper-env/bin/activate
instale Git, para poder clonar el repositorio. Ejecute en terminal de comandos:
sudo apt update
sudo apt install git
Instale Whisper:
pip install git+https://github.com/openai/whisper.git
Ejemplo de uso
Si instaló Whisper en un entorno virtual Python, no olvide activar primero dicho entorno virtual, en el terminal de comandos:
source ruta_al_entorno_virtual/bin/activate
Realice una transcripción de voz a texto:
whisper archivo_audio.mp3 --language Spanish --model medium
Puede sustituir ‘medium’ por cualquier otro de los modelos disponibles en Whisper, indicados antes en este mismo documento.
Además de mostrar la transcripción en el terminal de comandos, Whisper creará archivos de texto, en el mismo directorio en el que se encuentre el audio, si no se especifica otro. Para indicar otro directorio de salida, use el parámetro –output_dir.
Archivos generados
Para un supuesto audio con el nombre ‘archivo_audio.mp3’, Whisper generaría los documentos:
- archivo_audio.[txt]. La transcripción completa en texto plano
- archivo_audio.vtt. Subtítulos en formato WebVTT. Contiene tiempos de inicio y finalización para cada fragmento
- archivo_audio.srt. Subtítulos en formato SubRip (tipo YouTube)
- archivo_audio.json. Transcripción estructurada con marcas de tiempo
- archivo_audio.tsv. Archivo de texto con valores separados por tabulaciones («Tab-Separated Values»), que contiene información estructurada sobre la transcripción, con datos sobre tiempos (en segundos) de inicio y finalización. Estos documentos pueden abrirse con un LibreOffice Calc, por ejemplo.
De entre los descritos, los documentos con tiempos son muy útiles para hacer una alineación precisa de texto y audio (por ejemplo, para subtitulado).