[파이썬] pydub 오디오 스플리터 기능

pydub

pydub은 파이썬 라이브러리로, 오디오 파일을 쉽게 편집하고 처리할 수 있는 기능을 제공합니다. 오디오 파일의 분리(split), 합병(merge), 변환(convert) 등 다양한 작업을 할 수 있어 오디오 처리 작업에 큰 도움을 줍니다.

이번에는 pydub의 오디오 스플리터(splitter) 기능을 활용하는 방법을 알아보겠습니다.

오디오 스플리터 기능

오디오 스플리터(splitter)는 하나의 오디오 파일을 여러 개의 작은 오디오 조각으로 분리해주는 기능입니다. 이를 통해 오디오 파일의 일부분만 따로 추출하거나, 오디오 파일을 여러 조각으로 나눌 수 있습니다. 이 기능은 음악 편집, 음성 인식, 음원 샘플링 등 다양한 분야에서 유용하게 활용될 수 있습니다.

pydub을 사용한 오디오 스플리팅 예제 코드

다음은 pydub을 사용하여 오디오 파일을 스플리팅하는 예제 코드입니다.

from pydub import AudioSegment

def split_audio(input_file, output_folder, duration):
    audio = AudioSegment.from_file(input_file)

    # 스플리트할 길이만큼으로 분할
    chunks = make_chunks(audio, duration * 1000)

    # 파일명을 위한 카운터
    counter = 0

    # 모든 조각을 저장
    for chunk in chunks:
        output_file = f"{output_folder}/chunk{counter}.wav"
        chunk.export(output_file, format="wav")
        print(f"Saved {output_file}")
        counter += 1

위 코드는 split_audio라는 함수를 정의하고 있습니다. 이 함수는 입력 파일 경로, 출력 폴더 경로, 스플리팅할 시간(duration)을 매개변수로 받아와서 해당 작업을 수행합니다.

먼저 AudioSegment.from_file을 사용하여 입력 파일을 오디오 객체로 변환합니다. 그 다음 make_chunks 함수를 사용하여 오디오를 지정된 길이로 분할합니다. 이때, duration 매개변수는 초단위로 지정되어야 합니다.

분할된 오디오 조각은 export 메서드를 사용하여 해당 경로에 WAV 형식으로 저장됩니다. 저장될 파일명은 각각의 조각마다 chunk{counter}.wav와 같은 형식으로 생성되며, counter 변수에 의해 카운팅됩니다.

위 예제 코드를 실행하면 input_file에 지정한 오디오 파일이 output_folder에 스플리팅된 조각들로 저장됩니다.

마무리

pydub의 오디오 스플리터 기능을 사용하여 오디오 파일을 간편하게 분리할 수 있습니다. 이를 활용하면 다양한 오디오 처리 작업을 효율적으로 수행할 수 있습니다. pydub 라이브러리에는 더 많은 오디오 처리 기능들이 제공되기 때문에, 관심이 있다면 공식 문서를 참고하시기 바랍니다.