Transcribir audios en español a texto

Jorge Sanz | 2024-11-14 | 375 words | techie

Ayer por razones no podía pararme a escuchar los siete audios que me llegaron de golpe en un grupo de chat así que hice una búsqueda de cinco minutos en Internet y encontré una utilidad que automáticamente se descarga un modelo de *machine learning* para hacer transcripciones de audio a texto.

La herramienta se llama vosk[1] y tiene soporte para más de 20 idiomas, funciona desconectada de internet, por supuesto es Software Libre, y se puede integrar en todo tipo de tecnologías. Mi caso de uso es el más chorra posible.

1: https://alphacephei.com/vosk/

Como requisito previo hay que tener instalado pip[2] del ecosistema Python y se instala con un simple `pip3 install vosk`. La primera vez que llamas al comando `vosk-transcriber` se descarga el modelo adecuado a tu petición. Para ver más detalles del comando hay que ejecutar `vosk-transcriber --help` y son de especial interés las opciones `--list-languages` y `--list-models` para ver qué idiomas y modelos[3] hay disponibles.

2: https://pypi.org/project/pip/
3: https://alphacephei.com/vosk/models

En mi caso he añadido la siguiente receta a `~/.zshrc`, el *script* de inicio de sesión en consola, y con eso ya tengo un comando al que pasarle un fichero `audio.mp3` y me genera un fichero `audio.mp3.txt` con la transcripción además de imprimirla de manera bastante legible.

# Función para transcribir textos en Español
function transcribe_spanish() {
        # crear un fichero con la transcripción
        vosk-transcriber \
          --model-name vosk-model-es-0.42 \ # modelo completo
          --lang es \ # en español
          -i "${1}" \ # entrada
          -o "${1}.txt" \ # salida
          2> /dev/null # no generar salida a consola

        # sacar el contenido del fichero con líneas
        # en blanco entre párrafos y formateado a 50
        # caracteres de ancho para mejorar la
        # legibilidad
        cat "${1}.txt"  | sed G | fold -sw 50
}

Y un ejemplo de ejecución sería algo como esto:

$ transcribe_spanish audio-2024-11-11.ogg                                    
bueno chicos lo he dicho a quien le pille muy mal 
estoy de baja y me puedo ocupar vale

nada cualquier emergencia aquí me tenéis aunque 
sea un par de horas un rato o lo que sea un beso 
tampoco sean todos a la vez pero bueno ya sabéis 
aquí estoy

Si acabaré montando otro script para recibir la salida de este comando y que me haga un resumen ya es cuestión de tiempo 😅.

--=--=--

🗣 Reactions

Want to comment anything? Continue the discussion here[4] or contact me![5]

4: https://mapstodon.space/@jorgesanz/113480554728384928
5: /contact

Likes (4)

Facundo Muñoz
geraldo
pabloh
Juanjo Salvador

Reposts (3)

Ignacio Borlaf-Mena
Raúl Nanclares
Antonio Rull

Replies (4)

Juanjo Salvador on Nov 14, 2024
Jorge Sanz on Nov 14, 2024
Raúl Nanclares on Nov 14, 2024
Jorge Sanz on Nov 14, 2024

---

🏠 Home
📔 Gemlog
This capsule is in LEO
Next Page
Last Page
Random Page
This capsule is a part of the fediring
Previous
Next
Random