嗨,我正在使用Michael C的语音识别程序完成我的本科毕业论文.我创建了一个命令行,其中BRIAN(Synthesizer的名称)将停止使用以下代码行进行侦听:
case "Stop listening":
BRIAN.SpeakAsync("Alright");
_recognizer.RecognizeAsyncStop();
_recognizer.UnloadAllGrammars();
break;
Run Code Online (Sandbox Code Playgroud)
这行代码有效.但是,当我说命令"开始听"时,我不能再让他回应我的命令了.我需要创建一个case语句,在其中他可以再次开始听我的命令.
解决方案非常简单.不要强迫你的程序停止听.请改用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)
归档时间: |
|
查看次数: |
1535 次 |
最近记录: |