为什么在语音识别C#中需要语法

时间:2017-03-22 03:27:10

标签: c# speech-recognition speech-to-text

SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
Choices clist = new Choices();
// just assume I have added words in clist not shown here
Grammar gr = new Grammar(new GrammarBuilder(clist));

sre.RequestRecognizerUpdate();
sre.LoadGrammar(gr);
sre.SpeechRecognized += sre_SpeechRecognized;
sre.SetInputToDefaultAudioDevice();
sre.RecognizeAsync(RecognizeMode.Multiple);

 void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
 {
//This only outputs words present in grammar
   Console.WriteLine(e.Result.Text);
 }

简而言之,为什么我们需要语音识别语法。如果需要语法,重点是什么。如果识别器必须匹配语法中存在的字符串,为什么我们只能输出语音识别器在没有语法的情况下识别的内容?

谢谢,并在我错的地方纠正我。

1 个答案:

答案 0 :(得分:3)

我们使用语法来区分押韵词或者词的发音方式。你好和黄色示例。 link的样本有一个很好的解释。你好涉及问候语法,黄色涉及颜色语法。 提高了识别的效率/准确性

  

如果语法规则或语法内部的分组很聪明,   开发人员可以在系统进入时启用和禁用方案   一个特定的国家。它可以提供上下文,在某些情况下,更好   系统正在监听的单词的准确性。

您还可以参考MSDN链接以了解Purpose of Grammars上的详细信息。

它有助于代码提供限制词汇自定义词汇过滤识别结果识别规则等功能