基于音频的波形图与频谱图绘制
基于python绘制Sinéad O'Connor - Nothing Compares To You音频的波形图与频谱图
import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np
# 文件路径
file_path = r"D:\daku\波形图频谱图\NothingComparesToYou.mp3"
# 加载音频文件
y, sr = librosa.load(file_path, sr=None)
# 创建一个新的图形窗口
plt.figure(figsize=(14, 8))
# 绘制波形图
plt.subplot(2, 1, 1)
librosa.display.waveshow(y, sr=sr)
plt.title('波形图')
plt.xlabel('时间 (秒)')
plt.ylabel('振幅')
# 计算短时傅里叶变换
D = librosa.stft(y)
# 将幅度谱转换为分贝刻度
S_db = librosa.amplitude_to_db(abs(D), ref=np.max)
# 绘制频谱图
plt.subplot(2, 1, 2)
librosa.display.specshow(S_db, sr=sr, x_axis='time', y_axis='log')
plt.colorbar(format='%+2.0f dB')
plt.title('频谱图')
plt.xlabel('时间 (秒)')
plt.ylabel('频率 (Hz)')
# 显示图形
plt.tight_layout()
plt.show()