Using The New Microsoft.Speech Namespace in the .NET Framework 3.0/Vista
I have had the opportunity to work with the new Microsoft.Speech namespace in the .NET Framework 3.0. The short of it - it rocks! Very easy to get started, but a wealth of sophisticated functionality for developers. Of course, you need to be running Vista in order to make this happen. One thing I really liked is the bringing forward of some of the concepts of Microsoft Speech Server and the Speech Application SDK ("SASDK") into the client-side API. Most notable is the whole prompt database concept, allowing for structured interaction with the user. You do not have to use this, however, as the SpeechSynthesizer.Speak() method does allow for the use of any text string to be spoken.
While most of the messaging around the Speech API is focused on accessibility, speech interaction can be useful on the desktop in other situations. Case in point -
My 6 year-old son is in first grade and learning his spelling. He comes home at the beginning of the week with a new list of spelling words to learn. I decided to combine the power of the Tablet PC with the new Speech API. The result was an application that:
1) Allows the user (I would assume an adult) to create lists of words to practice. The list is stored as XML. Multiple lists can be created.
2) Has the user go through each word. The application speaks the word, then the user spells it by writing on the Tablet PC. Once finished, they tap on a big color-coded button to check the spelling.
3) If the answer is correct, the application says so by voice, then provides a little applause. If the answer is worng, the application says so (in a nice and encouraging way), and a little "awww" is played. The user can always try again.
4) At the end, a tally of total words and correctly spelled words is provided.
Total time to develop the application - about 4 hours from concept to realization. Most of the time was spent on UI creation; writing the Tablet PC-specific code and Speech interface was more of a matter of minutes than hours.
I really think there are many more possible uses for the new Speech API. Just think of something you do currently that involves reading. Would a voice interface be nicer or improve productivity? If the answer is even "maybe", then you should check it out.