C# 如何让您的语音识别系统倾听您的声音

C# 如何让您的语音识别系统倾听您的声音,c#,speech-recognition,C#,Speech Recognition,嗨,我正在用迈克尔C的语音识别程序做我的本科论文。我已经创建了一个命令行,在该命令行中,合成器的名称将使用以下代码行停止侦听: case "Stop listening": BRIAN.SpeakAsync("Alright"); _recognizer.RecognizeAsyncStop(); _recognizer.UnloadAllGrammars(); bre

嗨,我正在用迈克尔C的语音识别程序做我的本科论文。我已经创建了一个命令行,在该命令行中,合成器的名称将使用以下代码行停止侦听:

case "Stop listening":
                BRIAN.SpeakAsync("Alright");
                _recognizer.RecognizeAsyncStop();
                _recognizer.UnloadAllGrammars();
                break;

这行代码有效。然而,当我说命令开始监听时,我不能再让他响应我的命令了。我需要创建一个case语句,让他可以再次开始听我的命令。

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

case "Stop listening":
    bAbleToListen = false; //stop listening
    break;
然后在事件处理程序中,您可以执行以下操作:

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
  }
}

看起来你还没有读过这篇好文章:我觉得有一点有趣,一个程序完全按照你的要求去做,却被认为是一个错误。尽管如此,这篇论文听起来很有趣:我的回答很完美,很小,不过在你的第二个片段中,你有一个“开始倾听”,应该使用它,这是正确的,经过调整。还是在PHP模式下工作!谢谢你,非常感谢你的帮助@当我启动程序时,是否可以将其设置为不收听模式@黑眼睛只是初始化布赖恩并在初始化后将bAbleToListen设置为false