我正在学习语音识别。我正在使用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。
现在我的疑问是:
不同。
答案 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。服务器识别可提供更高的性能,并且有望被多个用户使用(例如在电话系统中),并且不需要培训。