System.Speech与Microsoft.Speech的使用

时间:2019-02-10 08:48:16

标签: c# speech-recognition

我正在学习语音识别。我正在使用System.Speech

这是代码:

var currentCulture = (from r in SpeechRecognitionEngine.InstalledRecognizers()
                              where r.Culture.Equals(Thread.CurrentThread.CurrentCulture)
                              select r.Culture).FirstOrDefault();

        recognizer = new SpeechRecognitionEngine(currentCulture);

我得到currentCulture等于null,因为在调试中我得到了SpeechRecognitionEngine.InstalledRecognizers()。计数等于0。

我发现了这个问题: SpeechRecognitionEngine.InstalledRecognizers returns No recognizer installed

他说他用Microsoft.Speech代替了System.Speech解决了。

我在“参考”->“添加参考”->“程序集”中进行搜索,但找不到Microsoft.Speech。 尝试使用Nuget软件包管理器搜索Microsoft.Speech,但找不到它。

在Google上搜索,我发现MSI软件包可以在此处安装Microsoft.Speech: https://www.microsoft.com/en-us/download/details.aspx?id=27225

重新启动计算机,仍然在“参考”->“添加参考”->“程序集”中进行搜索,但找不到Microsoft.Speech。

现在我的疑问是:

  1. System.Speech与Microsoft.Speech的区别
  2. 如果更合适,如何为System.Speech安装增强剂。
  3. 如何添加对Microsoft.Speech的引用
  4. 如何使用Microsoft.Speech,如果更合适,也许使用的代码将是

不同。

1 个答案:

答案 0 :(得分:2)

请参见What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?

从Vista开始的台式机Windows版本附带实现System.Speech的识别器。这些是“桌面”识别器。他们可以接受针对特定说话者的培训,可以支持比电话更高质量的音频,并且可以提供听写语法。

Micorosft.Speech是相似但不同的API,提供“服务器”识别功能。这是一个单独的下载。请参阅“ Microsoft语音平台-https://www.microsoft.com/en-us/download/details.aspx?id=27225。服务器识别可提供更高的性能,并且有望被多个用户使用(例如在电话系统中),并且不需要培训。