Haz que Rhythmbox te diga el nombre de la canción que reproduces
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…
Escrito el 24 Junio, 2008 @ 4:31 pm
Gracias por el consejo, es muy útil en su propósito.
Escrito el 24 Junio, 2008 @ 5:12 pm
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
Escrito el 24 Junio, 2008 @ 8:28 pm
Como hacer para que pronuncie en español y no en inglés?
Escrito el 24 Junio, 2008 @ 9:41 pm
Oye a mi tampoco me funciono, segui todo al pie de la letra, pero nada!
Escrito el 24 Junio, 2008 @ 10:06 pm
#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.
Escrito el 24 Junio, 2008 @ 11:26 pm
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.
Escrito el 25 Junio, 2008 @ 6:54 am
vaya, eso si esta padre; habra que probarlo.
Saludos!!!
Escrito el 25 Junio, 2008 @ 11:26 am
a mi no me funciona ,alguien nos puede ayudar????
Escrito el 25 Junio, 2008 @ 10:12 pm
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
Escrito el 26 Junio, 2008 @ 1:30 pm
Supongo que con cambiar varias cosas del script, podría servir para Amarok, ¿no es cierto?.
Escrito el 26 Junio, 2008 @ 2:51 pm
[...] Haz que Rhythmbox te diga el nombre de la canción que reproduces [...]
Escrito el 28 Julio, 2008 @ 9:32 am
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
Escrito el 4 Septiembre, 2008 @ 3:39 pm
A mi no me ha funcionado, todo al pie de la letra pero rhythmbox no habla.
Escrito el 13 Diciembre, 2008 @ 5:09 pm
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();
Escrito el 15 Marzo, 2009 @ 10:05 pm
Agrega tu comentario!