如何让您的语音识别听取您的意见

-4 c# speech-recognition

嗨,我正在使用Michael C的语音识别程序完成我的本科毕业论文.我创建了一个命令行,其中BRIAN(Synthesizer的名称)将停止使用以下代码行进行侦听:

case "Stop listening":
                BRIAN.SpeakAsync("Alright");
                _recognizer.RecognizeAsyncStop();
                _recognizer.UnloadAllGrammars();
                break;
Run Code Online (Sandbox Code Playgroud)

这行代码有效.但是,当我说命令"开始听"时,我不能再让他回应我的命令了.我需要创建一个case语句,在其中他可以再次开始听我的命令.

Dar*_*Bee 5

解决方案非常简单.不要强迫你的程序停止听.请改用bool:

case "Stop listening":
    bAbleToListen = false; //stop listening
    break;
Run Code Online (Sandbox Code Playgroud)

然后在你的事件处理程序中你可以做到:

void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
  string speech = e.Result.Text;

  if (speech == "Start listening") {
      bAbleToListen = true; //resume listening
      BRIAN.SpeakAsync("I am online and ready");
  }
  if (!bAbleToListen) return;

  switch(...) {
     //your code
  }
}
Run Code Online (Sandbox Code Playgroud)