我希望将波形文件解构为小块,以不同的顺序重新组合,然后将其写入磁盘。在重新组装后,我似乎在编写它时遇到了问题,所以现在我只是尝试调试这一部分,然后再担心其余的部分。基本上,我将原始 wav 读入 2D numpy 数组,将其分成 100 块存储在较小的 2D numpy 数组列表中,然后使用 vstack 垂直堆叠这些数组:
import scipy.io.wavfile as sciwav
import numpy
[sr,stereo_data] = sciwav.read('filename')
nparts = 100
stereo_parts = list()
part_length = len(stereo_data) / nparts
for i in range(nparts):
start = i*part_length
end = (i+1)*part_length
stereo_parts.append(stereo_data[start:end])
new_data = numpy.array([0,0])
for i in range(nparts):
new_data = numpy.vstack([new_data, stereo_parts[i]])
sciwav.write('new_filename', sr, new_data)
到目前为止,我验证了 new_data 看起来与 stereo_data 相似,但有两个例外: 1. 它在开头填充了 [0,0]。2. 由于 len(stereo_data)/nparts 不除而无余,因此缩短了 88 个样本。
当我尝试收听生成的 new_data eave 文件时,我听到的只是沉默,我认为这没有多大意义。
谢谢您的帮助!奥马尔