00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 package com.meapsoft.disgraced;
00024
00025 import com.meapsoft.STFT;
00026 import com.meapsoft.featextractors.FeatureExtractor;
00027
00036 public class GeometricAvgSpec extends FeatureExtractor
00037 {
00038
00039 public double[] features(STFT stft, long startFrame, int length)
00040 {
00041
00042 double[] avgSpec= new double[stft.getRows()];
00043 double[] curFrame;
00044 double sum = 0;
00045
00046 for(int band=0; band<avgSpec.length; band++)
00047 avgSpec[band] = 0;
00048
00049 for(int frame=0; frame<length; frame++)
00050 {
00051 curFrame = stft.getFrame(startFrame+frame);
00052 for(int band=0; band<avgSpec.length; band++)
00053 {
00054 double tmp = curFrame[band] / length;
00055 avgSpec[band] += tmp;
00056 sum += tmp;
00057 }
00058 }
00059
00060 for(int band=0; band<avgSpec.length; band++)
00061 avgSpec[band] = avgSpec[band] / sum;
00062
00063 return avgSpec;
00064 }
00065
00066 public String description()
00067 {
00068 return "I am a generic FeatureExtractor";
00069 }
00070 }