【发布时间】:2020-03-19 11:46:31
【问题描述】:
我已经绘制了使用 matplotlib 和 scipy 从视频中提取的音频 wav 的频率与时间图。
现在我想确定频率(y 坐标)的某个值(如零、峰值正频率等)的所有时间值(x 坐标)。 这是我的绘图代码:
sr, signal = wavfile.read(wave_file_path)
y = signal[:, 0]
t = np.arange(len(y)) / float(sr)
plt.plot(t, y)
plt.xlabel('t')
plt.ylabel('y')
#plt.show()
plt.save("myplot.png")
我试过(np.interp(0, Signal,time))但这只是给出时间的第一个零频率值,而不是整个y坐标值列表。顺便提一下,我还尝试了print(np.where(t == 0.0)),我不确定这是否是正确的使用方法,因为我只得到(array([0]),) 作为每个wav 文件的结果。
这是我从音频文件中绘制的图表。 我保存了绘图而不是查看,因为我使用的是没有 GUI 的 linux 服务器。 如果通过 GUI 有更简单的方法,那么我也可以尝试。
【问题讨论】:
-
你能分享
y和t的至少一些内容,或者wave文件吗?这可能就是要找到答案的地方,对吧?我不认为 matplotlib 对此会有多大用处。
标签: python numpy matplotlib audio scipy