You can try ordering your phrases a bit and using the Append(String, SubsetMatchingMode)
method; in particular, the OrderedSubset
will allow matching any linear subset of the string.
More likely, however, is that 10,000 words are simply too much data for a command & control grammar. A better option is to use a DictationGrammar
, not a command & control grammar. Add the words to a lexicon to be sure the dictation engine will be able to recognize the words, and then match the recognitions against your wordlist.
Upon reviewing your question, though, it seems as if you're using the Microsoft.Speech namespace, which uses the Server engine that does not support dictation; your only option then is the first one.