It hurts me to advocate Windows but using tcom with the free speech engine from Microsoft is almost too easy (yes I know Microsoft and free speech sounds like an oxymorin :)
package require tcom set voice [::tcom::ref createobject Sapi.SpVoice] $voice Speak "Hello World" 1 after 3000 exit
The speech SDK is available from http://www.microsoft.com/speech/download/sdk51/ (51MB), there is a beta of .Net Speech at http://www.microsoft.com/speech/ (200MB) but I haven't tried that yet. - VPT
GPS Rsynth is a nice public domain package that I've used for speech synthesis. I wrote a say_this.tcl script that built a GUI for tweaking the voice. Another tool that I've heard good things about was Festival[L1 ]. CMU's Sphinx is another tool that may be good, but I haven't heard from users of it[L2 ].