Microsoft语音识别setInputToDefaultAudioDevice引发异常 [英] Microsoft Speech Recognition setInputToDefaultAudioDevice throws exception

查看:172
本文介绍了Microsoft语音识别setInputToDefaultAudioDevice引发异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我在MS语音识别方面遇到了麻烦.

hello guys I'm in trouble in MS Speech recognition.

我的代码很简单.

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:找不到请求的数据项,例如数据键或值.)

(System.InvalidOperationException: Cannot find the requested data item, such as a data key or value.)

SetInputToDefaultAudioDevice(); 方法

我下载了MSSpeech sdk并安装了它(Microsoft.speech.dll).还下载了语言包.(zh-cn,ko-kr)

I downloaded MSSpeech sdk and installed it (Microsoft.speech.dll). also downloaded language packs. (en-us, ko-kr)

以及在控制面板中安装并启用了我的麦克风驱动程序.

and also My microphone driver installed and enabled in control panel.

请帮助我.

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

My operating system is Windows 10 is that a problem for using Speech Recognition api?

推荐答案

很可能您正在使用 Microsoft.Speech.Recognition ,而您实际上应该在使用 System.Speech.Recognition .

Most probably you are using Microsoft.Speech.Recognition and you reall should be using System.Speech.Recognition.

更改此:

using Microsoft.Speech.Recognition;

对此:

using System.Speech.Recognition;

您可以保留其余代码.

什么?好吧,这里有一些答案: System.Speech有什么区别.Recognition和Microsoft.Speech.Recognition?

Wh? Well here are some answers: What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?

简而言之, Microsoft.Speech.Recognition 适用于服务器,并且可以处理低质量音频,就像您在呼叫中心找到的那样(用于自动化等),这意味着它与所有音频输入都不兼容.设备.

In short Microsoft.Speech.Recognition is for servers and works with low quality audio like you find in call centres (used for automation etc.), this means it is not compatible with all audio input devices.

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

On contrary System.Speech.Recognition is for Desktop apps and it fully supports default recording devices installed on Windows.

这篇关于Microsoft语音识别setInputToDefaultAudioDevice引发异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆