[파이썬] pydub 오디오 노이즈 제거

Audio Noise

오디오 노이즈는 음원 또는 녹음에서 발생하는 예기치 않은 외부 소음으로, 음질을 저하시키고 청취 경험을 저해할 수 있습니다. 이러한 노이즈를 제거하는 것은 음악 프로듀서, 오디오 엔지니어 및 오디오 분석가에게 중요한 과제입니다.

Python에서는 pydub 라이브러리를 사용하여 오디오 노이즈를 제거할 수 있습니다. pydub는 오디오 파일을 처리하기위한 간단하고 사용하기 쉬운 인터페이스를 제공합니다. 이 라이브러리를 사용하여 오디오 파일에서 노이즈를 제거하는 방법을 살펴보겠습니다.

설치

먼저 pydub 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 pip를 통해 pydub를 설치할 수 있습니다.

pip install pydub

코드 예제

pydub를 사용하여 오디오 파일에서 노이즈를 제거하는 코드 예제를 제공합니다. 이 예제에서는 오디오 파일을 로드하고, 노이즈를 제거한 후 새로운 파일로 저장합니다.

from pydub import AudioSegment
from pydub.silence import split_on_silence

# 오디오 파일 로드
audio = AudioSegment.from_file("input.wav", format="wav")

# 노이즈 제거를 위해 오디오를 작은 조각으로 분리
chunks = split_on_silence(audio, min_silence_len=500, silence_thresh=-16)

# 각 조각을 하나의 오디오 파일로 변환
output = AudioSegment.empty()
for chunk in chunks:
    output += chunk

# 노이즈가 제거된 오디오 파일 저장
output.export("output.wav", format="wav")

코드 설명

코드의 첫 번째 줄에서는 pydub와 split_on_silence 함수를 import 합니다. 또한, 오디오 파일과 노이즈를 제거한 파일의 경로를 수정해야 합니다.

두 번째 줄에서는 오디오 파일을 로드합니다. AudioSegment.from_file 함수를 사용하고, format 매개변수를 통해 파일 형식을 지정합니다.

세 번째 줄에서는 split_on_silence 함수를 사용하여 노이즈를 제거하기 위해 오디오를 작은 조각으로 분리합니다. min_silence_len 매개변수는 조용한 구간의 최소 길이를 지정하고, silence_thresh는 조용한 구간임을 결정하는 dB 임계값을 지정합니다.

네 번째 줄에서는 각 작은 오디오 조각을 하나의 오디오 파일로 결합합니다. output 변수는 새로운 노이즈가 제거된 오디오를 저장할 수 있도록 빈 오디오로 초기화됩니다.

마지막 줄에서는 export 함수를 사용하여 노이즈가 제거된 오디오 파일을 저장합니다. format 매개변수를 통해 저장할 파일 형식을 지정합니다.

이제 코드를 실행하면 오디오 파일에서 노이즈가 제거되고, 새로운 노이즈가 제거된 오디오 파일이 저장됩니다.

이러한 방식으로 pydub를 사용하여 Python에서 오디오 노이즈를 제거할 수 있습니다. pydub은 여러 가지 오디오 처리 작업을 수행할 수 있는 강력하고 유연한 라이브러리입니다.

참고: 오디오 노이즈를 완전히 제거하는 것은 어려울 수도 있으며, 노이즈의 종류와 강도에 따라 다양한 결과를 얻을 수 있습니다. 프로젝트 요구 사항에 따라 추가 처리가 필요할 수 있습니다.