首页 > 解决方案 > Python pydub AudioSegment MemoryError

问题描述

我对 Python 很陌生,在尝试从 44 MB .mp3 音频文件创建 AUdioSegment 对象时遇到了 MemoryError 问题。在处理我拥有的大多数音频文件时,我没有任何问题,但除了这个之外,它们都小于 1 MB。这就是我现在要做的所有事情:

audio = AudioSegment.from_file(filepath, format="mp3")

这是错误的完整输出:

Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Users\Owner\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\Owner\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Owner\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 1366, in _readerthread
    buffer.append(fh.read())
MemoryError

我不认为 44 MB 的文件会导致 MemoryError,但显然我弄错了,或者在我不知道的背景中发生了其他事情。我尝试在使用 AudioSegment 时查找与内存相关的问题,它们似乎都在处理更大的文件。任何帮助,将不胜感激。谢谢!

标签: pythonaudiomemorypydub

解决方案


一个 50mb 的文件有这个确切的问题。通过安装 64 位 Python 修复它。出于某种原因,我有 32 位版本,它会耗尽内存。64 位版本修复了所有问题,我可以处理更大的文件。


推荐阅读