Whisper es, posiblemente, uno de los sistemas más avanzados para convertir audio a texto. Ha sido desarrollado por OpenAI y tiene la gran ventaja de ser código libre sin embargo surge el problema de usarlo en máquinas que no tengan carismas tarjetas con potentes GPUs y grandes cantidades de RAM dedicadas. Por suerte tenemos proyectos que adaptan su uso a CPU como Whisper,cpp con lo que podemos usarlo en un ordenador medianamente potente.
Los pasos para instalarlos son muy sencillos
Clonar el proyecto de Github (necesitaras tener git instalado).
git clone https://github.com/ggerganov/whisper.cpp
Vamos al directorio del proyecto y construimos el main
cd whisper.cpp
make main
Descargamos el modelo que deseemos usar. En la siguiente tablas esta el listado de modelos con su tamaño en disco y el consumo de RAM. Los terminados en «.en» significan que solo es en inglés:
Modelo | Tamaño en disco | Tamaño en memoria (RAM) |
---|---|---|
tiny | 75 MB | ~390 MB |
tiny.en | 75 MB | ~390 MB |
base | 142 MB | ~500 MB |
base.en | 142 MB | ~500 MB |
small | 466 MB | ~1.0 GB |
small.en | 466 MB | ~1.0 GB |
medium | 1.5 GB | ~2.6 GB |
medium.en | 1.5 GB | ~2.6 GB |
large-v1 | 2.9 GB | ~4.7 GB |
large | 2.9 GB | ~4.7 GB |
Una vez sepamos que modelos queremos lo descargamos:
bash ./models/download-ggml-model.sh base
Podemos descargar cuantos modelos como queramos.
Para probar que todo va bien usaremos uno de los ejemplos que vienen con el código:
./main -m models/ggml-base.bin -f samples/jfk.wav -l auto
Alguno parámetros útiles:
-m indica el modelo a usar
-f el archivo de sonido a transcribir
-l el lenguaje en que esta el audio, con auto lo detecta el propio whisper.
-otxt fichero de texto donde se almacena la salida
-pc usa colores para indicar el nivel de confianza en cada palabra
-h muestra una lista de parámetros y su explicación
¿Y para usar nuestros propios audios?. Podemos usar ffmpeg para convertirlos.
Por ejemplo de test.mp3 a test.wav:
ffmpeg -i test.mp3 -ar 16000 -ac 1 -c:a pcm_s16le test.wav
Puedes ver el proceso en vídeo en mi canal de Youtube haciendo click en la siguiente imagen:
Pingback: Crear subtitulos automáticamente con Whisper | Construyendo a Chispas