Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does System.Speech.Recognition make use of "speech training"?

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)?

like image 327
bulltorious Avatar asked Oct 21 '22 15:10

bulltorious


1 Answers

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.

like image 122
Eric Brown Avatar answered Oct 30 '22 19:10

Eric Brown