I have a bit of an interest in this as well. Microsoft provides this functionality in their Speech API ("SAPI"). It interfaces to C++ and .NET languages and makes use of COM.
Microsoft has a video
here[
^] and some good stuff
here[
^] and
here[
^] .
A list of competing products (Microsoft and otherwise) is available
here[
^] .
I haven't pursued this line too far. I am interested in doing this myself with Java on linux. :-(
Good luck!