(signal,
          samplerate=16000,
          winlen=0.025,
          winstep=0.01,
          nfilt=26,
          nfft=512,
          lowfreq=0,
          highfreq=None,
          preemph=0.97,
          winfunc=lambda x: numpy.ones((x,)))
return feat, energy
Compute Mel-filterbank energy features from an audio signal.

    :param signal: the audio signal from which to compute features. Should be an N*1 array
    :param samplerate: the samplerate of the signal we are working with.
    :param winlen: the length of the analysis window in seconds. Default is 0.025s (25 milliseconds)
    :param winstep: the step between successive windows in seconds. Default is 0.01s (10 milliseconds)
    :param nfilt: the number of filters in the filterbank, default 26.
    :param nfft: the FFT size. Default is 512.
    :param lowfreq: lowest band edge of mel filters. In Hz, default is 0.
    :param highfreq: highest band edge of mel filters. In Hz, default is samplerate/2
    :param preemph: apply preemphasis filter with preemph as coefficient. 0 is no filter. Default is 0.97.
    :param winfunc: the analysis window to apply to each frame. By default no window is applied. You can use numpy window functions here e.g. winfunc=numpy.hamming
    :returns: 2 values. The first is a numpy array of size (NUMFRAMES by nfilt) containing features. Each row holds 1 feature vector. The
        second return value is the energy in each frame (total energy, unwindowed)
Compute Mel-filterbank energy features from an audio signal.
Compute Mel - filterbank energy features from an audio signal .
def fbank(signal,
          samplerate=16000,
          winlen=0.025,
          winstep=0.01,
          nfilt=26,
          nfft=512,
          lowfreq=0,
          highfreq=None,
          preemph=0.97,
          winfunc=lambda x: numpy.ones((x,))):
  """Compute Mel-filterbank energy features from an audio signal.

    :param signal: the audio signal from which to compute features. Should be an N*1 array
    :param samplerate: the samplerate of the signal we are working with.
    :param winlen: the length of the analysis window in seconds. Default is 0.025s (25 milliseconds)
    :param winstep: the step between successive windows in seconds. Default is 0.01s (10 milliseconds)
    :param nfilt: the number of filters in the filterbank, default 26.
    :param nfft: the FFT size. Default is 512.
    :param lowfreq: lowest band edge of mel filters. In Hz, default is 0.
    :param highfreq: highest band edge of mel filters. In Hz, default is samplerate/2
    :param preemph: apply preemphasis filter with preemph as coefficient. 0 is no filter. Default is 0.97.
    :param winfunc: the analysis window to apply to each frame. By default no window is applied. You can use numpy window functions here e.g. winfunc=numpy.hamming
    :returns: 2 values. The first is a numpy array of size (NUMFRAMES by nfilt) containing features. Each row holds 1 feature vector. The
        second return value is the energy in each frame (total energy, unwindowed)
    """
  pspec = powerspec(signal, samplerate, winlen, winstep, nfft, lowfreq,
                    highfreq, preemph, winfunc)
  energy = numpy.sum(pspec, 1)  # this stores the total energy in each frame
  energy = numpy.where(energy == 0,
                       numpy.finfo(float).eps,
                       energy)  # if energy is zero, we get problems with log

  fb = get_filterbanks(nfilt, nfft, samplerate, lowfreq, highfreq)
  feat = numpy.dot(pspec, fb.T)  # compute the filterbank energies
  feat = numpy.where(feat == 0,
                     numpy.finfo(float).eps,
                     feat)  # if feat is zero, we get problems with log

  return feat, energy
def fbank ( signal , samplerate = 16000 , winlen = 0.025 , winstep = 0.01 , nfilt = 26 , nfft = 512 , lowfreq = 0 , highfreq = None , preemph = 0.97 , winfunc = lambda x : numpy . ones ( ( x , ) ) ) : pspec = powerspec ( signal , samplerate , winlen , winstep , nfft , lowfreq , highfreq , preemph , winfunc ) energy = numpy . sum ( pspec , 1 ) # this stores the total energy in each frame energy = numpy . where ( energy == 0 , numpy . finfo ( float ) . eps , energy ) # if energy is zero, we get problems with log fb = get_filterbanks ( nfilt , nfft , samplerate , lowfreq , highfreq ) feat = numpy . dot ( pspec , fb . T ) # compute the filterbank energies feat = numpy . where ( feat == 0 , numpy . finfo ( float ) . eps , feat ) # if feat is zero, we get problems with log return feat , energy