Planner API

The planner API enables efficient batch processing by reusing FFT plans across multiple signals.

Creating Plans

class spectrograms.SpectrogramPlanner

Bases: object

Spectrogram planner for creating reusable computation plans.

Creating a plan is more expensive than a single computation, but plans can be reused for multiple signals with the same parameters, providing significant performance benefits for batch processing.

cqt_db_plan(params: SpectrogramParams, cqt_params: CqtParams, db_params: LogParams) CqtDbPlan

Create a plan for computing CQT decibel spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

cqt_paramsCqtParams

Constant-Q Transform parameters

db_paramsLogParams

Decibel conversion parameters

Returns

CqtDbPlan

Plan for computing CQT decibel spectrograms

cqt_magnitude_plan(params: SpectrogramParams, cqt_params: CqtParams) CqtMagnitudePlan

Create a plan for computing CQT magnitude spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

cqt_paramsCqtParams

Constant-Q Transform parameters

Returns

CqtMagnitudePlan

Plan for computing CQT magnitude spectrograms

cqt_power_plan(params: SpectrogramParams, cqt_params: CqtParams) CqtPowerPlan

Create a plan for computing CQT power spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

cqt_paramsCqtParams

Constant-Q Transform parameters

Returns

CqtPowerPlan

Plan for computing CQT power spectrograms

erb_db_plan(params: SpectrogramParams, erb_params: ErbParams, db_params: LogParams) ErbDbPlan

Create a plan for computing ERB decibel spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

erb_paramsErbParams

ERB-scale filterbank parameters

db_paramsLogParams

Decibel conversion parameters

Returns

ErbDbPlan

Plan for computing ERB decibel spectrograms

erb_magnitude_plan(params: SpectrogramParams, erb_params: ErbParams) ErbMagnitudePlan

Create a plan for computing ERB magnitude spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

erb_paramsErbParams

ERB-scale filterbank parameters

Returns

ErbMagnitudePlan

Plan for computing ERB magnitude spectrograms

erb_power_plan(params: SpectrogramParams, erb_params: ErbParams) ErbPowerPlan

Create a plan for computing ERB power spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

erb_paramsErbParams

ERB-scale filterbank parameters

Returns

ErbPowerPlan

Plan for computing ERB power spectrograms

linear_db_plan(params: SpectrogramParams, db_params: LogParams) LinearDbPlan

Create a plan for computing linear decibel spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

db_paramsLogParams

Decibel conversion parameters

Returns

LinearDbPlan

Plan for computing linear decibel spectrograms

linear_magnitude_plan(params: SpectrogramParams) LinearMagnitudePlan

Create a plan for computing linear magnitude spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

Returns

LinearMagnitudePlan

Plan for computing linear magnitude spectrograms

linear_power_plan(params: SpectrogramParams) LinearPowerPlan

Create a plan for computing linear power spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

Returns

LinearPowerPlan

Plan for computing linear power spectrograms

loghz_db_plan(params: SpectrogramParams, loghz_params: LogHzParams, db_params: LogParams) LogHzDbPlan

Create a plan for computing logarithmic Hz decibel spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

loghz_paramsLogHzParams

Logarithmic Hz scale parameters

db_paramsLogParams

Decibel conversion parameters

Returns

LogHzDbPlan

Plan for computing logarithmic Hz decibel spectrograms

loghz_magnitude_plan(params: SpectrogramParams, loghz_params: LogHzParams) LogHzMagnitudePlan

Create a plan for computing logarithmic Hz magnitude spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

loghz_paramsLogHzParams

Logarithmic Hz scale parameters

Returns

LogHzMagnitudePlan

Plan for computing logarithmic Hz magnitude spectrograms

loghz_power_plan(params: SpectrogramParams, loghz_params: LogHzParams) LogHzPowerPlan

Create a plan for computing logarithmic Hz power spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

loghz_paramsLogHzParams

Logarithmic Hz scale parameters

Returns

LogHzPowerPlan

Plan for computing logarithmic Hz power spectrograms

mel_db_plan(params: SpectrogramParams, mel_params: MelParams, db_params: LogParams) MelDbPlan

Create a plan for computing mel decibel spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

mel_paramsMelParams

Mel-scale filterbank parameters

db_paramsLogParams

Decibel conversion parameters

Returns

MelDbPlan

Plan for computing mel decibel spectrograms

mel_magnitude_plan(params: SpectrogramParams, mel_params: MelParams) MelMagnitudePlan

Create a plan for computing mel magnitude spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

mel_paramsMelParams

Mel-scale filterbank parameters

Returns

MelMagnitudePlan

Plan for computing mel magnitude spectrograms

mel_power_plan(params: SpectrogramParams, mel_params: MelParams) MelPowerPlan

Create a plan for computing mel power spectrograms.

Parameters

paramsSpectrogramParams

Spectrogram parameters

mel_paramsMelParams

Mel-scale filterbank parameters

Returns

MelPowerPlan

Plan for computing mel power spectrograms

Plan Classes

Linear Plans

class spectrograms.LinearPowerPlan

Bases: object

Plan for computing linear power spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

class spectrograms.LinearMagnitudePlan

Bases: object

Plan for computing linear magnitude spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

class spectrograms.LinearDbPlan

Bases: object

Plan for computing linear decibel spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

Mel Plans

class spectrograms.MelPowerPlan

Bases: object

Plan for computing mel power spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

class spectrograms.MelMagnitudePlan

Bases: object

Plan for computing mel magnitude spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

class spectrograms.MelDbPlan

Bases: object

Plan for computing mel decibel spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

ERB Plans

class spectrograms.ErbPowerPlan

Bases: object

Plan for computing ERB power spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

class spectrograms.ErbMagnitudePlan

Bases: object

Plan for computing ERB magnitude spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)

class spectrograms.ErbDbPlan

Bases: object

Plan for computing ERB decibel spectrograms.

compute(samples: numpy.typing.NDArray[numpy.float64]) Spectrogram

Compute a spectrogram from audio samples.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

Returns

Spectrogram

Computed spectrogram result

compute_frame(samples: numpy.typing.NDArray[numpy.float64], frame_idx: int) numpy.typing.NDArray[numpy.float64]

Compute a single frame of the spectrogram.

Parameters

samplesnumpy.typing.NDArray[numpy.float64]

Audio samples as a 1D array

frame_idxint

Frame index to compute

Returns

numpy.typing.NDArray[numpy.float64]

1D array containing the frame data

output_shape(signal_length: int) tuple[int, int]

Get the output shape for a given signal length.

Parameters

signal_lengthint

Length of the input signal

Returns

tuple[int, int]

Tuple of (n_bins, n_frames)