I've found it very helpful in a few cases to add audible alarms to monitoring functions. For example, if you work in a network support environment and a server goes down, you need know about it a.s.a.p.
By using text-to-speech you can monitor several aspects of your working environment without having to continually view screens.
I recommend eSpeak which is a compact open source software speech synthesiser. Once installed, you can test it by typing something in a terminal:-
espeak hello
...or...
espeak "hello steve"
You can change the default voice by using the voice switch, so:-
espeak -ven+f4 "hello steve"
...should give you an English female voice.
Having different voices can be useful. For example, you could use a female voice when a server goes down, and a male voice when a new job request arrives on you Help Desk. With the monitoring system that we use, I've created 10 voices which are simply selected at random.
Using eSpeak With Gambas.
This is really easy:-
strMessage="hello steve"
EXEC ["espeak", strMessage]
...or with more control:-
strMessage="Hello, My name is Monica"
's=rate, p=pitch, v=voice, f=female, k=emphasis on capitals
EXEC ["espeak", "-s130", "-p70", "-ven+f4", "-g5", "-k5", strMessage]
So here is a simple Gambas speech alarm routine:-
PUBLIC SUB Alarm(strMessage AS String,strVoice AS String)
SELECT CASE strVoice
CASE "monica"
strVoice="-ven+f4"
CASE "bill"
strVoice="-ven+m4"
...
{more voices}
...
CASE ELSE
strVoice="-ven+m1"
END SELECT
's=rate, p=pitch, v=voice, f=female, k=emphasis on capitals
EXEC ["espeak", "-s130", "-p70", strVoice, "-g5", "-k5", strMessage]
WAIT 2 {you may need a delay depending upon repeat period & length of text}
END
Have Fun!