Function melspectrogram

Source
pub fn melspectrogram(
    signal: &AudioData,
    s: Option<&Array2<f32>>,
    n_fft: Option<usize>,
    hop_length: Option<usize>,
    n_mels: Option<usize>,
    fmin: Option<f32>,
    fmax: Option<f32>,
) -> Result<Array2<f32>, SpectralError>
Expand description

Computes a mel spectrogram.

Projects spectral energy onto mel-frequency bands.

§Arguments

  • signal - The input audio signal.
  • S - Optional pre-computed magnitude spectrogram.
  • n_fft - Optional FFT window size (defaults to 2048).
  • hop_length - Optional hop length (defaults to n_fft/4).
  • n_mels - Optional number of mel bands (defaults to 128).
  • fmin - Optional minimum frequency (defaults to 0 Hz).
  • fmax - Optional maximum frequency (defaults to sr/2).

§Returns

Returns Result<Array2<f32>, SpectralError> containing a 2D array of shape (n_mels, n_frames) with mel spectrogram, or an error.

§Examples

use dasp_rs::io::core::AudioData;
use dasp_rs::signal_processing::spectral::melspectrogram;
let signal = AudioData { samples: vec![0.1, 0.2, 0.3, 0.4], sample_rate: 44100, channels: 1 };
let mel = melspectrogram(&signal, None, None, None, None, None, None).unwrap();
assert_eq!(mel.shape(), &[128, 1]);