1

我有这个,

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()

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

4

2 回答 2

0

在将数据添加到绘图之前,使用 NumPy 之类的东西将数据重新采样到较低的频率。

于 2010-10-10T17:51:09.697 回答
0

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

n = len(data)
pyplot.plot(data[::n/1000])
于 2010-10-10T19:29:44.877 回答