Algunas veces escucho música cuando hago algunas de mis tareas, lo que cual no me permite estar al tanto del nombre de la canción que se está reproduciendo ni el nombre de la siguiente, para esto lo que se tiene que hacer es hacer “hablar” a la PC
Se necesitan estos paquetes que puedes buscar en Synaptic o teclear:
sudo apt-get install libnet-dbus-perl espeakAbrir un editor de texto y copiar el siguiente texto:
#!/usr/bin/perl -w
use Net::DBus;
use Net::DBus::Reactor;
use strict;
my $prevsong = “none”;
my $bus = Net::DBus->find;
my $rhythm = $bus->get_service(“org.gnome.Rhythmbox”);
my $shell = $rhythm->get_object(“/org/gnome/Rhythmbox/Shell”, “org.gnome.Rhythmbox.Shell”);
my $player = $rhythm->get_object(“/org/gnome/Rhythmbox/Player”, “org.gnome.Rhythmbox.Player”);
sub SayPlaying()
{
my $uri = $player->getPlayingUri;
my %props = %{$shell->getSongProperties( $uri )};
my $title = $props{‘title’};
my @tmp = split(‘\(‘, $title);
$title = $tmp[0];
$title =~ tr/’/ / ;
if ($title =~ m/$prevsong/)
{return;}
$prevsong = $title;
print $title, “\n”;
system “padsp espeak -a500 ‘$title’ &>/dev/null”;
}
$player->connect_to_signal(“playingUriChanged”, \&SayPlaying );
my $reactor = Net::DBus::Reactor->main();
$reactor->run();
Guárdalo donde prefieras.
Ahora solo basta con que te muevas donde guardaste el archivo con un clic derecho ir a Propiedades, después en la viñeta permisos darle la casilla de “ejecutar como un programa” después abrir Rhythmbox, luego doble clic sobre el archivo que creaste y dale ejecutar.
Ahora al cambiar de canción se escuchara el nombre de cada canción.
El paquete espeak tiene una gran cantidad de modificaciones que se pueden hacer… si alguno quiere, puede colaborar con esto en los comentarios.
Que extraño a mi no me funciona…
Gracias por el consejo, es muy útil en su propósito.
Recuerdo que hace mucho tiempo (aun usaba redhat y no ubuntu) utilizaba “festival”. Checalo, pues ahora que conoci (gracias a tu post) espeak, no me gusto el “acento”.
En festival podias usar varios diccionarios con una herramienta extra (ahora no recuerdo exactamente el nombre.. algo asi como mbrola, no se) que incluian español de España y tambien español de Mexico (entre otros). Incluso tenian “voz” de mujer o de hombre. Muy completo!
En ese tiempo modifique el /etc/host.allow para que si detectaba que alguien queria entrar a mi maquina me avisara
Como hacer para que pronuncie en español y no en inglés?
Oye a mi tampoco me funciono, segui todo al pie de la letra, pero nada!
#1 y #5, yo tuve que cambiar tanto las comillas dobles como las simples, al copiarlo en el vi, ambas comillas eran diferentes y el script fallaba.
para que espeak te hable en español debes decirle -ves
digamos si quieres escribir algo en espeak y que el lo lea, escribes:
$espeak -ves
y el te deja para que escribas y cuando le das enter te pronuncia lo que dijiste, no sé si se salga mucho de lo inicial pero pues tambn se puede aplicar en el código que das.
vaya, eso si esta padre; habra que probarlo.
Saludos!!!
a mi no me funciona ,alguien nos puede ayudar????
A mi tampoco me funciona, he seguido el tutorial al pie de la letra pero no me funciona.
Alguien podria contextarme a mi correo con la solucion.
Uso Hardy
Supongo que con cambiar varias cosas del script, podría servir para Amarok, ¿no es cierto?.
lamentablemente no funciona
cambie las comillas simples y dobles pero sigue sin reproducir el nombre, y creo que de todos los que han posteado a nadie le ha funcionado pues nadie pone una solucion a este asunto.
gracias de todas formas
A mi no me ha funcionado, todo al pie de la letra pero rhythmbox no habla.
Hay está el codigo XD, le movi para que dijera el Artista y no la pista (creo que así esta mejor) y si lo quieren en español pues le quitan el ” # ” que esta por las lineas finales y eliminan la de abajo. Buen Aporte, ahora solo falta publicarselo a los cuates de canonical y Rhythmbox para q lo implementen oficialmente y no se quede solo en este foro (ya q parece una buena idea).
APOYEMOS EL PERFECCIONAMIENTO DE UBUNTU , CADA QUIEN CON UN PEQUEÑO APORTE PODREMOS HACER QUE EN POCO TIEMPO SEA EL S.O. LIBRE No.1 Y CON DEDICACION SE PUEDE, NO ESTAMOS LEJOS. AGUANTE UBUNTU !!! SALUDOS DESDE MEX.
#!/usr/bin/perl -w
use Net::DBus;
use Net::DBus::Reactor;
use strict;
my $prevsong = “none”;
my $bus = Net::DBus->find;
my $rhythm = $bus->get_service(“org.gnome.Rhythmbox”);
my $shell = $rhythm->get_object(“/org/gnome/Rhythmbox/Shell”, “org.gnome.Rhythmbox.Shell”);
my $player = $rhythm->get_object(“/org/gnome/Rhythmbox/Player”, “org.gnome.Rhythmbox.Player”);
sub SayPlaying()
{
my $uri = $player->getPlayingUri;
my %props = %{$shell->getSongProperties( $uri )};
my $artist = $props{‘artist’};
my @tmp = split(‘\(‘, $artist);
$artist = $tmp[0];
$artist =~ tr/’/ / ;
if ($artist =~ m/$prevsong/)
{return;}
$prevsong = $artist;
print $artist, “\n”;
#system “padsp espeak -ves -a500 ‘$artist’ &>/dev/null”;
system “padsp espeak -a700 ‘$artist’ &>/dev/null”;
}
$player->connect_to_signal(“playingUriChanged”, \&SayPlaying );
my $reactor = Net::DBus::Reactor->main();
$reactor->run();
eii tu sabes de algun programa qe leee las cansiones ii te dise qien las canta ii como se llama el nombre de la cansion?