我正在该样本中存在的每一帧绘制一个音频样本幅度,如下所示:
sound = AudioSegment.from_mp3("test.mp3")
print(len(sound))
print(len(sound.raw_data))
data = np.fromstring(sound.raw_data, dtype=np.int16)
left, right = data[0::2], data[1::2]
plt.plot(left)
在此过程中,我注意到声音 AudioSegment 的长度与声音 raw_data 不同,为什么会这样?
而且随着 test.mp3 持续时间变长,x 轴上的刻度线会达到几百万,所以我的疑问是我们如何以较低的采样率绘制数据,或者换句话说,如何减少数据数组中的样本数量?
这是我的第一个想法:计算音频数据数组中前 10 或 20 个样本的平均值,并将它们表示为一个点,这样我们就可以减少样本数量。但是,这可能会导致一些信息丢失和性能问题。
python有没有其他方法可以做到这一点?