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 }; }