C# 如何设置语音识别器的启动和停止

C# 如何设置语音识别器的启动和停止,c#,speech-recognition,C#,Speech Recognition,我正在尝试制作一个语音识别器应用程序。。使用C#。我已经创建了基本的应用程序,它运行良好 现在我的问题是 如何使用按钮控件启动和停止语音识别器 我正在使用SpeechRecognitionEngineClass 这是我的密码 private bool Status = false; SpeechRecognitionEngine sre = new SpeechRecognitionEngine(); Choices dic = new Choices(new String[]

我正在尝试制作一个语音识别器应用程序。。使用C#。我已经创建了基本的应用程序,它运行良好

现在我的问题是

如何使用按钮控件启动和停止语音识别器

我正在使用
SpeechRecognitionEngine
Class

这是我的密码

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);
    }
private bool Status=false;
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(文本);
}

您可以通过设置此空值来取消订阅和处置此对象,并在需要时重新创建和重新订阅。或者您只能取消订阅,它不会引发任何事件