打开1GB波形文件会导致内存错误

时间:2017-05-24 14:12:16

标签: python numpy wave

Hello stackoverflow用户,
目前我面临以下问题,我有一个打开.wav文件的功能,它返回采样率,长度和样本。我已经尝试过它将是小文件,它工作得很好,现在我正在尝试加载1GB wav文件并且它返回我" MemoryError未被用户代码"处理窗口。 这是我的功能:

def OpenWavFile(fileName):
    waveFile = wave.open(fileName, 'r')
    sampFreq = waveFile.getframerate()
    length = waveFile.getnframes()

    byteList = np.fromstring(waveFile.readframes(length), dtype = np.int16)

    return sampFreq, length, byteList

我用断点试过它,我注意到长度变量的值是472289280,它适合int范围。我在这个位置dtype = np.int16尝试了这个函数,它有不同的类型。

numpy有限制吗?或问题出在哪里?

笔记本电脑上的RAM大小为8Gb。

1 个答案:

答案 0 :(得分:1)

所以根据上面的建议,我检查了Python的版本,它是32位,我将它改为64,现在可以正常工作