您好我正在使用Michael C的语音识别程序完成本科毕业论文。我创建了一个命令行,其中BRIAN(Synthesizer的名称)将使用以下代码行停止监听:
case "Stop listening":
BRIAN.SpeakAsync("Alright");
_recognizer.RecognizeAsyncStop();
_recognizer.UnloadAllGrammars();
break;
这行代码有效。然而,当我说命令"开始倾听"我不能再让他回应我的命令了。我需要创建一个case语句,然后他可以再次开始听我的命令。
答案 0 :(得分:5)
解决方案非常简单。不要强迫你的程序停止听。请改用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
}
}