你好,我在MS语音识别方面遇到了麻烦。
我的代码很简单。
tableView.beginUpdates()
let indexSet = NSMutableIndexSet()
indexSet.addIndex(indexPath.section)
tableView.deleteSections(indexSet, withRowAnimation: UITableViewRowAnimation.Fade)
tableView.endUpdates()
然后在通话中抛出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);
}
(System.InvalidOperationException:找不到请求的数据 项目,例如数据键或值。)
InvalidOperationException
方法
我下载了MSSpeech sdk并安装了它(Microsoft.speech.dll)。 还下载了语言包。 (en-us,ko-kr)
还在控制面板中安装并启用了我的麦克风驱动程序。
请帮帮我。
我的操作系统是Windows 10,这是使用语音识别API的问题吗?
答案 0 :(得分: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上安装的默认录制设备。