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

오디오 파일을 처리할 때 종종 노이즈가 포함되어 있는 경우가 있습니다. 노이즈는 음성이나 음악의 품질을 저하시키므로, 이를 제거하는 것은 중요합니다. 파이썬을 사용하여 오디오 파일의 노이즈를 제거하는 방법에 대해 알아보겠습니다.

라이브러리 설치

오디오 파일을 처리하기 위해 다음의 라이브러리를 설치해야 합니다.

pip install pydub
pip install noisereduce

오디오 파일 불러오기

from pydub import AudioSegment

audio = AudioSegment.from_file("audio.wav", format="wav")

위의 코드에서는 pydub 라이브러리의 AudioSegment 클래스를 사용하여 오디오 파일(“audio.wav”)을 불러왔습니다.

노이즈 제거하기

import noisereduce as nr
import numpy as np

# 파이썬의 numpy 배열로 변환
audio_array = np.array(audio.get_array_of_samples())

# 노이즈를 추정하기 위해 오디오의 일부분을 선택
noisy_part = audio_array[5000:10000]

# 노이즈 추정
noise = nr.estimate_noise(noisy_part, method='sample')

# 노이즈 제거
cleaned_audio = nr.reduce_noise(audio_array, noise)

# 제거된 오디오를 파일로 저장
cleaned_audio.export("cleaned_audio.wav", format="wav")

위의 코드에서는 noisereduce 라이브러리를 사용하여 오디오 파일의 노이즈를 제거했습니다. 먼저, audio_array라는 numpy 배열로 오디오를 변환하고, 일부분을 선택하여 노이즈를 추정합니다. 그런 다음 reduce_noise 함수를 사용하여 노이즈를 제거하고, 제거된 오디오를 새로운 파일로 저장합니다.

결과 확인하기

cleaned_audio = AudioSegment.from_file("cleaned_audio.wav", format="wav")
cleaned_audio.export("cleaned_audio.mp3", format="mp3")

위의 코드에서는 제거된 오디오를 다시 불러오고, MP3 형식으로 저장하는 예시입니다. 이를 통해 노이즈가 제거된 결과를 확인할 수 있습니다.

마무리

이처럼 파이썬을 사용하여 오디오 파일의 노이즈를 제거할 수 있습니다. 이 코드를 활용해 자신의 오디오 파일에 노이즈 제거 기능을 추가해 보세요.

참고 자료