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.
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.
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]
Likes (4)
Reposts (3)
Replies (4)
---