Create a gist now

Instantly share code, notes, and snippets.

Embed
Display a mel-scaled power spectrogram using librosa
# Mostly taken from: http://nbviewer.ipython.org/github/bmcfee/librosa/blob/master/examples/LibROSA%20demo.ipynb
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
plt.figure(figsize=(12,4))
# 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
plt.tight_layout()
@aosmith

This comment has been minimized.

Show comment
Hide comment
@aosmith

aosmith Apr 24, 2015

Great tutorial. You're forgetting plot.show().

aosmith commented Apr 24, 2015

Great tutorial. You're forgetting plot.show().

@Pzoom522

This comment has been minimized.

Show comment
Hide comment
@Pzoom522

Pzoom522 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)

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