如何减少波形的点数?

时间:2010-10-10 17:24:55

标签: python audio waveform

我有这个,

f = audiolab.Sndfile('test.wav', 'r')
data = f.read_frames(f.nframes, dtype=numpy.int16)

pyplot.rcParams['figure.figsize'] = 10, 2
pyplot.plot(data)
pyplot.xticks([])
pyplot.yticks([])
pyplot.show()

但是绘图很慢并冻结了电脑,如何减少点数或者如何提高代码的性能呢?

2 个答案:

答案 0 :(得分:0)

使用NumPy之类的东西将数据重新取样到较低的频率,然后再将其添加到绘图中。

答案 1 :(得分:0)

您可以通过这种方式从您的数据中获取(大致)1000个均匀间隔的点:

n = len(data)
pyplot.plot(data[::n/1000])