[python] 파이썬으로 오디오 파일의 노이즈를 자동으로 제거하는 방법

오디오 파일에 노이즈가 포함되어 있는 경우, 이를 제거하여 더 깨끗한 소리를 얻을 수 있습니다. 이번 포스트에서는 파이썬을 사용하여 오디오 파일의 노이즈를 자동으로 제거하는 방법을 알아보겠습니다.

필요한 라이브러리 설치하기

먼저, 오디오 파일을 처리하기 위해 필요한 라이브러리를 설치해야 합니다. 파이썬에서는 Librosa라는 오디오 처리 라이브러리를 사용할 수 있습니다. 다음 명령어를 사용하여 Librosa를 설치합니다.

pip install librosa

노이즈 제거 알고리즘 적용하기

Librosa를 사용하여 오디오 파일의 노이즈를 제거하는 방법은 다양하지만, 여기서는 Spectral Subtraction 알고리즘을 사용하도록 하겠습니다. 이 알고리즘은 주파수 영역에서 노이즈와 신호의 분리를 수행하여 노이즈를 제거하는 방식입니다.

import librosa

# 오디오 파일 불러오기
audio_file = 'audio.wav'
signal, sr = librosa.load(audio_file)

# 스펙트로그램 계산
stft = librosa.stft(signal)
stft_noise = librosa.stft(signal_noise)

# 노이즈 추출
noise = librosa.istft(stft_noise)

# 신호에서 노이즈 제거
signal_clean = signal - noise

# 오디오 파일 저장
librosa.output.write_wav('audio_clean.wav', signal_clean, sr)

위의 코드에서 audio.wav는 노이즈가 포함된 오디오 파일의 경로입니다. librosa.load() 함수를 사용하여 오디오 파일을 불러온 후, librosa.stft() 함수를 사용하여 스펙트로그램을 계산합니다. 그리고 librosa.istft() 함수를 사용하여 노이즈를 추출하고, 신호에서 노이즈를 제거하여 audio_clean.wav로 저장합니다.

실행하기

위의 코드를 실행하기 전에, 파이썬 환경에 librosa 라이브러리가 설치되어 있어야 합니다. 그리고 노이즈가 포함된 오디오 파일을 준비해야 합니다. audio.wav 파일을 준비하고, 위의 코드를 실행하여 노이즈가 제거된 오디오 파일을 생성하면 됩니다.

마무리

위에서 알아본 방법은 파이썬을 사용하여 오디오 파일의 노이즈를 자동으로 제거하는 간단한 방법입니다. Librosa 라이브러리를 사용함으로써 더욱 쉽게 오디오 파일을 처리할 수 있습니다. 노이즈 제거를 통해 더 깨끗한 소리를 얻어보세요!