Я читаю 264 не стерео (моноканальных) аудиофайла, используя pysoundfile . Каждая операция чтения возвращает частоту дискретизации (число) и данные канала, которые имеют некоторую форму (x,)
.
После прочтения всех файлов и сохранения формы данных канала в массиве 1d numpy я вычисляю среднюю форму данных канала. Он равен 2058043.0
.
import soundfile as sf
sound_shapes = np.zeros(len(sound_files))
for index, sound_file in enumerate(sound_files):
data, samplerate = sf.read(SOUND_FILE_DIR + sound_file)
np.put(sound_shapes, index, data.shape[0])
Теперь я хочу создать матрицу формы 2058043 x 264
, где 2058043
представляет срединную форму данных канала, а 264
представляет количество аудиофайлов.
Теперь, когда я пытаюсь создать матрицу, используя:
sound_vectors = np.zeros(shape=(column_length, len(sound_files)))
# column_length = 2058043
# sound_files = 264
Я получаю ошибку памяти. Я понятия не имею, как этого избежать.
Чтобы помочь мне лучше понять некоторые вещи, я хотел создать векторы входных объектов в качестве входных данных для нейронной сети и хотел узнать, сможет ли она научиться различать разные звуки. Итак, я пытался создать матрицу, в которой количество объектов будет равным общему количеству звуковых файлов, которые у меня есть, а общее количество объектов будет срединной формой данных канала. Как я мог избежать этой ошибки? Есть ли лучший способ подготовить входные функции для нейронной сети?