If you don't really need arbitrary text
, you might find Win32::Sound
useful. I use it in many of my long-running utilities to alert me of problems. You can easily record messages into .WAV files (I have been known to get my kids to record messages too), or you can assemble a message from individual .WAVs for some flexibility. For instance I have a file that says "unable to open" and then two other files that say "input" and "output". It's simple to keep a directory of such resources and assemble statements as needed, and though it doesn't give you the flexibility of speech synthesis, the sound is probably more understandable and I imagine it uses a lot less CPU.
I'd like to be able to assign to an luser