Skip to content

This library provides common speech features for ASR including MFCCs and filterbank energies.

License

Notifications You must be signed in to change notification settings

jameslyons/python_speech_features

Repository files navigation

python_speech_features

This library provides common speech features for ASR including MFCCs and filterbank energies. If you are not sure what MFCCs are, and would like to know more have a look at this MFCC tutorial

Project Documentation

To cite, please use: James Lyons et al. (2020, January 14). jameslyons/python_speech_features: release v0.6.1 (Version 0.6.1). Zenodo. http://doi.org/10.5281/zenodo.3607820

Installation

This project is on pypi

To install from pypi:

pip install python_speech_features 

From this repository:

git clone https://github.com/jameslyons/python_speech_features python setup.py develop 

Usage

Supported features:

  • Mel Frequency Cepstral Coefficients
  • Filterbank Energies
  • Log Filterbank Energies
  • Spectral Subband Centroids

Example use

From here you can write the features to a file etc.

MFCC Features

The default parameters should work fairly well for most cases, if you want to change the MFCC parameters, the following parameters are supported:

python def mfcc(signal,samplerate=16000,winlen=0.025,winstep=0.01,numcep=13, nfilt=26,nfft=512,lowfreq=0,highfreq=None,preemph=0.97, ceplifter=22,appendEnergy=True) 
ParameterDescription
signalthe audio signal from which to compute features. Should be an N*1 array
sampleratethe samplerate of the signal we are working with.
winlenthe length of the analysis window in seconds. Default is 0.025s (25 milliseconds)
winstepthe step between successive windows in seconds. Default is 0.01s (10 milliseconds)
numcepthe number of cepstrum to return, default 13
nfiltthe number of filters in the filterbank, default 26.
nfftthe FFT size. Default is 512
lowfreqlowest band edge of mel filters. In Hz, default is 0
highfreqhighest band edge of mel filters. In Hz, default is samplerate/2
preemphapply preemphasis filter with preemph as coefficient. 0 is no filter. Default is 0.97
ceplifterapply a lifter to final cepstral coefficients. 0 is no lifter. Default is 22
appendEnergyif this is true, the zeroth cepstral coefficient is replaced with the log of the total frame energy.
returnsA numpy array of size (NUMFRAMES by numcep) containing features. Each row holds 1 feature vector.

Filterbank Features

These filters are raw filterbank energies. For most applications you will want the logarithm of these features. The default parameters should work fairly well for most cases. If you want to change the fbank parameters, the following parameters are supported:

python def fbank(signal,samplerate=16000,winlen=0.025,winstep=0.01, nfilt=26,nfft=512,lowfreq=0,highfreq=None,preemph=0.97) 
ParameterDescription
signalthe audio signal from which to compute features. Should be an N*1 array
sampleratethe samplerate of the signal we are working with
winlenthe length of the analysis window in seconds. Default is 0.025s (25 milliseconds)
winstepthe step between successive windows in seconds. Default is 0.01s (10 milliseconds)
nfiltthe number of filters in the filterbank, default 26.
nfftthe FFT size. Default is 512.
lowfreqlowest band edge of mel filters. In Hz, default is 0
highfreqhighest band edge of mel filters. In Hz, default is samplerate/2
preemphapply preemphasis filter with preemph as coefficient. 0 is no filter. Default is 0.97
returnsA 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)

Reference

sample english.wav obtained from:

wget http://voyager.jpl.nasa.gov/spacecraft/audio/english.au sox english.au -e signed-integer english.wav 

About

This library provides common speech features for ASR including MFCCs and filterbank energies.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 16

Languages