微软语音识别setInputToDefaultAudioDevice抛出异常

本文关键字:抛出异常 setInputToDefaultAudioDevice 语音识别 微软 | 更新日期: 2023-09-27 18:16:15

大家好,我在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);
    }
在call 中抛出InvalidOperationException

(系统。InvalidOperationException:找不到请求的数据项(如数据键或值)

SetInputToDefaultAudioDevice();

我下载了MSSpeech sdk并安装了它(Microsoft.speech.dll)。还下载了语言包。(en - us ko-kr)

和我的麦克风驱动程序安装和启用在控制面板。

请帮帮我。

我的操作系统是Windows 10,使用语音识别api有问题吗?

微软语音识别setInputToDefaultAudioDevice抛出异常

很可能你正在使用Microsoft.Speech。识别,你真的应该使用System.Speech.Recognition

改变:

using Microsoft.Speech.Recognition;

:

using System.Speech.Recognition;

您可以保留其余的代码。

Wh ?下面是一些答案:System.Speech.Recognition和Microsoft.Speech.Recognition的区别是什么?

总之Microsoft.Speech。识别适用于服务器,适用于呼叫中心(用于自动化等)中发现的低质量音频,这意味着它不兼容所有音频输入设备。

相反System.Speech。识别适用于桌面应用程序,它完全支持Windows上安装的默认录制设备。