这段代码使用了librosa库进行音频处理和显示,以及matplotlib库进行图像绘制。
首先,它导入了所需的依赖项:
numpy用于数值计算。librosa用于音频加载、STFT转换等功能。matplotlib.pyplot用于绘制图像。soundfile用于读取音频文件。
然后,在主函数中:
- 使用
librosa.load()加载名为’test1.wav’的音频文件,并指定采样率为16000Hz。加载的结果存储在变量y, fs中。 - 定义了帧长(
frame_t)和步进长度(hop_length_t),并将其转换为采样点数(根据采样率)。 - 计算STFT所需的参数:FFT窗口大小(
n_fft)、窗口长度(win_length)和步进长度(hop_length)。 - 调用
librosa.stft()函数计算STFT,并使用np.abs()获取幅度谱(非负值)存储在变量S中。 - 使用
plt.imshow()将幅度谱可视化为热力图,并使用原点在左下角显示。 - 最后调用
plt.show()展示图像。
如果您有任何问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问




