I\'m planning on writing a program for Linux that uses text to speech and speech recognition. What are the best tools/libraries for this? Should I use Windows instead to be
Did you checked the HMM-based speech synthesis for text-to-speech. You can find the free demo on the website http://hts.sp.nitech.ac.jp/. Installation will be little tedious.
I know espeak is a very good text-to-speech program for linux (it can even do different accents!), but I don't know of any speech recognition systems designed for UNIX.
This is a bit old but I saw that a fairly comprehensive guide on speech recognition on Hackaday a few days ago: http://hackaday.com/2010/07/09/get-started-with-speech-recognition/
For speech recognition there are the various Sphinxes. The different variants have different pros and cons, there is a comparison here Comparison of Sphinx versions. Sphinx 4 is Java, but the others are C, I believe.
For speech recognition there exists very little for linux. I were only aware of one apparently decent option, something IBM released some years ago but later was no longer made available (anyone knows if this ViaVoice SDK is still possible to get hold of from anywhere?). There are some more information about possible options at wikipedia.
For Debian/Ubuntu text-to-speech there is also SVOX Pico:
sudo apt-get install libttspico-utils