GithubHelp home page GithubHelp logo

Comments (2)

ar1st0crat avatar ar1st0crat commented on July 18, 2024

Hi!
I guess you should check first this wiki. You'll find a paragraph related to librosa here.

Still, there are couple of important nuances in librosa:

  1. htk = true or false
    This parameter essentially defines the weights of mel-filterbank (HTK-style or Slaney-style).
  2. centering
    In NWaves, like in many other frameworks, frames are not centered the way they are in librosa (in fact, I don't quite understand its purpose...), so this parameter must be set to False.

Let's just consider an example:

int sr = 22050;                  // sampling rate
int fftSize = 1024;
double lowFreq = 100;     // if not specified, will be 0
double highFreq = 8000; // if not specified, will be samplingRate / 2
int filterbankSize = 40;     // or 24 for htk=true (usually)

// if 'htk' parameter in librosa will be set to False:
var melBank1 = FilterBanks.MelBankSlaney(filterbankSize, fftSize, sr, lowFreq, highFreq);

// if 'htk' parameter in librosa will be set to True:
var melBands = FilterBanks.MelBands(filterbankSize, sr, lowFreq, highFreq);
var melBank2 = FilterBanks.Triangular(fftSize, sr, melBands, null, Scale.HerzToMel);

var opts = new MfccOptions
{
    SamplingRate = sr,
    FrameDuration = (double)fftSize / sr,
    HopDuration = 0.010,
    FeatureCount = 12,
    Filterbank = melBank1,  // or MelBank2
    NonLinearity = NonLinearityType.ToDecibel, // mandatory
    Window = WindowTypes.Hamming,     // in librosa 'hann' is by default
    LogFloor = 1e-10f,  // mandatory
    DctType="2N",
    LifterSize = 0
};
var e = new MfccExtractor(opts);

In librosa:

mfccs = librosa.feature.mfcc(y, sr, n_mfcc=13,
dct_type=2, norm='ortho', window='hamming',
htk=False, n_mels=40, fmin=100, fmax=8000,
n_fft=1024, hop_length=int(0.010*sr), center=False)

Actually there are even more options. Feel free to ask, if you have any questions.

from nwaves.

jodusan avatar jodusan commented on July 18, 2024

@ar1st0crat Thank you for the detailed response!

from nwaves.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.