PerlSpeak version 0.01 ====================== PerlSpeak - Perl Module for text to speach with festival or cepstral PerlSpeak.pm is Perl Module for text to speach with festival or cepstral. One of these must be installed on your system in order for PerlSpeak. Plans to include other tts systems in future releases. PerlSpeak.pm was developed to use in the PerlSpeak system for blind linux users. More information can be found at the authors website http://www.joekamphaus.net INSTALLATION To install this module type the following: perl Makefile.PL make make test make install COPYRIGHT AND LICENCE Copyright (C) 2007 by Joe Kamphaus This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. CHANGES 1/9/2007 * Fixed error handling for opendir and readdir. * Added property tts_command => $string (insert "text_arg" where the text to speak should be.) * Added property no_dot_files => $boolean default is 1 (Set to 0 to show hidden files) * Fixed bug in tts_engine => "cepstral" (previously misspelled as cepstrel) * Added funtionality to traverse directory tree up as well as down. (user can now use the arrow keys for browsing and selecting up and down browses files in current directory. Right selects the file or directory. Left moves up one directory like "cd ..") METHODS $ps = PerlSpeak->new(property => value, ...); $ps->say("Text to speak."); $path = $ps->filepicker("/start/directory"); $path = $ps->dirpicker("/start/directory"); $chr = $ps->getchr(); # Returns next character typed on keyboard # An audio menu executes callback when item is selected $ps->menu("Text to speak" => $callback, ...) PROPERTIES $ps->{tts_engine} => "festival" or "cepstral"; $ps->{tts_command} => "command text_arg"; $ps->{no_dot_files} => $boolean; # Default is 1 $ps->{hide_extentions} => $boolean; # Default is 0 HOW TO USE #!/usr/bin/perl use PerlSpeak; my $ps = PerlSpeak->new(); # Set properties $ps->{tts_engine} = "festival"; # or cepstrel # Optionally set your own tts command use text_arg where the text goes $ps->{tts_command} => ""; $ps->{no_dot_files} => 1; $ps->{hide_extentions} => 0; # Speaking file selectors my $file = $ps->filepicker($ENV{HOME}); # Returns a file. my $dir = $ps->dirpicker($ENV{HOME}); # Returns a directory. $ps->say("Hello World!"); # The computer talks. # Returns the next character typed on the keyboard # May take 2 or 3 calls for escape sequences. print $ps->getch(); # Make some sub refs to pass to menu my $email = sub { print "Email\n"; }; my $internet = sub { print "Internet\n"; }; my $docs = sub { print "Documents\n" }; my $mp3 = sub { print "MP3\n"; }; my $cdaudio = sub { print "CD Audio\n" }; my $help = sub { print "Browse Help\n" }; # menu is a talking menu # Pass menu a hash of "text to speak" => $callback pairs $ps->menu( "E-mail Menu" => $email, "Internet Menu" => $internet, "Documents Menu" => $docs, "M P 3 audio" => $mp3, "C D audio" => $cdaudio, "Browse help files" => $help, };