Microsoft 语音识别 setInputToDefaultAudioDevice 引发异常
Posted
技术标签:
【中文标题】Microsoft 语音识别 setInputToDefaultAudioDevice 引发异常【英文标题】:Microsoft Speech Recognition setInputToDefaultAudioDevice throws exception 【发布时间】:2015-10-06 04:35:14 【问题描述】:大家好,我在 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: 找不到请求的数据 项,例如数据键或值。)
SetInputToDefaultAudioDevice();
方法
我下载并安装了 MSSpeech sdk (Microsoft.speech.dll)。 还下载了语言包。 (zh-us, ko-kr)
还有我的麦克风驱动程序已在控制面板中安装并启用。
请帮帮我。
我的操作系统是 Windows 10,使用语音识别 api 有问题吗?
【问题讨论】:
你解决了吗? @JakobLithner 我不知道出了什么问题,但几天后这段代码可以正常工作。它是有线的。我没有改变任何东西。 【参考方案1】:您很可能正在使用 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 上的默认录音设备。
【讨论】:
以上是关于Microsoft 语音识别 setInputToDefaultAudioDevice 引发异常的主要内容,如果未能解决你的问题,请参考以下文章
无法使用Delphi通过Post打开Microsoft语音识别API