Я хочу разобрать волновой файл на небольшие фрагменты, собрать его в другом порядке и затем записать на диск. Кажется, у меня возникли проблемы с его написанием после повторной сборки частей, поэтому сейчас я просто пытаюсь отладить этот раздел, а об остальном позабочусь позже. В основном я читаю исходный wav в двумерный массив 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 похож на стереоданные с двумя исключениями: 1. в начале добавлено [0,0]. 2. Он на 88 сэмплов короче, потому что len(stereo_data)/nparts не делится без остатка.
Когда я пытаюсь прослушать результирующий файл eave new_data, все, что я слышу, это тишина, что, как мне кажется, не имеет особого смысла.
Спасибо за помощь! омер
stereo_data
иnew_data
? - person Jaime   schedule 03.07.2013