[파이썬] pydub 오디오 파일 일괄 변환
오디오 파일을 다양한 형식으로 변환해야 하는 경우가 종종 있습니다. 이러한 작업을 수동으로 처리하면 시간이 많이 걸리고 번거로울 수 있습니다. 그러나 파이썬의 PyDub 라이브러리를 사용하면 오디오 파일을 일괄로 변환하는 프로세스를 자동화할 수 있습니다.
PyDub이란?
PyDub은 파이썬에서 오디오 파일을 다루기 위한 간단하고 사용하기 쉬운 라이브러리입니다. 이 라이브러리는 오디오 파일을 잘라내기, 이어 붙이기, 형식 변환하기, 음량 조정하기 등 다양한 작업을 수행할 수 있습니다. PyDub은 FFmpeg 라이브러리에 의존하므로 우선 FFmpeg을 설치해야 합니다.
PyDub 설치하기
먼저, PyDub을 설치하기 위해 다음 명령어를 사용하여 필요한 패키지를 설치합니다:
pip install pydub
그리고 FFmpeg을 설치합니다. 각 운영체제에 맞는 FFmpeg 설치 방법은 다음과 같습니다:
- Windows: https://www.ffmpeg.org/download.html에서 Windows 버전의 FFmpeg을 다운로드하고 설치합니다. 그런 다음 FFmpeg을 시스템 경로에 추가합니다.
- macOS: Homebrew를 사용하여 FFmpeg을 설치합니다. 터미널에서 다음 명령어를 실행합니다:
brew install ffmpeg
- Linux: 패키지 관리자를 사용하여 FFmpeg을 설치합니다. Ubuntu에서는 다음과 같이 설치할 수 있습니다:
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은 다른 유용한 기능들도 가지고 있으므로, 필요에 따라 자세한 문서를 참조하면 좋습니다.