我正在使用pysoundfile读取264个非立体声(单声道)音频文件。每个读取操作都会返回采样率(数字)和具有(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
我收到内存错误。我不知道如何避免这种情况。
为帮助我更好地理解某些知识,我想构建输入特征向量作为神经网络的输入,并想了解它是否可以学习区分不同的声音。因此,我试图创建一个矩阵,其中特征的数量将是我拥有的声音文件总数,总特征将是通道数据的中间形状。如何避免此错误?有没有更好的方法为神经网络准备输入功能?