¿Qué es un robot si no puede hablar o comunicarse con nadie? ¿O expresar de alguna manera emociones?

Realmente un robot simple no puede tener emociones pero de alguna podemos hacer que simule estas emociones mediante sonidos y mediante expresiones si le proporcionamos una cara.

Existen muchas maneras, algunas más complejas y otras más simples para proporcionar una forma de interactuar con un robot. Podemos aplicar sensores para que puedan obtener información de su entorno o reconocer objetos con una cámara  y en función de lo que obtenga expresar un estado de ánimo o proporcionar un tipo de información concreta.

Me centraré en el modo de interacción por voz o sonido a través de un altavoz.

Este objetivo se puede conseguir de dos maneras.

  • Acceso a un banco de sonidos almacenado dentro de una tarjeta SD
  • Sintetizador de voz

Las diferencias básicas de estos dos métodos es que el primero requiere de un almacén de recursos de sonido mientras que el primero realiza los sonidos mediante un programa que no necesita de memoria adicional, sino que la procesa en el momento.

Banco de sonidos con DFPlayer

En este caso utilizaremos un DFPlayer que es capaz de acceder a una tarjeta SD en la que podremos almacenar una larga lista de reproducción con distintos archivos de audio en formato .mp3.

dfplayerpinout

La única pega, es que tendremos una dependencia con el acceso a estos archivos en el que deberemos de preparar una lista de reproducción definiendo referencias para cada pista que queramos reproducir con el estado de ánimo que queramos expresar.

Esto es un modo de recopilación de sonidos como Bumblebee de Transformers o Weeboo de Flubber.

https://www.youtube.com/watch?v=q8Kgkav8TWo

 

Suponiendo que tenemos esta opción, lo que deberiamos hacer es recopilar datos para una gran lista de reproducción y esto nos puede llevar mucho tiempo si lo hacemos archivo por archivo.

Para ello vamos a aplicar un método con el que podremos recorrer una página que contiene un banco de sonidos completo y gratuito donde ya tengamos una recopilación de estos sonidos.

En este caso utilizaremos la siguiente página:

http://eng.universal-soundbank.com/

Para acceder a un sonido, solo tenemos que elegir la categoría o modalidad de sonido y al llegar a la pista accederemos a un archivo en formato .mp3 con un número identificativo para la pista. Por ejemplo, estos sonidos de ciencia ficción pueden venir bien para hacer nuestro robot más futurista; o estos del pajaroloco para hacerlo más divertido.

http://eng.universal-soundbank.com/soundeffects-cartoons-woodpecker.htm

http://eng.universal-soundbank.com/soundeffects-fantasy.htm

Bien, pues en lugar de ir descargando uno por uno, haremos uso de un programa de comando llamado wget. En sistemas Linux ya viene integrado, mientras que para sistemas Windows es necesario instalar este paquete para realizar estas acciones de forma automatizada. LINK Wget

Instalamos y accedemos a nuestra ventana de comandos y escribimos

wget “url”

wget_cmd

De esta manera ya tendremos descargada la canción en el directorio,pero ahora queremos automatizar este proceso, simplemente añadiendo un contador al nombre para ejecutar esa acción desde la ventana de comandos en bucle hasta que se descarguen todos los sonidos.

Para ello abriremos el bloc de notas y escribiremos las siguientes lineas de texto en un archivo .txt


set N=1

:BUCLE
WGET "http://s1download-universal-soundbank.com/mp3/sounds/%N%.mp3" -O %N%.MP3
set /A N=%N% + 1
GOTO BUCLE

Una vez hecho esto se edita el archivo para guardarlo con formato .bat, que es el que reconoce la linea de comandos de Windows para ejecutar el script y solo tendremos que acceder a ese archivo y ejecutarlo.

downsounddownsoundn


Una vez hecho esto, dispondremos como mínimo de 25.423 pistas de audio en .mp3 de todo tipo y todos los colores para asociar a un estado de ánimo o modo de comunicación para interpretar información de una forma muy divertida.

Con todos estos recursos ya podemos integrar en una carpeta del módulo DFPlayer para programar nuestro robot y que realice multiples sónidos.

Y si nos aburrimos podemos introducir también música que tengamos descargada por nosotros o aplicar nuestras propias voces a nuestro robot.

Eso sí, hay que pensar siempre en la duración de la pista y la acción que realiza el robot.

Sintetizador de voz – Espeak

Otra manera de dar voz a nuestros robots es con un sintetizador de voz. Que se diferencia del anterior por el modo de procesamiento en tiempo real sin depender de una pista almacenada en memoria SD.

Este modelo funciona con la introducción de una frase que debe de ejecutar y se le asocia una voz que viene configurada en función del idioma definido.

En este caso, podemos establecer las opciones de idioma que vienen por defecto, pero si quisieramos profundizar, podríamos crear configuraciones lingüísticas para definir la tonalidad o las normas de pronunciación.

Aunque parezca algo muy elaborado, una vez realizada esta configuración se puede usar una y otra vez.