[파이썬] pydub 오디오의 로우패스 및 하이패스 필터

오디오 처리를 위한 다양한 도구와 라이브러리가 있지만 pydub는 간편한 인터페이스와 다양한 기능으로 인기가 있는 라이브러리입니다. 이번 글에서는 pydub를 사용하여 오디오에 로우패스 필터와 하이패스 필터를 적용하는 방법에 대해 알아보겠습니다.

로우패스 필터 (Low-pass filter)

로우패스 필터는 원본 오디오 신호를 통과시키지 않고 저주파수 부분만 필터링하여 나머지 고주파수 부분을 제거하는 필터입니다. 이를 통해 저음 부분을 강조하거나, 고음 부분을 완화시킬 수 있습니다.

pydub에서 로우패스 필터를 적용하기 위해서는 low_pass_filter() 메서드를 사용합니다. 아래는 로우패스 필터를 적용하는 예제 코드입니다.

from pydub import AudioSegment
from pydub.effects import low_pass_filter

# 오디오 파일 불러오기
audio = AudioSegment.from_file("input.wav", format="wav")

# 로우패스 필터 적용
filtered_audio = low_pass_filter(audio, highfreq=1000)

# 필터링된 오디오 저장
filtered_audio.export("output.wav", format="wav")

위 코드에서 AudioSegment 객체를 생성하여 원본 오디오 파일을 로드한 후에 low_pass_filter() 메서드를 호출하면 됩니다. highfreq 인자를 사용하여 저주파수를 지정할 수 있습니다. 필터링된 오디오는 export() 메서드를 통해 저장할 수 있습니다.

하이패스 필터 (High-pass filter)

반대로 하이패스 필터는 원본 오디오 신호를 통과시키지 않고 고주파수 부분만 필터링하는 필터입니다. 이를 통해 고음 부분을 강조하거나, 저음 부분을 완화시킬 수 있습니다.

pydub에서 하이패스 필터를 적용하기 위해서는 high_pass_filter() 메서드를 사용합니다. 아래는 하이패스 필터를 적용하는 예제 코드입니다.

from pydub import AudioSegment
from pydub.effects import high_pass_filter

# 오디오 파일 불러오기
audio = AudioSegment.from_file("input.wav", format="wav")

# 하이패스 필터 적용
filtered_audio = high_pass_filter(audio, lowfreq=1000)

# 필터링된 오디오 저장
filtered_audio.export("output.wav", format="wav")

로우패스 필터와 마찬가지로 AudioSegment 객체를 생성한 후에 high_pass_filter() 메서드를 호출하여 필터를 적용합니다. lowfreq 인자를 사용하여 고주파수를 지정할 수 있습니다. 필터링된 오디오 역시 export() 메서드를 통해 저장할 수 있습니다.

pydub를 사용하여 로우패스 필터와 하이패스 필터를 적용하는 간단한 예제 코드를 설명했습니다. 이를 바탕으로 자신만의 오디오 처리를 해보세요!