Semana 6: el audio ya suena en RoboticsAcademy
Adapto audio_out a las herramientas internas de RoboticsAcademy y consigo que un texto dado por el usuario suene por los altavoces.
Resumen de la semana
El ejercicio audio_out ya funciona dentro de RoboticsAcademy: al correr la aplicación con un mensaje en una función “say()”, el texto suena por los altavoces con la voz del modelo de Piper.
Objetivos
- Dejar de usar mi propio servidor y enviar el audio con las herramientas internas de RoboticsAcademy.
- Devolver la funcionalidad al ejercicio.
- Poder hacer sonar un texto desde el código del alumno.
Trabajo realizado
Usar lo que ya trae RoboticsAcademy
Hasta ahora mi ejercicio tenía su propio servidor y su propio puerto. Esta semana lo he cambiado para que use el sistema interno de RoboticsAcademy, que es el encargado de comunicar la página con el programa. Para saber cómo se hacía, me fijé en el ejercicio de mi compañero (audio-in) y reescribí mis dos archivos, “WebGUI.py” y “WebGUI.tsx”, siguiendo el mismo esquema:
- La página manda órdenes sencillas al programa, como reproducir un texto o parar.
- El programa genera el audio con Piper y se lo devuelve a la página en trozos pequeños.
- La página los va reproduciendo según llegan.
Obstáculos
Lo que me llevó más tiempo fue que no sonaba nada y, además, no aparecía ningún error. Al final eran tres problemas distintos:
- La página no se actualizaba. El frontend hay que volver a compilarlo cada vez que cambia; reiniciar el contenedor no basta.
- El modelo de voz. RoboticsAcademy no puede leer archivos de este tipo dentro de la carpeta del ejercicio, así que tuve que moverlo a otra carpeta.
- Faltaban librerías en el contenedor. Mi programa se caía nada más empezar. Para ver qué pasaba añadí un pequeño archivo de registro, y así encontré que faltaban las librerías de audio. De momento las he instalado a mano, solo para probar.
Frases en cola
La idea final es que el alumno pueda escribir “say(“Hola”)” en su código y que suene. Para que varias frases seguidas no se pisen, he preparado una cola: cada frase espera a que termine la anterior.
Próximos pasos
- Preparar la imagen para que el contenedor se genere con las dependencias ya instaladas, para no tener que hacerlo a mano.
- Unificar este ejercicio con el audio_in de Anass en un ejercicio llamado “HRI sound”.