Speech Recognition Improvement, C #

I use the System.Speech library for speech recognition, but it usually recognizes very different ones.

SpeechRecognizer_rec = new SpeechRecognizer(); DictationGrammar grammar = new DictationGrammar(); grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized); _rec.LoadGrammar(grammar); 

How can I improve the review? Does the Grammer class?

+6
c # speech-recognition speech-to-text
source share
3 answers

If you can afford to ask users to switch to a learning process that will certainly give you much better results. I used it for myself (and I had an emphasis), and it greatly improved recognition accuracy in my applications. At least you can try it yourself (control panel, speech recognition, train your computer to better understand you). Indeed, training or reducing the model (or, of course, using your application in a quiet place with a better microphone) are the only ways to increase the accuracy of your results.

+5
source share

You should limit the model (basically, mapping from speech input to allowed text output in English) used by the speech recognition engine to get a high level of confidence. The smaller your model, the better your results will be overall, as there is less chance of choosing a recognizer, i.e. Wrong word between two similar sound words.

This simplified example, i.e. could only recognize numbers from one to three:

 SpeechRecognizer rec = new SpeechRecognizer(); Choices c = new Choices(); c.Add("one"); c.Add("two"); c.Add("three"); var gb = new GrammarBuilder(c); var g = new Grammar(gb); rec.LoadGrammar(g); 
+7
source share

The DictationGrammar gives some strange results, I tried different properties of SpeechRecognitionEngine, barely having time. Check: SpeechRecognitionEngine.BabbleTimeOut But first read about usage to prevent errors.

+2
source share

All Articles