Datos del producto
Nombre:Lo que se puede hacer con un Raspberry Pi y un altavoz: GoogleBot … por Ilion
Datos de la revisión
Revisado por:Gerard Serra (Ilion)
Fecha revisión:2 de enero de 2015

Twitterbot cumple su cometido, interactuar con un usuario a través de mensajes directos, pero esa interacción es un tanto lenta, no tiene la rapidez de un chat estándar.

Otro “problema” es la limitación de los 140 caracteres de twitter, pero el mayor de los inconvenientes es que twitter te penaliza con un tiempo de espera si haces demasiadas consultas a su API, y esto si es un problema de verdad.

Una vez acabado twitterbot y viendo sus limitaciones empecé a barajar otras posibilidades que me dieran más flexibilidad y que fuese fácil implementar nuevas funcionalidades, así nació googlebot.

Hablando con Pharizna por el foro me sugirió una serie de funcionalidades que le gustaría que googlebot fuese capaz de realizar, y en gran medida lo he conseguido.

PREPARANDO NUESTRO GOOGLEBOT

Nuestro googlebot recibirá nuestras ordenes a través del servicio Hangouts de Google (antes conocido como gchat) y sólo responderá a los comandos del usuario permitido.

Empecemos entrando al Raspberry Pi como root e instalamos los paquetes necesarios:

apt-get install centerim festival screen festvox-don festvox-rablpc16k festvox-kallpc16k festvox-kdlpc16k gawk wget

Para que nuestro bot nos hable necesitamos usar Festival. Sus voces por defecto son mejorables, por suerte la Junta de Andalucía creó unas voces en castellano mejoradas para integrarlas en la distro Guadalinex pensando en la gente con discapacidades visuales. Para instalar esas voces haremos lo siguiente:

wget http://forja.guadalinex.org/frs/download.php/153/festvox-palpc16k_1.0-1_all.deb

dpkg -i festvox-palpc16k_1.0-1_all.deb

CONFIGURANDO CENTERIM

Ahora empezaremos a configurar Centerim que es el programa de chat. Lo peculiar de Centerim es que podemos decirle que cada vez que reciba un mensaje ejecute un comando, y quien dice un comando, dice todo un script…

Ejecutamos centerim con el usuario que se usará para arrancarse normalmente, en nuestro caso, root.

En la opción jab se rellenan las opciones de la cuenta gmail que usaremos para la Raspberry. Una vez hecho esto se creará una estructura de directorios, salimos del programa pulsando «q» varias veces.

Ahora editamos el fichero /root/.centerim/ config

Deberíamos tener algo similar a esto:

protocolormode
sort_by_status_and_activity
left_panel_width 48
log_panel_height 9
chat_panel_height 7
defaultauthmessage Please accept my authorization to add you to my contact$

jab_nick cuentapararaspberrypi@gmail.com
jab_pass contraseña
jab_server talk.google.com:5223
jab_osinfo 1
jab_prio 4
jab_ssl 1

Modificamos los parámetros jab_nick y jab_pass con los datos de la cuenta de gmail del bot y guardamos los cambios.

El siguiente fichero a editar es el que centerim usa para saber que hacer cada vez que reciba un mensaje, en nuestro caso pondremos la ruta al script que se ejecutará pasandole como parámetro el mensaje recibido. El fichero es /root/.centerim/external, y lo dejaremos así:

%action contestador automatico
event msg
proto all
status all
options stdin stdout
%exec
msg=cat
/bin/bash /root/googlebot/googlebot $msg

Para que nuestro bot sepa traducir al inglés, debemos instalar google translate cli, un cliente de google translator para el terminal. Para ello desde el terminal escribiremos:

cd /tmp
wget https://github.com/soimort/google-translate-cli/archive/master.tar.gz
tar -xvf master.tar.gz
cd google-translate-cli-master/
sudo make install

Finalmente crearemos el script en /root/googlebot y lo llamaremos googlebot. Una vez acabemos le daremos permisos de ejecución con chmod +x /root/googlebot/googlebot y ya estaremos listos.

Las órdenes que googlebot entiende por el momento son:

ayuda :muestra los comandos disponibles.
hola: nos saluda.
traduce: traduce al inglés ele texto indicado.
hora: muestra la hora actual.
ip: muestra la ip externa del raspberry pi.
apunta: guarda como nota el texto que le pongamos.
notas: muestra las notas guardadas.
borranotas: borra todas las notas.
calendario: muestra el mes actual.
ejecuta: ejecuta comandos en el sistema (en el raspbian). MUCHO CUIDADO pues lo ejecutamos como root!
repite: Repite el texto que le digas
Para más información sobre un comando podemos decirle a googlebot ayuda seguido del comando, por ejemplo: ayuda notas



Una vez acabado, he pensado en más características para añadirle, como por ejemplo leer mails o ser capaz de hablarle al bot, pero la cosa se complica, y pese a que he conseguido acceder a la bandeja de entrada de Gmail, no puedo leer mensajes individualmente (de momento)…

Respecto a hablarle al bot, se me ha ocurrido un “truco” para poder hacerlo sin esfuerzo alguno, usando el reconocimiento de voz que Android tiene integrado, la verdad es que ahora si que va pareciendo un robot…


Se aceptan sugerencias de nuevas funcionalidades…

Gerard

696
Suscribirse
Notificación
0 Comments
Inline Feedbacks
Ver todos los comentarios
0
¡Aquí puedes dejar tus comentarios!x