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

Microsoft 语音识别结果的格式(挪威语)

微软自定义语音识别定价方案

智能电话机器人,使用Microsoft语音识别技术(Speech sdk)(下)

微软语音识别速度

微软语音识别api