/** * @return The list of feature vectors from the fileStream used by * audioSource */ private List <float[]> GetFeatures() { List <float[]> ret = new List <float[]>(); try { int featureLength = -1; IData feature = _frontEnd.GetData(); while (!(feature is DataEndSignal)) { if (feature is DoubleData) { double[] featureData = ((DoubleData)feature).Values; if (featureLength < 0) { featureLength = featureData.Length; } float[] convertedData = new float[featureData.Length]; for (int i = 0; i < featureData.Length; i++) { convertedData[i] = (float)featureData[i]; } ret.Add(convertedData); } else if (feature is FloatData) { float[] featureData = ((FloatData)feature).Values; if (featureLength < 0) { featureLength = featureData.Length; } ret.Add(featureData); } feature = _frontEnd.GetData(); } } catch (Exception e) { e.PrintStackTrace(); } return(ret); }
public bool Bandwidth(String file) { _source.SetAudioFile(file, ""); IData data; var energy = new double[Bands]; while ((data = _frontend.GetData()) != null) { if (data is DoubleData) { double maxIntensity = LowIntensity; double[] frame = ((DoubleData)data).Values; for (int i = 0; i < Bands; i++) { maxIntensity = Math.Max(maxIntensity, frame[i]); } if (maxIntensity <= LowIntensity) { continue; } for (int i = 0; i < Bands; i++) { energy[i] = Math.Max(frame[i] / maxIntensity, energy[i]); } } } double maxLow = Max(energy, LowRangeStart, LowRangeEnd); double maxHi = Max(energy, HighRangeStart, HighRangeEnd); // System.out.format("%f %f\n", maxHi, maxLow); // for (int i = 0; i < bands; i++) // System.out.format("%.4f ", energy[i]); // System.out.println(); if (maxHi < NoSignalLevel && maxLow > SignalLevel) { return(true); } return(false); }