我目前正在开发适用于Android的CMU pocketpshinx,并希望将菜单窗口与其他窗口分离为活动。我对编码很新,并且遇到了困难。我认为我的代码是正确的,我只是不知道在哪里放置它。任何帮助都会很棒!
这是我的新活动代码(我不确定将它放在PocketSphinxActivity Java文件中的位置):
Intent i = new Intent("edu.cmu.pocketsphinx.demo.BloodPressure");
startActivity(i)
Intent j = new Intent("edu.cmu.pocketsphinx.demo.HeartRate");
startActivity(j)
Intent k = new Intent("edu.cmu.pocketsphinx.demo.PatientInfo");
startActivity(k)
答案 0 :(得分:0)
您必须将代码放在onPartialResult()
方法中。对于针对不同语音命令执行的不同操作,您可以根据需要在代码中使用if-else
或switch
。
我假设您提供的用于启动不同新活动的代码是正常的,BloodPressure
类将用于监听命令"血压",HeartRate
类将运行听取命令"心率"并且PatientInfo
类将用于监听命令"患者信息"。我还假设您已经在语法文件和识别系统中进行了正确的配置,以识别部件"血压","心率"和"患者信息"。
然后您的代码可能会使用if-else
:
public void onPartialResult(Hypothesis arg0) {
if(arg0 == null){ return; }
String command = arg0.getHypstr();
if(command.equals("blood pressure")) {
recognizer.stop();
Intent i = new Intent("edu.cmu.pocketsphinx.demo.BloodPressure");
startActivity(i);
}
else if(command.equals("heart rate")) {
recognizer.stop();
Intent j = new Intent("edu.cmu.pocketsphinx.demo.HeartRate");
startActivity(j);
}
else if(command.equals("patient info")) {
recognizer.stop();
Intent k = new Intent("edu.cmu.pocketsphinx.demo.PatientInfo");
startActivity(k);
}
}
希望这有帮助