如何將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()輸出

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP