私は大きなpodcast mp3ファイルをpythonとpydubライブラリを使って小さな5分のチャンクに分割しようとしています。これは私のコードです:pydub - memoryerror
folder = r"C:\temp"
filename = r"p967.mp3"
from pydub import AudioSegment
sound = AudioSegment.from_mp3(folder + "\\" + filename)
これは小さなファイルでは問題ありませんが、大規模なポッドキャストでは100mb +に興味があります。これにより、次のエラーが返されます。
Traceback (most recent call last):
File "C:\temp\mp3split.py", line 6, in <module>
sound = AudioSegment.from_mp3(folder + "\\" + filename)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 522, in from_mp3
return cls.from_file(file, 'mp3', parameters)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 511, in from_file
obj = cls._from_safe_wav(output)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 544, in _from_safe_wav
return cls(data=file)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 146, in __init__
data = data if isinstance(data, (basestring, bytes)) else data.read()
MemoryError
これはライブラリの制限ですか?私はこれを達成するための別のアプローチを使用する必要がありますか?
実行時にメモリの状態を確認するために、次のコードを追加します。
import psutil
print psutil.virtual_memory()
この版画:
svmem(total=8476975104L, available=5342715904L, percent=37.0 used=3134259200L, free=5342715904L)
これは私が間違って証明するために満足していても、メモリの多くは、運転開始時があることを私に示唆しています。
ありがとうございます。他の人のために、 'svmem'は利用可能な仮想メモリを報告します。これは、利用可能な約5Gb、必要なものの50倍を示しています。 – Prune