Barrejant Annyang amb Wolfram Alpha, o sigui, donant intel·ligència a Antonia

Bo, de què va això? Particularment potser sabeu que no sóc amic dels dispositius tipus Google Home o Alexa, pel sol fet que no els pots canviar el nom (per ara), així que en el meu cas utilitzo Annyang per anomenar-la Antonia i customitzar les ordres. Però i perquè ficar-li Wolfram Alpha?

Bé, Wolfram Alpha como muchos conoceréis, es como una herramienta con una gran base de datos de información, mediante una web le podemos preguntar cualquier pregunta que casi seguro sabrá la respuesta. Desde temas históricos, a resultados deportivos, y por supuesto cálculos matemáticos complejos. Como os decía, el uso habitual es hacerle las consultas vía web y en inglés; tiene posibilidad de usarse mediante API pero es de pago si hacemos más de 2000 consultes al mes (o lo usamos para fines comerciales).

Així que, la idea es hacerle consultas a nuestra Antonia, repasar este antiguo post si no tenéis en marcha vuestro propio asistente virtual. Total que, a Antonia la diremos algo como: “Antonia, pregunta, ¿Quién es Julio Iglesias?”, y mediante un scriptcillo, anem a (i) recoger todo lo que viene detrás de la palabra ‘pregunta’, (ii) vamos a traducirlo al inglés, (iii) vamos a consultarlo a Wolfram Apha, (iv) vamos a recoger la respuesta que nos da, (v) vamos a traducirla del inglés al español y (vi) lo dirá por los altavoces (en mi caso lo mandará a Home Assistant, y este lo reproducirá en los altavoces de casa gracias a Snapcast). Y todo esto con una respuesta rapidísima, que funciona genial!

Bé, en la máquina donde corra nuestro Apache con Annyang crearemos el script que será llamado para hacer la consulta. En mi caso se llama antonia_pregunta.sh

#!/bin/sh
echo "$1" | cut -d " " -f2- > /home/hector/wolfram-antonia/1peticion_sin_pregunta.txt
Peticion_Sin_Pregunta=`cat /home/hector/wolfram-antonia/1peticion_sin_pregunta.txt`
/home/hector/wolfram-antonia/trans :en -brief "$Peticion_Sin_Pregunta" > /home/hector/wolfram-antonia/1peticion_en.txt
TraducePeticion=`cat /home/hector/wolfram-antonia/1peticion_en.txt`
curl -s "https://api.wolframalpha.com/v1/result?appid=XXXXXX-XXXXXXXXXX&units=metric&" --data-urlencode "i=$TraducePeticion" > /home/hector/wolfram-antonia/2respuesta.txt
TraduceRespuesta=`cat /home/hector/wolfram-antonia/2respuesta.txt`
/home/hector/wolfram-antonia/trans :es -brief "$TraduceRespuesta" > /home/hector/wolfram-antonia/2respuesta_es.txt
RespuestaES=`cat /home/hector/wolfram-antonia/2respuesta_es.txt`
curl -X POST -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json" -d '{"entity_id": "media_player.volumio_mpd", "message": "'"$RespuestaES"'"}' http://192.168.1.116:8123/api/services/tts/google_say

Este script es algo cutre, pero totalmente válido para un dinosaurio como yo. Necesitaremos dar de alta nuestra app para usar las API de Wolfram Apha (e indicar su ID en el script), y en mi caso también al enviarla a los altavoces de Home Assistant, mediante curl una llamada API para que lo diga Google_Say; però bo, cada uno que haga como quiera, el script funciona así de fácil: “./antonia_pregunta.shpregunta ¿Quien es Julio Iglesias?”. El que s'ha dit, le quita la primera palabra, lo traduce y nos dará la respuesta, luego ya como quieras lo mandas a tus altavoces 🙂

Pero antes de poder ejecutar el script necesitaremos cumplir un requisito más, ¡necesitamos un traductor! y qué mejor que esta maravilla, mediante este simple script podremos traducir rápidamente entre cualquier idioma (como argumento podríamos usar el idioma destino, entre otras opciones).

wget git.io/trans
chmod +x ./trans
./trans :es -brief "Hi there, how are you?"

Y queda listo, en el fichero php de Antonia no olvidaremos añadir que cuando escuche su nombre seguido de la palabra ‘pregunta’, ejecute este script, quedant:

...
elseif (strpos($valor, 'pregunta') === 0)
{
    Exec('/home/hector/bong.sh');
    Exec('/home/hector/wolfram-antonia/antonia_atenta.sh "'.$valor.'" ');
}
...

Quizá es un jaleo, pero no es nada complicado montárselo de verdad, así le dotaremos de más inteligencia a nuestro asistente virtual propio, o eso, o usas uno comercial. Que seguro es menos flexible e igual de inseguro 😉

Espero os haya sido de interés, gracias por compartir en las RRSS.

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!