python - pydub-内存错误

标签 python mp3 pydub

我正在尝试使用 python 和 pydub 库将大型播客 mp3 文件分割成更小的 5 分钟 block 。这是我的代码:

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)

这对我来说表明操作开始时有足够的内存,尽管我很高兴被证明是错误的。

最佳答案

是的,最可能的原因是您耗尽了可用内存。在执行该语句之前您知道有多少可用内存吗?考虑在失败语句之前插入系统调用(请参阅os包)。

关于python - pydub-内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45644560/

相关文章:

python - 有没有办法使用 Motor 定义 MongoDB 模式?

python - NARX PyNeurgen 库

python - 需要什么样的对象作为 mutagen.mp4.MP4Cover 中的第一个参数?

python - 拆分/加入 mp3 时 pydub 音频故障

python-3.x - Pydub音频导出一开始就没有声音?

python - EV3 : How to import ev3dev for Python

python - Flask 获取每个 api 的请求调用时间

javascript - 如何在基于html的网站中添加konami代码?

Javascript:如何确定mp3文件的音乐键

python - 在 Pydub 和 Librosa 之间转换音频文件