[Clam-devel] MFCC Loops

paul simmons pauls631 at gmail.com
Mon Sep 7 07:54:12 PDT 2009


Hi,
I am trying to do MFCC extraction. As far as I get; the steps are

Read an "Audio"
Run "SpectralAnalysis" on output of "Audio"
Run "MelFilterBank" on output of "SpectralAnalysis"
Run "CepstralTransform" on output of "MelFilterBank"

right?

If so; I cannot understand where to do looping, for example if I do:

    while(mReader.Do(audio))
    {
        spectralAnalysis.Do(audio, spectrum);
        melFilterBank.Do(spectrum, melSpectrum);
        cepstralTransform.Do(melSpectrum, melCepstrum);

        CLAM::XMLStorage::Dump(audio,"Audio",a);
        CLAM::XMLStorage::Dump(spectrum, "Spectrum",s);
        CLAM::XMLStorage::Dump(melSpectrum, "MelSpectrum",m);
        CLAM::XMLStorage::Dump(melCepstrum, "MelCepstrum",n);
    }

it applies mfcc to each read audio patch (mentioned by Audio.SetSize)
and got one MFCC feature vector. But I cannot understand how
WindowSize or HopSize is applied in this fashion. Because since Audio
is read in non-overlapping windows with mReader.Do(), overlapped
windows are run only for current audio part

I think there must be another , more correct way to get overlapping
windows continuesly in whole audio, but cannot find it. Any ideas?

Thanks...




More information about the clam-devel mailing list