Wow this is really neat!
I see what you mean by it sounding a bit robotic, but it's pretty good for simple speech. However when it comes to explaining more complex things in conversation, it isn't clear enough for the other person to understand.
I've programmed in Java before, and would love to get my head around the C# code behind this... how does the Microsoft speech package fit into the code? Or did you write the speech code yourself?