pub struct MfccExtractor { /* private fields */ }Expand description
MFCC extractor with configurable parameters.
§Examples
use resonant_analysis::mfcc::MfccExtractor;
let extractor = MfccExtractor::new(44100.0);
let samples = vec![0.0_f32; 4096];
let frames = extractor.extract(&samples).unwrap();
// Each frame has 13 coefficients by default
for f in &frames {
assert_eq!(f.coefficients.len(), 13);
}Implementations§
Source§impl MfccExtractor
impl MfccExtractor
Sourcepub fn new(sample_rate: f32) -> Self
pub fn new(sample_rate: f32) -> Self
Creates an extractor with default parameters.
Defaults: 13 coefficients, 26 mel bands, window 1024, hop 512.
Sourcepub fn with_num_coefficients(self, n: usize) -> Self
pub fn with_num_coefficients(self, n: usize) -> Self
Sets the number of MFCC coefficients to keep per frame.
Sourcepub fn with_num_mel_bands(self, n: usize) -> Self
pub fn with_num_mel_bands(self, n: usize) -> Self
Sets the number of mel filterbank bands.
Sourcepub fn with_window_size(self, size: usize) -> Self
pub fn with_window_size(self, size: usize) -> Self
Sets the STFT window size (should be a power of two).
Sourcepub fn with_hop_size(self, hop: usize) -> Self
pub fn with_hop_size(self, hop: usize) -> Self
Sets the STFT hop size.
Sourcepub fn extract(&self, samples: &[f32]) -> Result<Vec<MfccFrame>, AnalysisError>
pub fn extract(&self, samples: &[f32]) -> Result<Vec<MfccFrame>, AnalysisError>
Extracts MFCC frames from mono audio samples.
§Errors
Returns AnalysisError::EmptyInput if samples is empty, or
AnalysisError::InvalidParameter if parameters are inconsistent.
Sourcepub fn deltas(
frames: &[MfccFrame],
width: usize,
) -> Result<Vec<MfccFrame>, AnalysisError>
pub fn deltas( frames: &[MfccFrame], width: usize, ) -> Result<Vec<MfccFrame>, AnalysisError>
Computes delta (first derivative) coefficients from MFCC frames.
Uses a regression window of width frames on each side.
§Errors
Returns AnalysisError::EmptyInput if frames is empty, or
AnalysisError::InvalidParameter if width is zero.
Trait Implementations§
Source§impl Clone for MfccExtractor
impl Clone for MfccExtractor
Source§fn clone(&self) -> MfccExtractor
fn clone(&self) -> MfccExtractor
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MfccExtractor
impl RefUnwindSafe for MfccExtractor
impl Send for MfccExtractor
impl Sync for MfccExtractor
impl Unpin for MfccExtractor
impl UnsafeUnpin for MfccExtractor
impl UnwindSafe for MfccExtractor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more