C#语音识别命令确认

本文关键字:确认 命令 语音识别 | 更新日期: 2023-09-27 18:25:29

所以我让应用程序识别了我说的话。但是,当我命令应用程序执行任务时,如何让它确认请求?

截至目前,我有这个代码:

public partial class Form1 : Form
    {
        SpeechSynthesizer synth = new SpeechSynthesizer();
        SpeechRecognitionEngine sRecognize= new SpeechRecognitionEngine();
public Form1()
        {
            InitializeComponent();
        }
private void button1_Click(object sender, EventArgs e)
        {
              Choices sList = new Choices();
              sList.Add(new String[] { "Exit"});
              Grammar gr = new Grammar(new GrammarBuilder(sList));
              sRecognize.RequestRecognizerUpdate();
              sRecognize.LoadGrammar(gr);
              sRecognize.SpeechRecognized += sRecognize_SpeechRecognized;
              sRecognize.SetInputToDefaultAudioDevice();
              sRecognize.RecognizeAsync(RecognizeMode.Multiple);
              sRecognize.SpeechRecognitionRejected += sRecognize_SpeechRecognitionRejected;
}
private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
      if (e.Result.Text == "Exit")
      {
              Application.Exit();
      }
  }
}

因此,我的问题作为一个例子:

我说,"退出"

申请确认人:

您确定要退出吗

根据我的回答,应用程序会做出响应。

确认,取消请求。我需要做什么改变?

C#语音识别命令确认

类似的东西?

private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
  if (e.Result.Text == "Exit")
  {
           Choices sList = new Choices();
          sList.Add(new String[] { "Yes"});
          Grammar gr = new Grammar(new GrammarBuilder(sList));
          sRecognize.RequestRecognizerUpdate();
          sRecognize.LoadGrammar(gr);
          sRecognize.SpeechRecognized += delegate(object sender,     SpeechRecognizedEventArgs e)   
                  {   
                       Application.Exit();
                  };
          sRecognize.SetInputToDefaultAudioDevice();
          sRecognize.RecognizeAsync(RecognizeMode.Multiple);
  }

}