Ошибка чтения больших файлов с помощью AudioSegment - PullRequest
0 голосов
/ 03 августа 2020

Когда я пытаюсь прочитать mp3-файл длительностью 55 минут и размером 22 МБ с модулем AudioSegment в Python. Я получаю эту ошибку памяти.

Traceback (most recent call last):
  File "D:\...\pydev\pydevd.py", line 1448, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "D:\...\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "D:/.../Audio_to_text/2Aug.py", line 112, in <module>
    audio_file = AudioSegment.from_file(file)
  File "C:\...\Python\Python38-32\lib\site-packages\pydub\audio_segment.py", line 729, in from_file
    obj = cls._from_safe_wav(BytesIO(p_out))
  File "C:\...\Python\Python38-32\lib\site-packages\pydub\audio_segment.py", line 761, in _from_safe_wav
    obj = cls(data=file)
  File "C:\...\Python\Python38-32\lib\site-packages\pydub\audio_segment.py", line 222, in __init__
    wav_data = read_wav_audio(data)
  File "C:\...\Python\Python38-32\lib\site-packages\pydub\audio_segment.py", line 132, in read_wav_audio
    data[pos:pos + data_hdr.size])
MemoryError
python-BaseException

Я уверен, что эта ошибка не из-за IDE, поскольку я пробовал ее на разных IDE и получил аналогичную ошибку.

Это должно что-то делать с самим модулем AudioSegment. Отладчик указывает на эти строки AudioSegment.py

line 729, in from_file obj = cls._from_safe_wav(BytesIO(p_out))

line 761, in _from_safe_wav obj = cls(data=file)

line 222, in __init__ wav_data = read_wav_audio(data)

line 132, in read_wav_audio data[pos:pos + data_hdr.size]) 

Мне нужна помощь, есть ли способ решить эту ошибку AudioSegment? Если нет, то какие у меня есть другие лучшие варианты для обработки файлов длиной более часа? Я хочу разделить эти длинные файлы на части по 10-15 минут!

Моя Python версия - 3.8.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...