#!/usr/bin/env python # coding: utf-8 # In[1]: # http://nbviewer.jupyter.org/github/librosa/librosa/blob/master/examples/LibROSA%20demo.ipynb import librosa import librosa.display import IPython.display get_ipython().run_line_magic('matplotlib', 'inline') import matplotlib.pyplot as plt import numpy as np def player(audio_path): return IPython.display.Audio(audio_path) def spectrogram(audio_path, title): y, sr = librosa.load(audio_path, sr=None) S = librosa.feature.melspectrogram(y, sr=sr, n_mels=256) log_S = librosa.power_to_db(S, ref=np.max) plt.figure(figsize=(12,4)) librosa.display.specshow(log_S, sr=sr, x_axis='time', y_axis='mel', fmax=22050) plt.title(title) plt.colorbar(format='%+02.0f dB') plt.tight_layout() # ## Opus 16 kbps # # ```console # $ ffmpeg -i rains.flac -c:a libopus -b:a 16k 16k.opus # ``` # In[2]: audio_path = '16k.opus' player(audio_path) # In[3]: spectrogram(audio_path, 'Opus 16kbps') # ## Opus 8 kbps # # ```console # $ ffmpeg -i rains.flac -c:a libopus -b:a 8k 8k.opus # ``` # In[4]: audio_path = '8k.opus' player(audio_path) # In[5]: spectrogram(audio_path, 'Opus 8kbps') # ## Opus 4 kbps # # ```console # $ ffmpeg -i rains.flac -c:a libopus -b:a 4k 4k.opus # ``` # In[6]: audio_path = '4k.opus' player(audio_path) # In[7]: spectrogram(audio_path, 'Opus 4kbps') # ## Opus 2 kbps # # ```console # $ ffmpeg -i rains.flac -c:a libopus -b:a 2k 2k.opus # ``` # In[8]: audio_path = '2k.opus' player(audio_path) # In[9]: spectrogram(audio_path, 'Opus 2kbps')