2017-05-24 7 views
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です。

+0

機能するようになりましたあなたは、オープン(ファイル名、「R」で、 '構文でみました)wavefileとして:... '? –

+2

例外をキャッチして検査しましたか? https://docs.python.org/2/library/exceptions.html#exceptions.MemoryError – Attie

+0

内部でオーディオサンプルを保存していますか?生のバイナリ形式で格納されていないと、使用されるメンバの量が大幅に増える可能性があります。 – pcarter

答えて

0

は、したがって、上記の推奨に従って、私はバージョンのPythonをチェックして、それが32ビットだった、私は64にそれを変更し、それが

関連する問題