Instantly share code, notes, and snippets.

What would you like to do?
Display a mel-scaled power spectrogram using librosa
# Mostly taken from:
import librosa
import matplotlib.pyplot as plt
# Load sound file
y, sr = librosa.load("filename.mp3")
# Let's make and display a mel-scaled power (energy-squared) spectrogram
S = librosa.feature.melspectrogram(y, sr=sr, n_mels=128)
# Convert to log scale (dB). We'll use the peak power as reference.
log_S = librosa.logamplitude(S, ref_power=np.max)
# Make a new figure
# Display the spectrogram on a mel scale
# sample rate and hop length parameters are used to render the time axis
librosa.display.specshow(log_S, sr=sr, x_axis='time', y_axis='mel')
# Put a descriptive title on the plot
plt.title('mel power spectrogram')
# draw a color bar
plt.colorbar(format='%+02.0f dB')
# Make the figure layout compact

This comment has been minimized.

aosmith commented Apr 24, 2015

Great tutorial. You're forgetting


This comment has been minimized.

Pzoom522 commented Feb 21, 2018

Nice work. In v6.0, librosa.logamplitude(S, ref_power=np.max) is replaced by librosa.amplitude_to_db(S, ref=np.max)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment