import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import librosa as lr
import glob
path = r'/content/drive/MyDrive/ESC-50/305 - Coughing/*.ogg'
a = glob.glob(path)
print(len(a))
for file in range(0,len(a),1):
#scale, sr = librosa.load(a[file])
#print(sr)
scale, sr = librosa.load(a[file])
mel_spectrogram = librosa.feature.melspectrogram( scale, sr=sr, n_fft=1024, hop_length=512,
n_mels=228
)
mel_spectrogram.shape
log_mel_spectrogram = librosa.power_to_db((mel_spectrogram))
log_mel_spectrogram.shape
plt.figure(figsize=(10, 5))
librosa.display.specshow(log_mel_spectrogram, x_axis="time",
y_axis="log",
sr=sr)
plt.colorbar(format="% 2.f")
plt.show()
我正在嘗試讀取音頻并將其轉換為 mel 頻譜圖以用于機器學習模型的訓練,但是我從相同大小的音頻中獲得了不同的頻譜圖,并且每個音頻的采樣頻率都相同,我想獲得相同背景的頻譜圖,以便我的機器學習模型可以獲得更好的準確性。
https://i.stack.imgur.com/beDR8.png
uj5u.com熱心網友回復:
您的頻譜圖的值看起來合理,并且對于所有音頻剪輯通常都在相同的范圍內。但是您在繪圖時沒有指定顏色圖,因此由于 librosa 中的自動檢測,其中一些具有不同的顏色圖。為 librosa.display.specshow 指定 cmap='magma' 這應該不是問題。
請注意,對于機器學習,您不應使用頻譜圖的圖,而應直接使用頻譜圖值。如果您想要影像表示,請參閱https://stackoverflow.com/a/57204349/1967571
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/347338.html
