【问题标题】:How to seperate CMU pocketsphinx android demo into activities如何将 CMU pocketsphinx android demo 分离到活动中
【发布时间】:2016-09-14 03:21:26
【问题描述】:

我目前正在开发适用于 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)

【问题讨论】:

  • 添加你已经尝试过的代码,它可以帮助其他人更好地理解和解决你的问题
  • 我已经编辑了我的帖子以添加代码。如果您有原始的 Pocketsphinx android 演示代码,我已将“电话”、“预测”等更改为医学术语“血压”、“心率”等
  • 1) 您只能启动一个 Activity。 2)当你想启动这些时,将此代码放在其他一些活动中
  • 我想从一个活动开始三个不同的活动。每个活动都由不同的语音命令打开。

标签: android speech-recognition pocketsphinx


【解决方案1】:

您必须将代码放在onPartialResult() 方法中。对于不同的语音命令执行不同的操作,您可以在代码中根据您的需要使用if-elseswitch

我假设您提供的用于启动不同新活动的代码没有问题,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);
        }
}    

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多