Skip to content

Instantly share code, notes, and snippets.

@alex-bender
Forked from mailletf/gist:3484932dd29d62b36092
Created November 4, 2015 08:15
Show Gist options
  • Save alex-bender/456d56024925424f22d2 to your computer and use it in GitHub Desktop.
Save alex-bender/456d56024925424f22d2 to your computer and use it in GitHub Desktop.
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()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment