Question

I have some simple code from the System.Speech.Recognition that works fine:

using (var recognizer = new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
    recognizer.LoadGrammar(new DictationGrammar());
    recognizer.SpeechRecognized += recognizer_SpeechRecognized;
    recognizer.SetInputToDefaultAudioDevice();
    recognizer.RecognizeAsync(RecognizeMode.Multiple);
}

private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    textBox1.Text = "Recognized text: " + e.Result.Text;
}

When using Windows 7, and I do the speech training at "Control Panel" -> "Speech Recognition" -> "Train your computer to better understand you".

Does my program automatically utilize any training that has been done? Are the training benefits based by user or by machine? Can these speech "profiles" be moved (easily)?

Was it helpful?

Solution

Yes, training (particularly for dictation) is useful. Accuracy can improve by 20-50% with training. (This is especially true if the user has an accent.)

The training benefits are per user.

Microsoft has a tool that copies speech profiles, but it's built for an older version of the SR engine (XP-era), and as far as I know, nobody at Microsoft is willing to either update it or vouch for it on newer SR engines. If you want to try it, Bing for "Speech Profile Manager", and it will pop right up.

OTHER TIPS

Yes, it appears that though it may not be necessary to train it, it can be done: this site, and this site.

I think when you are using the Dictation grammar, training would be helpful. If you are using a more limited application grammar, training would be less valuable.

Keep in mind, one of the key differences between the Windows client speech recognition APIs (System.Speech) and the server speech recognition APIs (Microsoft.speech) is that the server APIs are intended to be multiuser and cannot be trained (think about voice automated phone systems, you can't train for every caller). This SO question may be helpful if you are curious - What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top