class_docstr: MFCC class.
  
  Parameters
  ----------
  spectrogram : :class:`.audio.spectrogram.Spectrogram` instance
      Spectrogram.
  transform : numpy ufunc, optional
      Transformation applied to the `spectrogram`.
  filterbank : :class:`.audio.filters.Filterbank` type or instance, optional
      Filterbank used to filter the `spectrogram`; if a
      :class:`.audio.filters.Filterbank` type (i.e. class) is given
      (rather than an instance), one will be created with the given type
      and following parameters:
  num_bands : int, optional
      Number of filter bands (per octave, depending on the type of the
      filterbank).
  fmin : float, optional
      The minimum frequency of the filterbank [Hz].
  fmax : float, optional
      The maximum frequency of the filterbank [Hz].
  norm_filters : bool, optional
      Normalize the filters to area 1.
  mul : float, optional
      Multiply the magnitude spectrogram with this factor before taking the
      logarithm.
  add : float, optional
      Add this value before taking the logarithm of the magnitudes.
  kwargs : dict
      If no :class:`.audio.spectrogram.Spectrogram` instance was given, one
      is instantiated and these keyword arguments are passed.
  
  Notes
  -----
  
  If a filtered or scaled Spectrogram is given, a new unfiltered and unscaled
  Spectrogram will be computed and then the given filter and scaling will be
  applied accordingly.
  
  From https://en.wikipedia.org/wiki/Mel-frequency_cepstrum:
  
  MFCCs are commonly derived as follows:
  
  1) Take the Fourier transform of (a windowed excerpt of) a signal.
  2) Map the powers of the spectrum obtained above onto the mel scale,
     using triangular overlapping windows.
  3) Take the logs of the powers at each of the mel frequencies.
  4) Take the discrete cosine transform of the list of mel log powers,
     as if it were a signal.
  5) The MFCCs are the amplitudes of the resulting spectrum
class_docstr_tok: ["MFCC","class",".","Parameters","--","--","--","--","--","spectrogram",":",":","class",":","`",".audio.spectrogram.Spectrogram","`","instance","Spectrogram",".","transform",":","numpy","ufunc",",","optional","Transformation","applied","to","the","`","spectrogram","`",".","filterbank",":",":","class",":","`",".audio.filters.Filterbank","`","type","or","instance",",","optional","Filterbank","used","to","filter","the","`","spectrogram","`",";","if","a",":","class",":","`",".audio.filters.Filterbank","`","type","(","i.e",".","class",")","is","given","(","rather","than","an","instance",")",",","one","will","be","created","with","the","given","type","and","following","parameters",":","num_bands",":","int",",","optional","Number","of","filter","bands","(","per","octave",",","depending","on","the","type","of","the","filterbank",")",".","fmin",":","float",",","optional","The","minimum","frequency","of","the","filterbank","[","Hz","]",".","fmax",":","float",",","optional","The","maximum","frequency","of","the","filterbank","[","Hz","]",".","norm_filters",":","bool",",","optional","Normalize","the","filters","to","area","1.","mul",":","float",",","optional","Multiply","the","magnitude","spectrogram","with","this","factor","before","taking","the","logarithm",".","add",":","float",",","optional","Add","this","value","before","taking","the","logarithm","of","the","magnitudes",".","kwargs",":","dict","If","no",":","class",":","`",".audio.spectrogram.Spectrogram","`","instance","was","given",",","one","is","instantiated","and","these","keyword","arguments","are","passed",".","Notes","--","--","-","If","a","filtered","or","scaled","Spectrogram","is","given",",","a","new","unfiltered","and","unscaled","Spectrogram","will","be","computed","and","then","the","given","filter","and","scaling","will","be","applied","accordingly",".","From","https",":","\/\/en.wikipedia.org\/wiki\/Mel-frequency_cepstrum",":","MFCCs","are","commonly","derived","as","follows",":","1",")","Take","the","Fourier","transform","of","(","a","windowed","excerpt","of",")","a","signal",".","2",")","Map","the","powers","of","the","spectrum","obtained","above","onto","the","mel","scale",",","using","triangular","overlapping","windows",".","3",")","Take","the","logs","of","the","powers","at","each","of","the","mel","frequencies",".","4",")","Take","the","discrete","cosine","transform","of","the","list","of","mel","log","powers",",","as","if","it","were","a","signal",".","5",")","The","MFCCs","are","the","amplitudes","of","the","resulting","spectrum"]
code: def __array_finalize__(self, obj):
      if obj is None:
          return
      # set default values here, also needed for views
      self.filterbank = getattr(obj, "filterbank", None)
      self.mul = getattr(obj, "mul", MFCC_MUL)
      self.add = getattr(obj, "add", MFCC_ADD)
      super(MFCC, self).__array_finalize__(obj)
  
imports: from __future__ import absolute_import, division, print_function
  import numpy
  from scipy.fftpack import dct
  from .filters import MelFilterbank
  from .spectrogram import Spectrogram
  from ..processors import Processor
label_desc: Use image node_id 3 for calling the MFCC obj's underlying member method code with example usage: obj.__array_finalize__(obj) without return types