The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Speechd - Perl Module wrapper for speech-dispatcher.

DESCRIPTION

Speechd is a Perl module to make it easy to use speech-dispatcher for text to speech functions.

SYNOPSIS

my $sd = Speachd->new([property => value, property => value, ...]);

PROPERTIES

port : Port number.

Default is 6560

ip : IP address.

Default is 127.0.0.1

voice : Voice name.

Default is MALE1. Possible voice names are: MALE1 MALE2 MALE3 FEMALE1 FEMALE2 FEMALE3 CHILD_MALE CHILD_FEMALE

rate : Speaking rate.

Default is 0. Possible values are from -100 to 100.

volume : Speaking volume.

Default is 0. Possible values are from -100 to 100.

pitch : Speaking pitch.

Default is 0. Possible values are from -100 to 100.

lang : Speaking lanuage.

Default value is en (english).

METHODS

new

my $sd = Speachd->new([property => value, property => value, ...]);

Creates a new instance of the Speachd object.

connect

$sd->connect();

Connect a socket to speech-dispatcher. This must be called before methods say, cancel, voice, volume, pitch, lang, and config_voice can be used.

disconnect

$sd->disconnect();

Disconnect socket from speech-dispatcher.

port

$sd->port([$port_number]);

If port number is given; sets port number and returns previos value. If no port number is given; returns value. Default value is 6560

ip

$sd->ip([$ip_address]);

If ip address is given; sets ip address and returns previos value. If no ip address is given; returns value. Default value is 127.0.0.1

voice

$sd->voice([$voice]);

If voice is given; sets voice and returns previos value. If no voice is given; returns value. Default value is MALE1. Possible values are: MALE1 MALE2 MALE3 FEMALE1 FEMALE2 FEMALE3 CHILD_MALE CHILD_FEMALE If not connected, method msg will return error.

rate

$sd->rate([$rate]);

If rate is given; sets rate and returns previos value. If no rate is given; returns value. Default value is 0. Possible values are from -100 to 100. If not connected, method msg will return error.

volume

$sd->volume([$volume]);

If volume is given; sets volume and returns previos value. If no volume is given; returns value. Default value is 0. Possible values are from -100 to 100. If not connected, method msg will return error.

pitch

$sd->pitch([$pitch]);

If volume is given; sets volume and returns previos value. If no volume is given; returns value. Default value is 0. Possible values are from -100 to 100. If not connected, method msg will return error.

lang

$sd->lang([$lang]);

If lang is given; sets language and returns previos value. If no lang is given; returns value. Default value is en. If not connected, method msg will return error.

config_voice

$sd->config_voice($voice, $lang, [$rate, $volume, $pitch]);

Sets parameters for speech-dispatcher. See individual methods for possible values.

msg

my $message = $sd->msg();

Returns and clears messages from previous command sent to speechd.

say

$sd->say($text_to_speak);

Sends text to speech-dispatcher to be spoken.

cancel

$sd->cancel();

Kills speech.

get_voices

my $voices = $sd->get_voices();

Returns a reference to an array holding all possible voice names.

sendraw

$sd->sendraw($command_to_send_to_speech-dispatcher);

Available to send commands directly to speech-dispatcher. Puts return messages into msg.

EXAMPLE

 #!/usr/bin/perl

 use strict;
 use warnings;

 use Speechd;

 my $rate = 0;
 my $vol = 0;
 my $pitch = 0;
 my $lang = "en";
 my $voice = "MALE1";

 my $sd = Speechd->new(
    'rate' => $rate,
    'volume' => $vol,
    'lang' => $lang,
    'voice' => $voice,
 );

 $sd->connect();

 while (1) {
    print "Enter text to speak:\n";
    my $text = <>;
    $sd->say($text);
    my $message = $sd->msg();
    print $message;
    chomp $text;
    $text = lc($text);
    last if $text eq "goodbye";
 }

 $sd->disconnect();

 exit 0;

SEE ALSO

More information about speech-dispatcher can be fount at: http://www.freebsoft.org

AUTHOR

Joe Kamphaus, <joe@joekamphaus.net>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Joe Kamphaus

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; version 2 of the License or any later version.

 This module is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.