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)?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With