/** * Create Mel filterbank matrix * @param {number} sr - Sample rate * @param {number} n_fft - FFT size * @param {number} n_mels - Number of Mel filters * @param {number} fmin - Minimum frequency * @param {number|null} fmax - Maximum frequency (sr/2 if null) * @param {string|number|null} norm - Normalization type ('slaney', number, or null) * @param {boolean} htk - Use HTK formula for mel conversion * @returns {Array} Mel filterbank matrix (n_mels x n_freq_bins) */ export function mel_filterbank(sr?: number, n_fft?: number, n_mels?: number, fmin?: number, fmax?: number | null, norm?: string | number | null, htk?: boolean): any[]; /** * Convert Hz to Mel scale * @param {number} hz - Frequency in Hz * @param {boolean} htk - Use HTK formula instead of Slaney (default: false) * @returns {number} Frequency in Mel scale */ export function hz_to_mel(hz: number, htk?: boolean): number; /** * Convert Mel scale to Hz * @param {number} mel - Frequency in Mel scale * @param {boolean} htk - Use HTK formula instead of Slaney (default: false) * @returns {number} Frequency in Hz */ export function mel_to_hz(mel: number, htk?: boolean): number; /** * Create linearly spaced array * @param {number} start - Start value * @param {number} stop - Stop value * @param {number} num - Number of samples * @returns {Array} Linearly spaced array */ export function linspace(start: number, stop: number, num: number): any[]; /** * Compute Mel spectrogram * @param {Float32Array} y - Audio signal (optional if S provided) * @param {number} sr - Sample rate * @param {Array} S - Pre-computed power spectrogram [freq][time] (optional) * @param {number} n_fft - FFT size * @param {number} hop_length - Hop length * @param {number} win_length - Window length * @param {string} window - Window type * @param {boolean} center - Center frames * @param {string} pad_mode - Padding mode * @param {number} power - Exponent for magnitude to power conversion (2.0 = power, 1.0 = magnitude) * @param {number} n_mels - Number of Mel filters * @param {number} fmin - Minimum frequency * @param {number|null} fmax - Maximum frequency * @param {string|number|null} norm - Mel filterbank normalization * @param {boolean} htk - Use HTK formula for mel conversion * @returns {Array} Mel spectrogram [n_mels][n_frames] */ export function melspectrogram(y?: Float32Array, sr?: number, S?: any[], n_fft?: number, hop_length?: number, win_length?: number, window?: string, center?: boolean, pad_mode?: string, power?: number, n_mels?: number, fmin?: number, fmax?: number | null, norm?: string | number | null, htk?: boolean): any[]; /** * Compute Mel-Frequency Cepstral Coefficients (MFCCs). * * Wave-4: delegates to the fixture-verified feature/mfcc.js pipeline * (power_to_db instead of the old natural log, cached ortho DCT-II basis * instead of per-frame O(N²) recomputation; gated by * committed reference fixtures). * * @param {Float32Array} y - Audio signal (optional if S provided) * @param {number} sr - Sample rate * @param {Array} S - Pre-computed mel POWER spectrogram [n_mels][n_frames] * (this shim's historical semantics: dB conversion is applied for you; * feature/mfcc.js takes a log-power mel spectrogram) * @param {number} n_mfcc - Number of MFCCs to return * @param {number} dct_type - DCT type (only 2 is supported) * @param {string|null} norm - DCT normalization ('ortho' or null) * @param {number} lifter - Liftering coefficient (0 = no liftering) * @param {number} n_fft - FFT size * @param {number} hop_length - Hop length * @param {number} win_length - Window length * @param {string} window - Window type * @param {boolean} center - Center frames * @param {string} pad_mode - Padding mode * @param {number} power - Exponent for magnitude to power conversion * @param {number} n_mels - Number of Mel filters * @param {number} fmin - Minimum frequency * @param {number|null} fmax - Maximum frequency * @param {string|number|null} mel_norm - Mel filterbank normalization * @param {boolean} htk - Use HTK formula for mel conversion * @returns {Array} MFCC matrix (n_mfcc x n_frames) */ export function mfcc(y?: Float32Array, sr?: number, S?: any[], n_mfcc?: number, dct_type?: number, norm?: string | null, lifter?: number, n_fft?: number, hop_length?: number, win_length?: number, window?: string, center?: boolean, pad_mode?: string, power?: number, n_mels?: number, fmin?: number, fmax?: number | null, mel_norm?: string | number | null, htk?: boolean): any[]; /** * Discrete Cosine Transform * @param {Array} signal - Input signal * @param {number} type - DCT type (1, 2, or 3) * @param {string|null} norm - Normalization ('ortho' or null) * @returns {Array} DCT coefficients */ export function dct(signal: any[], type?: number, norm?: string | null): any[]; /** * Inverse Discrete Cosine Transform * @param {Array} dct_coeffs - DCT coefficients * @param {number} type - DCT type (1, 2, or 3) * @param {string|null} norm - Normalization ('ortho' or null) * @returns {Array} Reconstructed signal */ export function idct(dct_coeffs: any[], type?: number, norm?: string | null): any[]; /** * Compute delta (first-order derivative) features * @param {Array} features - Feature matrix (n_features x n_frames) * @param {number} width - Width of delta calculation window * @returns {Array} Delta features */ export function delta_features(features: any[], width?: number): any[]; /** * Lifter MFCC coefficients (apply liftering window) * @param {Array} mfcc_matrix - MFCC matrix * @param {number} L - Liftering parameter * @returns {Array} Liftered MFCC matrix */ export function lifter_mfcc(mfcc_matrix: any[], L?: number): any[]; /** * Convert power spectrogram to dB scale * @param {Array} power_spec - Power spectrogram * @param {number} ref - Reference power level * @param {number} amin - Minimum amplitude * @param {number} top_db - Maximum dB range * @returns {Array} dB spectrogram */ export function power_to_db(power_spec: any[], ref?: number, amin?: number, top_db?: number): any[]; /** * Get Mel frequencies for given number of filters * @param {number} n_mels - Number of Mel filters * @param {number} fmin - Minimum frequency * @param {number} fmax - Maximum frequency * @returns {Array} Mel frequencies */ export function mel_frequencies(n_mels: number, fmin?: number, fmax?: number): any[]; /** * Simple feature extraction for audio classification * @param {Float32Array} y - Audio signal * @param {number} sr - Sample rate * @returns {Object} Extracted features */ export function extract_mel_features(y: Float32Array, sr?: number): any;