public static List<DoubleData> createDataInput(int numSamples, int blockSize, int sampleRate, int offSet) { List<DoubleData> datas = new ArrayList<DoubleData>(); double counter = 1; for (int i = 0; i < numSamples / blockSize; i++) { double[] values = new double[blockSize]; datas.add(new DoubleData(values, sampleRate, (long) counter + offSet)); for (int j = 0; j < values.length; j++) values[j] = counter++ + offSet; } return datas; }
outputQueue.add(new DoubleData (myWindow, sampleRate, currentFirstSampleNumber));
/** * Process data, adding dither * * @param input a frame * @return processed frame * @throws IllegalArgumentException */ private DoubleData process(Data input) throws IllegalArgumentException { DoubleData output; assert input instanceof DoubleData; double[] inFeatures; DoubleData doubleData = (DoubleData) input; inFeatures = doubleData.getValues(); double[] outFeatures = new double[inFeatures.length]; for (int i = 0; i < inFeatures.length; ++i) { outFeatures[i] = r.nextFloat() * 2 * ditherMax - ditherMax + inFeatures[i]; outFeatures[i] = max(min(outFeatures[i], maxValue), minValue); } output = new DoubleData(outFeatures, doubleData.getSampleRate(), doubleData.getFirstSampleNumber()); return output; } }
return new DoubleData(newSampleBlock, sampleRate, firstSample);
public static List<DoubleData> createFeatVectors(double lengthSec, int sampleRate, long startSample, int featDim, double shiftMs) { int numFrames = (int) Math.ceil((lengthSec * 1000) / shiftMs); List<DoubleData> datas = new ArrayList<DoubleData>(numFrames); long curStartSample = startSample; long shiftSamples = ms2samples((int) shiftMs, sampleRate); for (int i = 0; i < numFrames; i++) { double[] values = createRandFeatureVector(featDim, null, null); datas.add(new DoubleData(values, sampleRate, curStartSample)); curStartSample += shiftSamples; } return datas; }
/** * Converts DoubleData object to FloatDatas. * @param data data to convert * @return converted data */ public static DoubleData FloatData2DoubleData(FloatData data) { int numSamples = data.getValues().length; double[] doubleData = new double[numSamples]; float[] values = data.getValues(); for (int i = 0; i < values.length; i++) { doubleData[i] = values[i]; } return new DoubleData(doubleData, data.getSampleRate(), data.getFirstSampleNumber()); }
/** * Process data, creating the mel cepstrum from an input spectrum frame. * * @param input a MelSpectrum frame * @return a mel Cepstrum frame * @throws IllegalArgumentException */ private DoubleData process(DoubleData input) throws IllegalArgumentException { double[] melspectrum = input.getValues(); if (melcosine == null) { numberMelFilters = melspectrum.length; computeMelCosine(); } else if (melspectrum.length != numberMelFilters) { throw new IllegalArgumentException ("MelSpectrum size is incorrect: melspectrum.length == " + melspectrum.length + ", numberMelFilters == " + numberMelFilters); } // first compute the log of the spectrum for (int i = 0; i < melspectrum.length; ++i) { melspectrum[i] = Math.log(melspectrum[i] + LOG_FLOOR); } double[] cepstrum; // create the cepstrum by apply the melcosine filter cepstrum = applyMelCosine(melspectrum); return new DoubleData(cepstrum, input.getSampleRate(), input.getFirstSampleNumber()); }
return new DoubleData(doubleData, sampleRate, firstSample);
/** * Process data, creating the power spectrum from an input audio frame. * * @param input input power spectrum * @return power spectrum * @throws java.lang.IllegalArgumentException */ private DoubleData process(DoubleData input) throws IllegalArgumentException { double[] in = input.getValues(); int windowLength = (in.length - 1) << 1; if (filters == null || sampleRate != input.getSampleRate()) { sampleRate = input.getSampleRate(); buildFilterbank(windowLength, numberFilters, minFreq, maxFreq); } else if (in.length != ((windowLength >> 1) + 1)) { throw new IllegalArgumentException("Window size is incorrect: in.length == " + in.length + ", numberFftPoints == " + ((windowLength >> 1) + 1)); } double[] output = new double[numberFilters]; for (int i = 0; i < numberFilters; i++) output[i] = filters[i].apply(in); DoubleData outputMelSpectrum = new DoubleData(output, sampleRate, input.getFirstSampleNumber()); return outputMelSpectrum; }
@Override public Data getData() throws DataProcessingException { Data d = getPredecessor().getData(); if (d instanceof DoubleData && convMode.equals(CONVERT_D2F)) { DoubleData dd = (DoubleData) d; d = new FloatData(MatrixUtils.double2float(dd.getValues()), dd.getSampleRate(), dd.getFirstSampleNumber()); } else if (d instanceof FloatData && convMode.equals(CONVERT_F2D)) { FloatData fd = (FloatData) d; d = new DoubleData(MatrixUtils.float2double(fd.getValues()), fd.getSampleRate(), fd.getFirstSampleNumber()); } return d; } }
output[i] = filter[i].filterOutput(in); DoubleData outputMelSpectrum = new DoubleData(output, sampleRate, input.getFirstSampleNumber()); return outputMelSpectrum;
return (new DoubleData (samples, (int) audioStream.getFormat().getSampleRate(), firstSampleNumber));
@Test public void testInsertAtBlockEnd() { RandomSampleRepeater rsr = ConfigurationManager.getInstance(RandomSampleRepeater.class); rsr.randStreamStart = true; rsr.useRandSeed = false; rsr.initialize(); rsr.maxRepeatedSamples = 3; rsr.numInsertedSamples = 20; rsr.nextInsertionPoint = 9; // create a dummy DoubleData double[] data = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; DoubleData dd = new DoubleData(data, 16000, 0); DoubleData extData = rsr.process(dd); double[] expectedData = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 10}; Assert.assertEquals(extData.getFirstSampleNumber(), 20, 0); Assert.assertEquals(extData.getValues().length, expectedData.length); for (int i = 0; i < expectedData.length; i++) { Assert.assertEquals(extData.getValues()[i], expectedData[i], 0); } }
@Test public void testInsertAt4() { RandomSampleRepeater rsr = ConfigurationManager.getInstance(RandomSampleRepeater.class); rsr.randStreamStart = true; rsr.useRandSeed = false; rsr.initialize(); rsr.maxRepeatedSamples = 3; rsr.numInsertedSamples = 20; rsr.nextInsertionPoint = 5; // create a dummy DoubleData double[] data = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; DoubleData dd = new DoubleData(data, 16000, 0); DoubleData extData = rsr.process(dd); double[] expectedData = new double[]{1, 2, 3, 4, 5, 1, 2, 6, 7, 8, 9, 10}; Assert.assertEquals(extData.getFirstSampleNumber(), 20, 0); Assert.assertEquals(extData.getValues().length, expectedData.length); for (int i = 0; i < expectedData.length; i++) { Assert.assertEquals(extData.getValues()[i], expectedData[i], 0); } }
@Test public void testInsertAtZero() { RandomSampleRepeater rsr = ConfigurationManager.getInstance(RandomSampleRepeater.class); rsr.randStreamStart = true; rsr.useRandSeed = false; rsr.initialize(); rsr.maxRepeatedSamples = 5; rsr.numInsertedSamples = 20; rsr.nextInsertionPoint = 5; // create a dummy DoubleData double[] data = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; DoubleData dd = new DoubleData(data, 16000, 0); DoubleData extData = rsr.process(dd); double[] expectedData = new double[]{1, 2, 3, 4, 5, 1, 2, 6, 7, 8, 9, 10}; Assert.assertEquals(extData.getFirstSampleNumber(), 20, 0); Assert.assertEquals(extData.getValues().length, expectedData.length); for (int i = 0; i < expectedData.length; i++) { Assert.assertEquals(extData.getValues()[i], expectedData[i], 0); } }
/** * Process data, creating the PLP cepstrum from an input audio frame. * * @param input a PLP Spectrum frame * @return a PLP Data frame * @throws IllegalArgumentException */ private Data process(DoubleData input) throws IllegalArgumentException { double[] plpspectrum = input.getValues(); if (plpspectrum.length != numberPLPFilters) { throw new IllegalArgumentException ("PLPSpectrum size is incorrect: plpspectrum.length == " + plpspectrum.length + ", numberPLPFilters == " + numberPLPFilters); } // power law compress spectrum double[] compressedspectrum = powerLawCompress(plpspectrum); // compute autocorrelation values double[] autocor = applyCosine(compressedspectrum); LinearPredictor LPC = new LinearPredictor(LPCOrder); // Compute LPC Parameters LPC.getARFilter(autocor); // Compute LPC Cepstra double[] cepstrumDouble = LPC.getData(cepstrumSize); DoubleData cepstrum = new DoubleData (cepstrumDouble, input.getSampleRate(), input.getFirstSampleNumber()); return cepstrum; }
DoubleData output = new DoubleData (outputPLPSpectralArray, input.getSampleRate(), input.getFirstSampleNumber());
DoubleData extendedData = new DoubleData(extFeatures, doubleData.getSampleRate(), firstSampleNumber);
DoubleData output = new DoubleData (outputSpectrum, input.getSampleRate(), input.getFirstSampleNumber());
DoubleData doubleLastFeature = (DoubleData) lastFeature; feature = new DoubleData (doubleLastFeature.getValues(), doubleLastFeature.getSampleRate(),