我有一个应用程序,我使用听写语法和我定义的语法来识别语言。我需要用户定义的语法比听写语法有更多的优先级,这样语音识别引擎只会在用户定义的语法中找不到听写语法。请给出任何想法,你可能会使这一工作。
发布于 2013-08-29 19:51:41
语法类有两个属性:权重和优先级。您可以将更高的权重分配给您创建的语法,而将较低的权重分配给您使用的听写语法。或者,如果有多个用户定义的语法,则可以使用优先级属性来指示一种语法比另一种语法具有优先级。见下面的例子;
// Create a Grammar for recognizing numeric digits.
Grammar digitsGrammar = CreateDigitsGrammar();
digitsGrammar.Name = "Digits Grammar";
digitsGrammar.Priority = 2;
digitsGrammar.Weight = 0.6f;
// Create a Grammar for recognizing fractions.
Grammar fractionsGrammar = CreateFractionsGrammar();
fractionsGrammar.Name = "Fractions Grammar";
fractionsGrammar.Priority = 1;
fractionsGrammar.Weight = 1f;
// Create an in-process speech recognizer.
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
recognizer.SpeechRecognized +=new EventHandler<SpeechRecognizedEventArgs>(
recognizer_SpeechRecognized);
// Load the digits and fractions Grammar objects.
recognizer.LoadGrammar(digitsGrammar);
recognizer.LoadGrammar(fractionsGrammar);
// Start recognition.
recognizer.SetInputToDefaultAudioDevice();
recognizer.RecognizeAsync(RecognizeMode.Multiple);https://stackoverflow.com/questions/11185913
复制相似问题