[파이썬] pydub 오디오 파일 일괄 변환

오디오 파일을 다양한 형식으로 변환해야 하는 경우가 종종 있습니다. 이러한 작업을 수동으로 처리하면 시간이 많이 걸리고 번거로울 수 있습니다. 그러나 파이썬의 PyDub 라이브러리를 사용하면 오디오 파일을 일괄로 변환하는 프로세스를 자동화할 수 있습니다.

PyDub이란?

PyDub은 파이썬에서 오디오 파일을 다루기 위한 간단하고 사용하기 쉬운 라이브러리입니다. 이 라이브러리는 오디오 파일을 잘라내기, 이어 붙이기, 형식 변환하기, 음량 조정하기 등 다양한 작업을 수행할 수 있습니다. PyDub은 FFmpeg 라이브러리에 의존하므로 우선 FFmpeg을 설치해야 합니다.

PyDub 설치하기

먼저, PyDub을 설치하기 위해 다음 명령어를 사용하여 필요한 패키지를 설치합니다:

pip install pydub

그리고 FFmpeg을 설치합니다. 각 운영체제에 맞는 FFmpeg 설치 방법은 다음과 같습니다:

brew install ffmpeg
sudo apt-get install ffmpeg

오디오 파일 일괄 변환하기

이제 PyDub을 사용하여 오디오 파일을 일괄로 변환해 보겠습니다. 예를 들어, “input” 폴더에 있는 모든 WAV 파일을 MP3로 변환하는 코드는 다음과 같습니다:

from pydub import AudioSegment
import os

input_folder = 'input'
output_folder = 'output'
output_format = 'mp3'

# output 폴더가 없으면 생성합니다
os.makedirs(output_folder, exist_ok=True)

# input 폴더에 있는 모든 파일에 대해 변환을 수행합니다
for filename in os.listdir(input_folder):
    if filename.endswith('.wav'):
        file_path = os.path.join(input_folder, filename)
        output_path = os.path.join(output_folder, f'{os.path.splitext(filename)[0]}.{output_format}')
        
        # WAV 파일을 로드하고 MP3로 변환합니다
        audio = AudioSegment.from_file(file_path, format='wav')
        audio.export(output_path, format=output_format)

print('오디오 파일 변환 완료')

이 코드를 실행하면 “input” 폴더에 있는 모든 WAV 파일이 “output” 폴더에 MP3 형식으로 저장됩니다. 파일 이름은 원래 파일 이름에서 형식을 변경한 것입니다.

다양한 포맷으로 파일을 변환하고 싶다면 output_format 변수를 원하는 형식으로 변경하면 됩니다.

PyDub은 다른 유용한 기능들도 가지고 있으므로, 필요에 따라 자세한 문서를 참조하면 좋습니다.