librosa.effects.trim

librosa.effects.trim(y, top_db=60, ref=<function amax>, frame_length=2048, hop_length=512)[source]

Trim leading and trailing silence from an audio signal.

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

Audio signal, can be mono or stereo

top_db : number > 0

The threshold (in decibels) below reference to consider as silence

ref : number or callable

The reference power. By default, it uses np.max and compares to the peak power in the signal.

frame_length : int > 0

The number of samples per analysis frame

hop_length : int > 0

The number of samples between analysis frames

Returns:
y_trimmed : np.ndarray, shape=(m,) or (2, m)

The trimmed signal

index : np.ndarray, shape=(2,)

the interval of y corresponding to the non-silent region: y_trimmed = y[index[0]:index[1]] (for mono) or y_trimmed = y[:, index[0]:index[1]] (for stereo).

Examples

>>> # Load some audio
>>> y, sr = librosa.load(librosa.util.example_audio_file())
>>> # Trim the beginning and ending silence
>>> yt, index = librosa.effects.trim(y)
>>> # Print the durations
>>> print(librosa.get_duration(y), librosa.get_duration(yt))
61.45886621315193 60.58086167800454