考虑这样的语法; speech.Recognizer.Grammars.AddGrammarFromList("answer",new string[] { "Go.","no" });
当我说一些不是语法的东西时,她说"抱歉没有抓住"然后尝试再次启动它。 null输入也是如此。
我想要的是它应该只识别语法中的单词以及其他所有应该通过识别的单词。我不想看到像#34;抱歉没有抓住"和第二次recognotion。任何的想法 ?感谢。
编辑:使用try-catch我可以避免第二次重复注释,如果这个词是未知的,但现在它等待太长时间"抱歉没有抓住"部分。
try
{
SpeechRecognizerUI speech = new SpeechRecognizerUI();
speech.Settings.ReadoutEnabled = false;
speech.Settings.ShowConfirmation = false;
speech.Recognizer.Settings.InitialSilenceTimeout = System.TimeSpan.FromSeconds(0.8);
speech.Recognizer.Grammars.AddGrammarFromList("answer", new string[] { "Go.", "no" });
SpeechRecognitionUIResult result = await speech.RecognizeWithUIAsync();
if (result.RecognitionResult.Text == "Go.") { .... }
}
catch
{
..... }
答案 0 :(得分:0)
在我看来,您必须构建自己的UI以避免这种情况。因此,您应该使用SpeechRecognizer,然后您可以根据需要处理输入。 在我的情况下,我甚至创建了两个SpeechRecognizer,使用自己的Wordlist,另一个使用默认字典。它就像一个魅力,但我无法使用SpeechRecognizerUI。