Экспортировать (но не сохранять) аудиофайл в PyDub?

Библиотека PyDub, на мой взгляд, идеально подходит для преобразования аудиоформатов. Недавно я использовал его для написания аудиоконвертера командной строки для преобразования около 200 аудиофайлов, и это избавило меня от необходимости покупать или искать аудиоконвертер, который позволил бы мне ставить в очередь песни и другие аудиофайлы для конвертации. Но я быстро заметил, что он заменил мои аудиофайлы. Теперь для меня это было идеально. Это было здорово. Но что, если я не хочу, чтобы PyDub заменял аудиофайлы, а дублировал их, но в другом формате? Я мог бы просто скопировать файлы в каталог и преобразовать их, но нет ли способа сделать это из PyDub? Я изучил это и не смог найти способ сделать это, а также не смог найти вопрос по этому поводу, так что, возможно, это не очень распространенная вещь.

Спасибо!


person Eamonn    schedule 06.07.2014    source источник
comment
Вы всегда можете добавить несколько дополнительных строк, чтобы сделать копию файлов перед их преобразованием.   -  person user2963623    schedule 07.07.2014
comment
Я упоминал об этом, но мне было интересно, могу ли я сделать это из самого PyDub. Тем не менее, спасибо! :D   -  person Eamonn    schedule 07.07.2014


Ответы (2)


При экспорте аудиосегмента вы всегда можете указать новое имя для файла (или использовать то же имя, но в другой папке).

from pydub import AudioSegment

song = AudioSegment.from_file("/path/to/file.mp3", format="mp3")
song.export("/path/to/new/filename.mp4", format="mp4")
person Jiaaro    schedule 07.07.2014
comment
Именно то, что я искал! Благодарю вас! :D - person Eamonn; 08.07.2014
comment
Можем ли мы сделать ту же операцию и сохранить объект аудиопотока в памяти вместо записи в файл? - person Mithun Arunan; 21.06.2018
comment
Как сохранить несколько чанков? - person abdoulsn; 10.11.2019

Надеюсь это поможет:

    myaudio = AudioSegment.from_mp3("XXXXX/y.mp3")
    chunk_length_ms = 1000000  # pydub calculates in millisec
    chunks = make_chunks(myaudio, chunk_length_ms)  # Make chunks of one sec

    chunks.export('path where file needs to be exported' + chunks, format='mp3')  
person Chaitanya Mallepudi    schedule 28.05.2020