private void initialise( int samplingRate, int LPOrder, double[] pscalesIn, double[] tscalesIn, double[] escalesIn, double[] vscalesIn) { if (pscalesIn != null) { pscales = new double[pscalesIn.length]; System.arraycopy(pscalesIn, 0, pscales, 0, pscalesIn.length); } if (tscalesIn != null) { tscales = new double[tscalesIn.length]; System.arraycopy(tscalesIn, 0, tscales, 0, tscalesIn.length); } if (escalesIn != null) { escales = new double[escalesIn.length]; System.arraycopy(escalesIn, 0, escales, 0, escalesIn.length); } if (vscalesIn != null) { vscales = new double[vscalesIn.length]; System.arraycopy(vscalesIn, 0, vscales, 0, vscalesIn.length); } fs = samplingRate; lpOrder = SignalProcUtils.getLPOrder(fs); }
public DoubleDataSource process(DoubleDataSource inputAudio) { amount = MathUtils.CheckLimits(amount, MIN_AMOUNT, MAX_AMOUNT); double[] vscales = {amount}; int frameLength = SignalProcUtils.getDFTSize(fs); int predictionOrder = SignalProcUtils.getLPOrder(fs); VocalTractScalingProcessor p = new VocalTractScalingProcessor(predictionOrder, fs, frameLength, vscales); FrameOverlapAddSource foas = new FrameOverlapAddSource(inputAudio, Window.HANNING, true, frameLength, fs, p); return new BufferedDoubleDataSource(foas); }