[−][src]Function mel_filter::mel
pub fn mel<T: Float + NumOps>(
sr: usize,
n_fft: usize,
n_mels: Option<usize>,
fmin: Option<T>,
fmax: Option<T>,
htk: bool,
norm: NormalizationFactor
) -> Vec<Vec<T>>
librosa.filters.mel
.
Returns 2D array, of shape n_mels * (1 + n_fft/2)
, Currently is Vec<Vec<T>>
.
Arguments
sr
- Sampling rate of the incoming signaln_fft
- number of FFT componentsn_mels
- number of Mel bands to generate, default 128fmin
- lowest frequency (in Hz), default 0.0fmax
- highest frequency (in Hz) IfNone
, usefmax = sr / 2.0
htk
- use HTK formula instead of Slaneynorm
if NormalizationFactor::One, divide the triangular mel weights by the width of the mel band (area normalization). Otherwise, leave all the triangles aiming for a peak value of 1.0
Examples
use mel_filter::{mel, NormalizationFactor}; let melfb = mel::<f64>(22050, 2048, None, None, None, false, NormalizationFactor::One); assert_eq!(melfb.len(), 128); assert_eq!(melfb[0].len(), 1025); assert_eq!(&melfb[0][..6], &[0f64, 0.016182853208219942, 0.032365706416439884, 0.028990088037379964, 0.012807234829160026, 0.][..], "begin six element"); assert_eq!(&melfb[1][..9], &[0f64, 0., 0., 0.009779235793639925, 0.025962089001859864, 0.035393705451959974, 0.01921085224374004, 0.003027999035520103, 0.][..], "second nine element"); // melfb = [[ 0. , 0.016, ..., 0. , 0. ], // [ 0. , 0. , ..., 0. , 0. ], // ..., // [ 0. , 0. , ..., 0. , 0. ], // [ 0. , 0. , ..., 0. , 0. ]] // Clip the maximum frequency to 8KHz let melfb = mel(22050, 2048, None, None, Some(8000.), false, NormalizationFactor::One); println!("{:?}", &melfb[0][..10]); assert_eq!(melfb.len(), 128); assert_eq!(melfb[0].len(), 1025); assert_eq!(&melfb[0][..6], &[0f64, 0.01969187633619885, 0.0393837526723977, 0.026457473399387796, 0.006765597063188946, 0.][..], "begin six element"); assert_eq!(&melfb[1][..9], &[0f64, 0., 0., 0.016309077804604378, 0.036000954140803225, 0.029840271930982275, 0.010148395594783432, 0., 0.][..], "second nine element"); // melfb = [[ 0. , 0.02, ..., 0. , 0. ], // [ 0. , 0. , ..., 0. , 0. ], // ..., // [ 0. , 0. , ..., 0. , 0. ], // [ 0. , 0. , ..., 0. , 0. ]])