我正在尝试使用pydub模块从一些有声读物的章节中删去一些介绍/输出音频。所有文件的大小都在9-19MB之间。 它管理一些文件,然后返回MemoryError。我有8BG的内存,所以我想我一定是做了一些非常糟糕的事情才导致了这个。你知道吗
我在其他程序都关闭的情况下运行过,没什么区别。我试着在任务管理器中观察我的内存使用情况。通常在350MB左右,有时峰值在900-1000MB之间,尤其是在每个文件的末尾。你知道吗
from pydub import AudioSegment
import os, eyed3
os.chdir(r'C:\Users\User\Music\audiobooks podcasts\Narnia\Edit Testing')
NarniaList = os.listdir()
for i in NarniaList[:10]:
print('Ammending ' + i + '...')
track = AudioSegment.from_mp3(i)
newcut = track[75000:-59000]
newtitle = 'New'+i
newcut.export(newtitle,format="mp3")
audiofile = eyed3.load(i)
newfile = eyed3.load(newtitle)
newfile.tag.artist = audiofile.tag.artist
newfile.tag.album = audiofile.tag.album
newfile.tag.title = audiofile.tag.title
newfile.tag.save()
它每次至少管理2个文件,最好的是5个。 据我所知,我不会留下以前的文件完成后打开,但我是一个完全的新手,所以我不太确定。非常感谢您的建议。你知道吗
代码泄漏内存的一个地方是:
export
返回文件句柄。现在,文档中说将AudioSegment对象写入文件–返回输出文件的文件句柄(不过,您不必对它做任何操作)。,这是不正确的,如this bug report中所述。必须关闭文件句柄。你知道吗目前,在我看来,所有来自
export
的字节都在泄漏。既然你正在加载mp3,那就太多了-而且你会出现内存错误。你知道吗如果这不起作用,请执行以下操作:
这将使您在处理两个音频文件后获得前10名内存消耗者。你知道吗
相关问题 更多 >
编程相关推荐