C# 以编程方式关闭windows语音识别的自动功能?

C# 以编程方式关闭windows语音识别的自动功能?,c#,.net,speech-recognition,C#,.net,Speech Recognition,我正在制作一个使用system.speech名称空间的程序(这是一个可以启动电影的简单程序)。我从文件夹中加载所有文件名,并将它们添加到我想要使用的语法中。它工作得非常好,但是有一个问题:我根本不希望windows语音识别与windows交互(即,当我说开始时,我不希望开始菜单打开……我不希望发生任何事情) 同样,我现在有一个列表框,列出了目录中找到的所有电影。当我说出要打开的节目/电影时,程序没有识别出所说的名称,因为windows语音识别正在从列表中选择listboxitem,而不是将其传递

我正在制作一个使用system.speech名称空间的程序(这是一个可以启动电影的简单程序)。我从文件夹中加载所有文件名,并将它们添加到我想要使用的语法中。它工作得非常好,但是有一个问题:我根本不希望windows语音识别与windows交互(即,当我说开始时,我不希望开始菜单打开……我不希望发生任何事情)

同样,我现在有一个列表框,列出了目录中找到的所有电影。当我说出要打开的节目/电影时,程序没有识别出所说的名称,因为windows语音识别正在从列表中选择listboxitem,而不是将其传递给我的程序

这种识别在其他情况下起作用,因为我的语法中有“停止”、“播放”、“倒带”等词,当我捕捉到被识别的听众时,它将正确地知道我正在说的单词/短语(目前只需在文本框中键入)

你知道我可以如何做到这一点吗?

我会使用这个类而不是SpeechRecognizer类。这将创建一个与Windows语音识别完全断开连接的语音识别器。

private bool Status=false;
private bool Status = false;

SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
Choices dic = new Choices(new String[] {
            "word1",
            "word2",
            });



public Form1()
{
    InitializeComponent();

    Grammar gmr = new Grammar(new GrammarBuilder(dic));
    gmr.Name = "myGMR";
    // My Dic

    sre.LoadGrammar(gmr);
  sre.SpeechRecognized += 
  new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
    sre.SetInputToDefaultAudioDevice();
    sre.RecognizeAsync(RecognizeMode.Multiple);
} 

private void button1_Click(object sender, EventArgs e)
{
    if (Status)
    {
        button1.Text = "START";
        Status = false;
        stslable.Text = "Stopped";
    }
    else {

        button1.Text = "STOP";
        Status = true;
        stslable.Text = "Started";
    }
}

public void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs ev)
{
   String theText = ev.Result.Text;
  MessageBox.Show(theText);
}
SpeechRecognitionEngine sre=新建SpeechRecognitionEngine(); 选项dic=新选项(新字符串[]){ “字1”, “字2”, }); 公共表格1() { 初始化组件(); 语法gmr=新语法(新语法生成器(dic)); gmr.Name=“myGMR”; //我的Dic 高级语法(gmr); sre.speechrecogned+= 新事件处理程序(sre_SpeechReceigned); sre.setInputOdeFaultAudioDevice(); sre.RecognizeAsync(RecognizeMode.Multiple); } 私有无效按钮1\u单击(对象发送者,事件参数e) { 如果(状态) { 按钮1.Text=“开始”; 状态=假; stslable.Text=“已停止”; } 否则{ 按钮1.Text=“停止”; 状态=真; stslable.Text=“已启动”; } } public void sre_SpeechRecognized(对象发送方,SpeechRecognizedEventArgs ev) { 字符串theText=ev.Result.Text; MessageBox.Show(文本); }