SpeechRecognitionEngine.InstalledRecognizers返回未安装的识别器

我正在尝试启动一个简单的语音识别程序,但它不起作用,我已经安装了一些语言(en-GB和en-US),但每当我使用以下内容时:

SpeechRecognitionEngine.InstalledRecognizers

它返回一个空集合。 即使我只是尝试启动识别器,它也将返回“ 未安装识别器 ”。 但是当我重新安装一种语言时,它说已经安装了。

using ( SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"))) { // Create and load a dictation grammar. recognizer.LoadGrammar(new DictationGrammar()); // Add a handler for the speech recognized event. recognizer.SpeechRecognized += new EventHandler(recognizer_SpeechRecognized); // Configure input to the speech recognizer. recognizer.SetInputToDefaultAudioDevice(); // Start asynchronous, continuous speech recognition. recognizer.RecognizeAsync(RecognizeMode.Multiple); // Keep the console window open. while (true) { Console.ReadLine(); } } 

出于什么原因无法找到已安装的识别器?

编辑:

这是一个例外:{System.ArgumentException:找不到所需ID的识别器。 参数名称:System.Speech.Recognition.SpeechRecognitionEngine..ctor中的文化(CultureInfo文化)

和: var recognizers = SpeechRecognitionEngine.InstalledRecognizers(); 返回计数为0的集合

问题是我安装了可由Microsoft.Speech访问的语言包,而我使用的是System.Speech ,当我切换到Microsoft.Speech它工作正常。