大家好,我在 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();
method
我下载了 MSSpeech sdk 并安装了它(Microsoft.speech.dll)。
还下载了语言包。 (en-us、ko-kr)
我的麦克风驱动程序已安装并在控制面板中启用。
请帮我。
我的操作系统是 Windows 10,使用语音识别 api 是否有问题?
您很可能正在使用微软语音识别你真的应该使用系统语音识别.
改变这个:
using Microsoft.Speech.Recognition;
to this:
using System.Speech.Recognition;
您可以保留其余代码不变。
啥?这里有一些答案:System.Speech.Recognition 和 Microsoft.Speech.Recognition 之间有什么区别?
简而言之微软语音识别适用于服务器,适用于低质量音频,就像您在呼叫中心中找到的那样(用于自动化等),这意味着它不与所有音频输入设备兼容。
恰恰相反系统语音识别适用于桌面应用程序,它完全支持 Windows 上安装的默认录制设备。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)