コード例 #1
0
  public float[] getFeatures(IWindowData windowData) {
    float[] data = windowData.getData(0);
    float mean = mean(data);
    float stdev = stDev(mean, data);

    float[] fftMag = getFFTMag(data);
    float meanFftMag = mean(fftMag);
    float stDevFftMag = stDev(meanFftMag, fftMag);

    // prev state
    float notMoving = 0, cruise = 0, accelerating = 0, breaking = 0;
    int prevState = (int) (windowData.getData(1)[0]);
    if (prevState == SvmRecognizerIntentService.NOT_MOVING) {
      notMoving = 1;
    } else if (prevState == SvmRecognizerIntentService.CRUISE) {
      cruise = 1;
    } else if (prevState == SvmRecognizerIntentService.ACCELERATING) {
      accelerating = 1;
    } else if (prevState == SvmRecognizerIntentService.BREAKING) {
      breaking = 1;
    }

    return new float[] {
      mean, stdev, meanFftMag, stDevFftMag,
      notMoving, cruise, accelerating, breaking
    };
  }