spafe.features.bfcc

based on https://asmp-eurasipjournals.springeropen.com/track/pdf/10.1186/s13636-017-0100-x

spafe.features.bfcc.bfcc(sig, fs=16000, num_ceps=13, pre_emph=0, pre_emph_coeff=0.97, win_len=0.025, win_hop=0.01, win_type='hamming', nfilts=26, nfft=512, low_freq=None, high_freq=None, scale='constant', dct_type=2, use_energy=False, lifter=22, normalize=1)[source]

Compute the bark-frequency cepstral coefficients (BFCC features) from an audio signal.

Parameters:
  • sig (array) – a mono audio signal (Nx1) from which to compute features.
  • fs (int) – the sampling frequency of the signal we are working with. Default is 16000.
  • num_ceps (float) – number of cepstra to return. Default is 13.
  • pre_emph (int) – apply pre-emphasis if 1. Default is 1.
  • pre_emph_coeff (float) – apply pre-emphasis filter [1 -pre_emph] (0 = none). Default is 0.97.
  • win_len (float) – window length in sec. Default is 0.025.
  • win_hop (float) – step between successive windows in sec. Default is 0.01.
  • win_type (float) – window type to apply for the windowing. Default is “hamming”.
  • nfilts (int) – the number of filters in the filterbank. Default is 40.
  • nfft (int) – number of FFT points. Default is 512.
  • low_freq (int) – lowest band edge of mel filters (Hz). Default is 0.
  • high_freq (int) – highest band edge of mel filters (Hz). Default is samplerate / 2 = 8000.
  • scale (str) – choose if max bins amplitudes ascend, descend or are constant (=1). Default is “constant”.
  • dct_type (int) – type of DCT used - 1 or 2 (or 3 for HTK or 4 for feac). Default is 2.
  • use_energy (int) – overwrite C0 with true log energy Default is 0.
  • lifter (int) – apply liftering if value > 0. Default is 22.
  • normalize (int) – apply normalization if 1. Default is 0.
Returns:

2d array of BFCC features (num_frames x num_ceps)

Return type:

(array)

spafe.features.bfcc.intensity_power_law(w)[source]

Apply the intensity power law.

Parameters:w (array) – signal information.
Resturn:
array after intensity power law.

Example:

import scipy.io.wavfile
import spafe.utils.vis as vis
from spafe.features.bfcc import bfcc


#read wave file
fs, sig = scipy.io.wavfile.read('../test.wav')

# compute bfccs
bfccs  = bfcc(sig, 13)

# visualize features
vis.visualize(bfccs, LMFCC Coefficient Index','Frame Index')
alternate text