UWP 连续语音识别通配符
UWP Coutinuous Speech Recognition Wildcards
我正在使用 Windows 通用应用程序,需要制作一个语音命令来接受用户的句子并填写屏幕上的字段。这些字段的示例包括姓名和出生日期。我不能在 SRGS 文件中使用 ,因为我不知道所有名称并且添加所有可能的名称也不起作用。有没有办法指示通配符值将出现在何处,然后从命令中获取该值?谢谢!
我认为你可以使用 Predefined grammars, AKA topic constraint as the constraint of SpeechRecognizer。
你可以这样指定SpeechRecognition
和TopicHint
的场景:
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% 正确地获取您的语音输入,但它会自动尽力将您的语音输入转换为 "Person Name" 的主题。
我正在使用 Windows 通用应用程序,需要制作一个语音命令来接受用户的句子并填写屏幕上的字段。这些字段的示例包括姓名和出生日期。我不能在 SRGS 文件中使用 ,因为我不知道所有名称并且添加所有可能的名称也不起作用。有没有办法指示通配符值将出现在何处,然后从命令中获取该值?谢谢!
我认为你可以使用 Predefined grammars, AKA topic constraint as the constraint of SpeechRecognizer。
你可以这样指定SpeechRecognition
和TopicHint
的场景:
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% 正确地获取您的语音输入,但它会自动尽力将您的语音输入转换为 "Person Name" 的主题。