簡體   English   中英

使用Librosa繪制梅譜圖

[英]Using Librosa to plot a mel-spectrogram

我在使用自定義文件路徑創建librosa中的mel-spectrum圖時遇到問題。

我正在關注此文檔: https//librosa.github.io/librosa/generated/librosa.feature.melspectrogram.html

我已經看過這個堆棧溢出帖子: 使用Librosa生成的頻譜圖看起來與Kaldi不一致?

然而,這些都沒有幫助我解決我的問題。

import librosa
y, sr = librosa.load("path_to_my_wav_file")
librosa.feature.melspectrogram(y=y, sr=sr)
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 4))
librosa.display.specshow(librosa.power_to_db(y,                                              
ref=np.max), y_axis='mel', fmax=8000, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('Mel spectrogram')
plt.tight_layout()

有人能告訴我如何修復此代碼,以便正確顯示並保存mel-spectrogram到jpg文件? 謝謝!

哦,你的問題主要是關於如何將其保存為jpg?如果你只是想顯示圖片,你只需要添加一行代碼: plt.show()

如果你想保存一個jpg,沒有軸,沒有白邊:

import os
import matplotlib
matplotlib.use('Agg') # No pictures displayed 
import pylab
import librosa
import librosa.display
import numpy as np

sig, fs = librosa.load('path_to_my_wav_file')   
# make pictures name 
save_path = 'test.jpg'

pylab.axis('off') # no axis
pylab.axes([0., 0., 1., 1.], frameon=False, xticks=[], yticks=[]) # Remove the white edge
S = librosa.feature.melspectrogram(y=sig, sr=fs)
librosa.display.specshow(librosa.power_to_db(S, ref=np.max))
pylab.savefig(save_path, bbox_inches=None, pad_inches=0)
pylab.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM