C# 限制C语言中的语音识别选择#

C# 限制C语言中的语音识别选择#,c#,dictionary,speech-recognition,speech,C#,Dictionary,Speech Recognition,Speech,我想知道是否有办法将windows语音识别库限制为只包含几个单词的小型库 我试着用几个单词制作一个语音操作程序,但当我添加了计算机难以识别的单词(比如名字)时,它往往会将这个名字识别为另一个单词。这就是为什么我想添加一个特殊的字典,比如一个名字列表 埃克斯:桑德雷,罗伯特,鲍勃 当说出一个名字时,该程序只会检查我之前使用Kinect camera进行的项目中是否使用了下面识别的3个单词中的一个。 我限制了短语{快,慢,停..}并建立了一个语法。我希望它能回答你的问题 private vo

我想知道是否有办法将windows语音识别库限制为只包含几个单词的小型库

我试着用几个单词制作一个语音操作程序,但当我添加了计算机难以识别的单词(比如名字)时,它往往会将这个名字识别为另一个单词。这就是为什么我想添加一个特殊的字典,比如一个名字列表

埃克斯:桑德雷,罗伯特,鲍勃


当说出一个名字时,该程序只会检查我之前使用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,但我会尽快测试你的代码。非常感谢你的帮助!