Exemplo n.º 1
0
        public double[] doMFCC(float[] framedSignal)
        {
            // Magnitude Spectrum
            bin          = MagnitudeSpectrum(framedSignal);
            framedSignal = PreEmphasis(framedSignal);

            // cbin=frequencies of the channels in terms of FFT bin indices (cbin[i]
            // for the i -th channel)

            // prepare filter for for melFilter
            int[] cbin = FftBinIndices();             // same for all

            // process Mel Filterbank
            double[] fbank = MelFilter(bin, cbin);

            // magnitudeSpectrum and bin filter indices

            // Console.Out.WriteLine("after mel filter");
            // ArrayWriter.printDoubleArrayToConole(fbank);

            // Non-linear transformation
            double[] f = NonLinearTransformation(fbank);

            // Console.Out.WriteLine("after N L T");
            // ArrayWriter.printDoubleArrayToConole(f);

            // Cepstral coefficients, by DCT
            double[] cepc = dct.PerformDCT(f);

            // Console.Out.WriteLine("after DCT");
            // ArrayWriter.printDoubleArrayToConole(cepc);
            return(cepc);
        }