librosa.core.resample

librosa.core.resample(y, orig_sr, target_sr, res_type=’kaiser_best’, fix=True, scale=False, **kwargs)[source]

Resample a time series from orig_sr to target_sr

Parameters:
y : np.ndarray [shape=(n,) or shape=(2, n)]

audio time series. Can be mono or stereo.

orig_sr : number > 0 [scalar]

original sampling rate of y

target_sr : number > 0 [scalar]

target sampling rate

res_type : str

resample type (see note)

Note

By default, this uses resampy’s high-quality mode (‘kaiser_best’).

To use a faster method, set res_type=’kaiser_fast’.

To use scipy.signal.resample, set res_type=’scipy’.

fix : bool

adjust the length of the resampled signal to be of size exactly ceil(target_sr * len(y) / orig_sr)

scale : bool

Scale the resampled signal so that y and y_hat have approximately equal total energy.

kwargs : additional keyword arguments

If fix==True, additional keyword arguments to pass to librosa.util.fix_length.

Returns:
y_hat : np.ndarray [shape=(n * target_sr / orig_sr,)]

y resampled from orig_sr to target_sr

See also

librosa.util.fix_length, scipy.signal.resample, resampy.resample

Notes

This function caches at level 20.

Examples

Downsample from 22 KHz to 8 KHz

>>> y, sr = librosa.load(librosa.util.example_audio_file(), sr=22050)
>>> y_8k = librosa.resample(y, sr, 8000)
>>> y.shape, y_8k.shape
((1355168,), (491671,))