Search code examples
c#speech-recognitionspeechsapi

Showing near guesses that exist in the grammar?


Microsoft SAPI SpeechRecognitionEngine as you know, is not the most accurate speech recognition engine out there. In the event of the program not recognizing the speech correctly, is there a way for the user to notify the application that the application recognized the speech incorrectly? Or how can I display the near guesses that exist in the Speech Grammar that are similar to the speech uttered?

For example:

Speaking the words: "Read entire book"

Engine recognizes as:

"Read enrich book"

The user should be able to click on a button that probably says: "Incorrect guess"

and then the application shows a list of words that are similar so that the user can select what he/she actually said and maybe the program can learn from the mistake?

Program displays: "Words in the grammar that are similar: enrich, enhance, entire, encapsulate

I know that this is similar to machine learning and neural network training, but if we could do this, we could actually make SAPI work better. Any answers please?


Solution

  • Alternates are available for dictation recognitions. One can ask for alternates for grammar-based recognitions, but the engine doesn't provide any.

    You can also use the SpeechRecognizer.SpeechRecognitionRejected to collect information about utterances that do not have a sufficiently high confidence; however, in my experience, it's rare to get usable information from that event.