1
こんにちはstackoverflowユーザー
現在、私は以下の問題に直面しています.wavファイルを開く機能があり、サンプルレート、長さ、サンプルを返します。私はそれが小さなファイルをしようとした、それは完璧に働いた今、私は1GBのwavファイルを読み込もうとしていると私は "MemoryErrorはユーザーコード"ウィンドウで処理されていません返します。私はブレークポイントでそれを試してみましたが、私は長さ変数の値がint
範囲に収まるものを、472289280であることに気づい1GBのwaveファイルを開くとメモリエラーが発生する
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
: はここに私の関数です。私はこの位置でdtype = np.int16
でこのタイプの機能を試しましたが、タイプは異なります。
numpyの制限はありますか?または、どこに問題がありますか?
私のラップトップのRAMサイズは8Gbです。
機能するようになりましたあなたは、オープン(ファイル名、「R」で、 '構文でみました)wavefileとして:... '? –
例外をキャッチして検査しましたか? https://docs.python.org/2/library/exceptions.html#exceptions.MemoryError – Attie
内部でオーディオサンプルを保存していますか?生のバイナリ形式で格納されていないと、使用されるメンバの量が大幅に増える可能性があります。 – pcarter