librosa.core.autocorrelate¶
-
librosa.core.
autocorrelate
(y, max_size=None, axis=-1)[source]¶ Bounded auto-correlation
Parameters: - y : np.ndarray
array to autocorrelate
- max_size : int > 0 or None
maximum correlation lag. If unspecified, defaults to y.shape[axis] (unbounded)
- axis : int
The axis along which to autocorrelate. By default, the last axis (-1) is taken.
Returns: - z : np.ndarray
truncated autocorrelation y*y along the specified axis. If max_size is specified, then z.shape[axis] is bounded to max_size.
Notes
This function caches at level 20.
Examples
Compute full autocorrelation of y
>>> y, sr = librosa.load(librosa.util.example_audio_file(), offset=20, duration=10) >>> librosa.autocorrelate(y) array([ 3.226e+03, 3.217e+03, ..., 8.277e-04, 3.575e-04], dtype=float32)
Compute onset strength auto-correlation up to 4 seconds
>>> import matplotlib.pyplot as plt >>> odf = librosa.onset.onset_strength(y=y, sr=sr, hop_length=512) >>> ac = librosa.autocorrelate(odf, max_size=4* sr / 512) >>> plt.plot(ac) >>> plt.title('Auto-correlation') >>> plt.xlabel('Lag (frames)')