如何將Librosa頻譜圖儲存為特定尺寸的影像?
Librosa是一個Python包,用於分析音訊和音樂檔案。此包還有助於建立音樂檢索資訊系統。在本文中,我們將瞭解如何將Librosa頻譜圖儲存為特定大小的影像。
步驟
設定圖形大小並調整子圖之間和周圍的填充。
建立一個圖形和一組子圖。
初始化三個不同的變數,**hl**、**hi**、**wi**,分別儲存頻譜圖中的每段時間樣本數、影像的高度和寬度。
載入演示曲目。
建立一個**視窗**,即音訊時間序列的列表。
使用**melspectrogram()**和步驟3資料計算梅爾標度頻譜圖。
使用**power_to_db()**方法將功率譜圖(振幅平方)轉換為分貝 (dB) 單位。
將頻譜圖顯示為**img**(我們可以在此處儲存它)。
使用**savefig()**儲存img。
使用**plt.show()**方法顯示影像。
示例
import numpy as np import matplotlib.pyplot as plt import librosa.display plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig, ax = plt.subplots() hl = 512 # number of samples per time-step in spectrogram hi = 128 # Height of image wi = 384 # Width of image # Loading demo track y, sr = librosa.load(librosa.ex('trumpet')) window = y[0:wi*hl] S = librosa.feature.melspectrogram(y=window, sr=sr, n_mels=hi, fmax=8000, hop_length=hl) S_dB = librosa.power_to_db(S, ref=np.max) img = librosa.display.specshow(S_dB, x_axis='time', y_axis='mel', sr=sr, fmax=8000, ax=ax) plt.savefig("out.png") plt.show()
輸出
廣告