python计算wav文件功率谱并画图代码,读取方式为y, sr = librosa.load('/home/zhaobw21/prunetry/noise.wav', sr=16000)
时间: 2023-12-23 09:05:54 浏览: 112
下面是使用 `librosa` 库计算 WAV 文件功率谱并绘制图像的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
import librosa
# 读取WAV文件
y, sr = librosa.load('/home/zhaobw21/prunetry/noise.wav', sr=16000)
# 计算功率谱
nfft = 1024 # FFT窗口大小
window = np.hanning(nfft) # 汉宁窗函数
Pxx, freqs, bins, im = plt.specgram(
y, NFFT=nfft, Fs=sr, window=window, noverlap=nfft // 2
)
# 绘制功率谱图
plt.xlabel("Time [s]")
plt.ylabel("Frequency [Hz]")
plt.colorbar()
plt.show()
```
在这个示例中,我们使用 `librosa` 库的 `load` 方法读取 WAV 文件,并将采样率设置为 16000。然后,我们使用 `matplotlib` 的 `specgram` 函数计算音频信号的功率谱并绘制图像。注意,我们在计算功率谱时,使用的是 `y` 变量作为音频信号,而不是 `frames` 变量。最后,我们设置了 x 轴和 y 轴的标签,并添加了一个颜色条。
阅读全文