从音频读取中获取光谱仪的不同背景颜色

Getting different background colour of spectrograph from audio reading

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()

我正在尝试读取音频并将其转换为梅尔频谱图以用于机器学习模型的训练,但我从相同大小的音频中得到不同的频谱图,并且每个音频的采样频率都相同我想获得频谱图具有相同的背景,以便我的机器学习模型可以获得更高的准确性。

https://i.stack.imgur.com/beDR8.png

您的频谱图的值看起来很合理,并且所有音频剪辑通常都在同一范围内。但是您在绘图时没有指定颜色图,因此由于 librosa 中的自动检测,其中一些具有不同的颜色图。为 librosa.display.specshow 指定 cmap='magma',这应该不是问题。

请注意,对于机器学习,您不应使用频谱图的绘图,而应直接使用频谱图值。如果您想要它的图像表示,请参阅