UWP连续语音识别通配符

时间:2016-08-22 16:49:58

标签: c# uwp speech-recognition speech

我正在使用Windows Universal Application,需要制作一个语音命令,用于判断用户句子并填写屏幕上的字段。这些字段的示例包括姓名和出生日期。我不能在SRGS文件中使用,因为我不知道所有名称,并且添加所有可能的名称将不起作用。有没有办法表明外卡值会显示在哪里,然后从命令中获取该值?谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你可以使用Predefined grammars,AKA主题约束作为SpeechRecognizer的约束。

您可以像这样指定SpeechRecognitionTopicHint的方案:

var dictationConstraint = new SpeechRecognitionTopicConstraint(SpeechRecognitionScenario.FormFilling, "Person Name");

将您的SRGS文件作为约束并将此主题约束添加到SpeechRecognizer

var dictationConstraint = new SpeechRecognitionTopicConstraint(SpeechRecognitionScenario.FormFilling, "Person Name");
var grammarfileConstraint = new SpeechRecognitionGrammarFileConstraint(sgrsFile);
speechRecognizer.Constraints.Add(dictationConstraint);
speechRecognizer.Constraints.Add(grammarfileConstraint);

虽然由于重音,噪音或其他可能的干扰而无法确保100%正确获取您的语音输入,但它会自动尝试将您的语音输入转换为“人名”主题。