Hi, my primary language is spanish, but I use all my software in english, including windows; however I'd like to use speech recognition in spanish.

Do you know if there's a way to use vista's speech recognition in other language than the primary os language?

+8  A: 

Citation from Vista speech recognition blog:

In Windows Vista, Windows Speech Recognition works in the current language of the OS. That means that in order to use another language for speech recognition, you have to have the appropriate language pack installed. Language packs are available as free downloads through Windows Update for the Ultimate and Enterprise versions of Vista. Once you have the language installed, you’ll need to change the display language of the OS to the language you want to use. Both of these are options on the “Regional and Language Options” control panel. You can look in help for “Install a display language” or “Change the display language”.


Sure, but I want to do it without changing the display language... no way then?

Juan Manuel
+6  A: 

To complete aku's answer, you have here different methods to have a "multilingual use in Vista".

  1. Installing a language pack

  2. Switching to a different language (and back)

Creating computer users. Create a user for each language and change the display language for that user to the language of your preference. A new Speech profile will be automatically created for that user. Switch between your languages by the normal procedure of “switching to another user” (Log offà Switch users).

Note: You can create a speech recognition profile for each user with any name you prefer. Change the name, or create a new user, in the Advanced Speech panel.

The advantage of the Separate Users method is that you can switch back and forth without changing any computer defaults.
The disadvantages are that it takes more disk space and more attention must be given to user management, and that you may not have access to files opened or saved by your other users unless you know how to give yourself such an access via the new permission dialogues of Windows Vista.

+1, I was wondering how to do this myself recently. So this means I could have my computer's Display language in English (my main user account), but have another user with a French display and then while logged on to my user, use their speech recognition profile to speak to the computer in French?

You can install the language pack, but not apply it on your user. Then you might be able to change the language of the speech recognition, although I haven't tried it since I don't have Vista Ultimate.

+2  A: 

Sure, but I want to do it without changing the display language... no way then?

No, not officially, if you believe this KB article: The Windows Speech Recognition language must be the same as the operating system language in Windows Vista.

So try to change it automatically, there some scripts on the internet, I found them via yahoo with Windows Speech Recognition "change language". This one looks interesting, but it is not tested. I don't know, if it's malware or whatever, so be carefull: Vistalizator Good luck!

could you elaborate on those scripts?
Juan Manuel

It will work fine as I had by changing lanuguage support.

+3  A: 

You should look at System.Speech.Recognition.SpeechRecognitionEngine - it's an 'in-proc' recognizer that will let you specify the language you want.

Your next problem is that en-US Vista doesn't ship with the spanish recognition engine. For that, you'll need the Spanish Language Pack. Once you install that, you should be able to instantiate a spanish recognition engine like this:

using System.Speech.Recognition;
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new CultureInfo("es-ES"));

At that point, you can install grammars & do recognitions, etc.

Eric Brown
+1, does this mean that the main display would still be set to English, but if you had the Spanish language pack installed you could set up a recognizer/grammar etc to recognize in spanish?