你好,我在MS语音识别方面遇到了麻烦.
我的代码很简单.
static void init() { string enUsEngine = string.Empty; foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers()) { Console.WriteLine(ri.Culture); if (ri.Culture.Name.Equals("en-US") == true) { enUsEngine = ri.Id; } } SpeechRecognitionEngine recogEngine = new SpeechRecognitionEngine(enUsEngine); Grammar grammar = new Grammar("grammar.xml"); recogEngine.LoadGrammar(grammar); recogEngine.SpeechRecognized += recogEngine_SpeechRecognized; recogEngine.RecognizeCompleted += recogEngine_RecognizeCompleted; recogEngine.SetInputToDefaultAudioDevice(); recogEngine.RecognizeAsync(RecognizeMode.Multiple); }
然后在调用中抛出InvalidOperationException
(system.invalidOperationException: Cannot find the requested data
item,such as a data key or value.)
SetInputToDefaultAudioDevice();方法
我下载了Msspeech sdk并安装了它(Microsoft.speech.dll).
还下载了语言包. (en-us,ko-kr)
还在控制面板中安装并启用了我的麦克风驱动程序.
请帮我.
我的操作系统是Windows 10是使用语音识别API的问题吗?
解决方法
很可能你使用的是Microsoft.Speech.Recognition,你应该使用System.Speech.Recognition.
改变这个:
using Microsoft.Speech.Recognition;
对此:
using System.Speech.Recognition;
您可以保留其余代码.
瓦?那么这里有一些答案:
What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?
简而言之,Microsoft.Speech.Recognition适用于服务器,可以在呼叫中心(用于自动化等)中使用低质量音频,这意味着它与所有音频输入设备不兼容.
相反,System.Speech.Recognition适用于桌面应用程序,它完全支持Windows上安装的默认录制设备.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。