C# 限制C语言中的语音识别选择#
我想知道是否有办法将windows语音识别库限制为只包含几个单词的小型库 我试着用几个单词制作一个语音操作程序,但当我添加了计算机难以识别的单词(比如名字)时,它往往会将这个名字识别为另一个单词。这就是为什么我想添加一个特殊的字典,比如一个名字列表 埃克斯:桑德雷,罗伯特,鲍勃C# 限制C语言中的语音识别选择#,c#,dictionary,speech-recognition,speech,C#,Dictionary,Speech Recognition,Speech,我想知道是否有办法将windows语音识别库限制为只包含几个单词的小型库 我试着用几个单词制作一个语音操作程序,但当我添加了计算机难以识别的单词(比如名字)时,它往往会将这个名字识别为另一个单词。这就是为什么我想添加一个特殊的字典,比如一个名字列表 埃克斯:桑德雷,罗伯特,鲍勃 当说出一个名字时,该程序只会检查我之前使用Kinect camera进行的项目中是否使用了下面识别的3个单词中的一个。 我限制了短语{快,慢,停..}并建立了一个语法。我希望它能回答你的问题 private vo
当说出一个名字时,该程序只会检查我之前使用Kinect camera进行的项目中是否使用了下面识别的3个单词中的一个。 我限制了短语{快,慢,停..}并建立了一个语法。我希望它能回答你的问题
private void initSpeech()
{
// You need to change here if you are not using kinect camera
RecognizerInfo ri = SpeechRecognitionEngine.InstalledRecognizers().Where(r => r.Id == "SR_MS_en-US_Kinect_10.0").FirstOrDefault();
if (ri == null)
{
throw new ApplicationException("Could not locate speech recognizer. Ensure you have the Kinect Speech SDK/runtime/MSKinectLangPack_enUS installed.");
}
sr = new SpeechRecognitionEngine(ri.Id);
//Phrases that will be recognised added
Choices phrases = new Choices();
phrases.Add(
"faster",
"slower",
"stop",
"invert y",
"music volume",
"effects volume",
"okay");
GrammarBuilder gb = new GrammarBuilder();
//adding our phrases to the grammar builder
gb.Append(phrases);
// Loading the grammer
sr.LoadGrammar(new Grammar(gb));
}
可以使用语法对象和GrammarBuilder对象为特定单词或短语提供选项子集。请参阅MSDN文章:正是我所寻找的!我不会用kinect,但我会尽快测试你的代码。非常感谢你的帮助!