Secciones

miércoles, 19 de agosto de 2009

Perdidos en el Espacio (el que hay entre mi silla y la mesa del ordenador)

El otro día os hablé de eSpeak, un sintetizador de voz a partir de texto, el cual poco a poco estoy descubriendo que tiene opciones muy interesantes. Dejando a un lado todas esas funcionalidades técnicas, hoy quería centrarme en una aplicación chorra que podemos darle a este software: un mensaje de bienvenida tipo "nave espacial" que lea datos de tu ordenador.

El código que he usado es básicamente este:


#!/bin/bash
Hora=`date +%H`
Minutos=`date +%M`
Dia=`date +%d`
Mes=`date +%B`
A=`date +%Y`
DiaS=`date +%A`
eTotal=`df -h | sed -n '2p' | awk '{print $2}'`
eUsado=`df -h | sed -n '2p' | awk '{print $3}'`
eDisponible=`df -h | sed -n '2p' | awk '{print $4}'`
espeak -a 200 -ves+f4 "Abriendo nueva sesión. Fecha estelar: $Dia de $Mes de $A, $DiaS. Son las $Hora horas y $Minutos minutos. Todos los sistemas iniciados y listos para su uso. Paso a chequear los módulos de almacenamiento adicionales. Resultados en 5. 4. 3. 2. 1."
if [ -d /media/disk/ ] ; then
    espeak -a 200 -ves+f4 "Módulos de almacenamiento adicionales funionando al 100%."

else
    espeak -a 200 -ves+f4 "¡ATENCIÓN, ATENCIÓN! ¡Hemos perdido los módulos de almacenamiento adicionales! Estabilizando componentes gravitacionales. Parece que no será necesario un aterrizaje de emergencia."

fi
espeak -ves+f4 -a 200 "Partimos de la base con unos $eTotal de combustible, de los cuales, ya hemos gastado $eUsado. Nuestras reservas de fuel son, por tanto, de $eDisponible. ¡Bienvenido, comandante $USER! Paso a control manual. ¡Buena suerte!"



Donde hemos supuesto que tenemos un disco duro, mp3, o similar que se monta en "/media/disk". El script lee algunos datos (la hora, la fecha, el espacio de tu disco duro y si tienes montado algo en "/media/disk"), y lo dice de forma más o menos freaky xD! Está pensado para ser ejecutado cuando empiece la sesión en Ubuntu, es decir, para que se genere (casi instantáneo) y suene mientras se cargan los programas de inicio.

El resultado (sin montar el disco en "media/disk"), sería algo como lo que sigue:



De este modo, podemos incluir las variables que queramos, así como el diálogo que nos guste, y personalizar nuestro inicio de sesión como deseemos, sin necesidad de grabar con antelación pesadas locuciones, y pudiendo meter variables que nos den información completamente actualizada cada vez que se ejecute la narración.

También podemos añadir opciones climáticas, instalando primero "weather-util", y mirando el código de nuestra estación climática más cercana en esta página (como nos cuentan en La Máquina Diferencial) :


Un ejemplo de código podría ser el siguiente:


#!/bin/bash
Mes=`date +%B`
clima=`weather -i LETO`
Temp=`echo $clima | sed -s '3p' | grep -o "([0-9]* C)" | sed 's/ C//g' | sed 's/(//g' | sed 's/)//g'`
Hum=`echo $clima | sed -s '4p' | grep -o "[0-9]*%"`
if [ $Temp -gt 20 ] ; then
    espeak -ves+f4 -a 200 "Disfrutamos de un caluroso día de $Mes. La temperatura externa es de $Temp grados centígrados."

else
    if [ $Temp -lt 15 ] ; then
      espeak -ves+f4 -a 200 "Con los $Temp grados centígrados que hace en el exterior, le recomiendo usar un abrigo."

    else
      espeak -ves+f4 -a 200 "La temperatura externa es de $Temp grados centígrados."

    fi

fi
espeak -ves+f4 -a 200 "La humedad relativa es del $Hum."



En el cual se distinguen tres casos: el caluroso (más de 20ºC), el normal (entre 15 y 20ºC) y el frío (menos de 15ºC). Escuchemos, por ejemplo, el caso caluroso según el código anterior:



Comparte en Facebook

2 comentarios:

  1. Jajajaajajjaajaja no puedo escribir con la risa ajajaajajajaj, guardaré esto para cuando tenga un día malo y necesite reir a carcajadas :P :P :P!

    ResponderEliminar
  2. Es que me da mucha gracia esta voz robotizada, jajaj, aunque lo escuche 10 veces seguidas, me produce el mismo efecto :P

    Pero qué malo eres! Sólo partidas a las damas?!
    Voy a terminar poniendo una encuesta en mi blog:
    "Y tú quién crees que es más malo? El Diablo o la Guerrera?
    a- sin duda el diablo
    b- sin duda la guerrera
    c- los dos están como cabras! :P
    d- que le corte ya la cabeza al diablo!! :P

    Supongo que todos votarían por la "d" ajajaaj (para eso les he pagado!:P)

    Ya no te doy más la lata por hoy, por hoy eh, que mañana es otro día ajaja.

    Buenas noches Astaroth.

    ResponderEliminar

Querido astarothista!,

Si te ha gustado la entrada y quieres dejar constancia de ello, tienes alguna sugerencia para completarla o corregirla, quieres mostrar tu opinión respecto a algo de lo que se haya hablado en esta entrada (con respeto) o simplemente quieres dejarme un mensaje a mi o a la comunidad, no dudes en comentar ;)!

Recuerda que también estamos en Facebook y en Google+.