Thanks man, this is really great. I'll make sure test them, and use them instead of the payload method. I'll also try the Bing plugin again.
As for Arabic not working, did you encode the url parameters before you query/send the HTTP request? You see, most Latin-based languages are easy to pass, but other languages requires you to escape the characters (eventually they will look something like %D0%F5%66%45...). This way the server will get them properly and unescape them (if the server support other languages/utf-8 etc). Most current browsers do this transparently without affecting the URL, but in reality they do that once they send the request.
Your Arabic text example in the XML file for googlespeak was really funny, let me translate it back to you: "This is the biggest program any time passed create"
I know, I know, blame the translator
I will see if I can come up with anything, but the problem is that I must use UDP for message passing. Can't you just implement a way to listen for the output stream for another process (mine), and get the binary audio file (for TTS) or as text (for Speech Recognition). For the later I could play the audio on behalf of VC, but for the first it is impossible to pass the audio from VC or the text back to VC without writing a plugin and/or using udp. I'll see what I can do.
Thanks again for the update.