La cuestion es que siempre quise jugar con esto pero por A o por B nunca lo hice, pero en fin ayer me quede hasta tarde entretenido con festival y me codee algo en perl para traer datos desde la web.
¿Pero que es Festival? Festival es un software text-to-speech (TTS) o sintetizador de vóz que nos permite lograr que nuestra máquina nos hable o, más bien, nos lea algún texto. Mas informacion aqui
Estracto Blog de Zerial
Para instalar este paquete no logueamos como r00t en la shell y lo instalamos con aptitude
$su
#aptitude install festival
#aptitude install festlex-cmu festlex-poslex festvox-kallpc16k libestools1.2 festvox-ellpc11k
Para probar que funciona correctamente, nos logueamos como usuario normal y colocamos.Para instalar este paquete no logueamos como r00t en la shell y lo instalamos con aptitude
$su
#aptitude install festival
#aptitude install festlex-cmu festlex-poslex festvox-kallpc16k libestools1.2 festvox-ellpc11k
$ festival --language spanish
Festival Speech Synthesis System 1.96:beta July 2004
Copyright (C) University of Edinburgh, 1996-2004. All rights reserved.
For details type `(festival_warranty)'
festival> (SayText "holaa como estas")
Si oyen el "Hola Como estas", es una voz horrible robotica pero bueno es lo que hay xD. Tambien se le puede pasar un archivo de texto para que lo lea. Tengo un amigo que uso uno de estos programas en windows y se leyo todo el libro de Kevin Mitnick "El arte de la intrusion" xD. Para leer un archivo se pasa este parametro.
$festival --language spanish --tts archivo.txt
Acoplando con Perl
Me escribi un simple script en perl donde trae el pronostico de Corrientes Capital, y empieza a recolectar datos que quiero con expresiones regulares, tambien nos dice la hora y algunas cosas mas. Esta maso por que lo hice a la madrugada y tenia pensado seguir agregandole mas cosas pero ya se hacia muy tarde, en fin se les dejo el script.
Esta muy entretenido podemos hacer muchas cosas como por ejemplo que nos lea noticias importantes, horoscopos, estado del transito etc. Yo lo coloque que cuando arranque el sistema me cuente como esta el pronostico ( ya me esta por cansar igual ja ).
Ah la pagina donde saca el pronostico es esta
who-speak.pl
#!/usr/bin/perl
use LWP::Simple;
use utf8 ;
no utf8 ;
$pag="http://www.weather.com/weather/today/Corrientes+Argentina+ARCS0025";
$ua = LWP::UserAgent->new(agent => 'Mozilla/5.0 (X11; U; Linux x86_64; es; rv:1.9.1.8) Gecko/20100218 Firefox/3.0.3 (like Firefox/3.5.8)');
$ua->default_header('Accept-Language' => "es-ar,es;q=0.8,en-us;q=0.5,en;q=0.3");#acceptar lenguage español
$ua->timeout(7);
#$ua->env_proxy;
$response = $ua->get($pag);
$pedido= $response->content;
#$pedido =~m/<p align=center><b>HOY(.*?)<\/b><\/p>/s;
#$dia=$1;
#--------------------------Tomo fecha actualizacion de datos--------------------------------------------s#
#
$pedido =~m/<p class="ccWeatherTimeStamp">Updated:\s*(.*?)Local Time<\/p>/s;#tomo la actulizacion de los datos
$update=$1;
$update=~s/\n//gi;$update=~s/\t//gi;#limpio los \n y los \t
#----------Cambio los meses a Español------------
$update=~s/Jan/Enero/gi;
$update=~s/Feb/Febreol/gi;
$update=~s/Mar/Marzol/gi;
$update=~s/Apr/Abril/gi;
$update=~s/May/Mayo/gi;
$update=~s/June/Junio/gi;
$update=~s/July/Julio/gi;
$update=~s/Aug/Agosto/gi;
$update=~s/Sept/Septiembre/gi;
$update=~s/Oct/Octubre/gi;
$update=~s/Nov/Noviembre/gi;
$update=~s/Dec/Diciembre/gi;
#-----------------Fin CAmbio Meses---------------------
#--------tomo la temperatura-----------
$pedido =~m/<div class="ccTemp">(\d+)° F<\/div>/s;
$temp=$1;
$centigrados=($temp - 32) * 5/9;#paso de F a C
$centigrados = sprintf("%.1f", $centigrados);#truncoo el numero
#-------------tomo el estado---------------
$pedido =~m/<div class="ccdata"><p>(.*?)<\/p><\/div>/s;
$estado=$1;
#--------------------------creo el archivoi--------------------------------------------s#
($sec,$min,$hour)= localtime(time);
open (AR,">"."temp.txt") || die "No puede crear el archivo error: $!";
print AR "Hola Francisco, BUEN DIA!!\n";
print AR "Son las $hour horas, con $min minutos, y $sec segundos.\n";
print AR "Estado Del Tiempo. -- Corrientes Argentina --.\n";
print AR "Ultima Actualizacion del Pronostico ".$update.".\n";
print AR "En este momento, la temperatura es de: ".$centigrados." Centigrados.\n";
print AR "con un estado del tiempo ".$estado."\n";
close(AR);
system('festival --language spanish --tts temp.txt');
Eso es todo..
Saludos
Que copado que te quedo francisco..una masa chabon :D buen code y muy buen tuto el d e las sql
ResponderEliminarChe que buena idea tu programa. Yo estoy aprendiendo python y preparando un blog, dentro de un tiempo voy a compartirlo con ustedes. Esta muy bueno tu blog.
ResponderEliminar