[python] 파이썬으로 오디오 파일의 리버브(잔향) 효과를 추가하는 방법
오디오 파일에 리버브(잔향) 효과를 추가하면 음악이나 음성에 깊이와 공간감을 줄 수 있습니다. 이러한 효과는 파이썬을 사용하여 쉽게 구현할 수 있습니다. 이번 블로그에서는 파이썬을 사용하여 오디오 파일에 리버브 효과를 추가하는 방법을 알아보겠습니다.
필요한 라이브러리 설치
먼저, 파이썬으로 오디오 파일을 다루기 위해 다음과 같은 라이브러리를 설치해야 합니다.
pip install pydub scipy numpy
오디오 파일 로드하기
리버브 효과를 추가할 오디오 파일을 먼저 로드해야 합니다. 이를 위해 pydub
라이브러리의 AudioSegment
클래스를 사용합니다.
from pydub import AudioSegment
audio = AudioSegment.from_file("audio.wav")
audio.wav
는 리버브 효과를 추가할 오디오 파일의 경로입니다.
리버브 효과 추가하기
리버브 효과를 추가하는 방법은 파이썬의 scipy
라이브러리의 signal
모듈을 사용합니다. 다음은 리버브 효과를 추가하는 함수의 예입니다.
import numpy as np
from scipy import signal
def add_reverb(audio, rev_time, decay):
sample_rate = audio.frame_rate
data = np.array(audio.get_array_of_samples())
impulse = np.zeros(rev_time * sample_rate)
impulse[0] = 1
rev_response = signal.lfilter([1], [1, -decay], impulse)
convolved = np.convolve(data, rev_response)
convolved = convolved.astype(np.int16)
return AudioSegment(data=convolved, frame_rate=sample_rate, sample_width=2, channels=1)
위의 함수는 add_reverb
라는 이름으로 정의되며, audio
는 입력 오디오 파일을 나타내는 AudioSegment
객체입니다. rev_time
은 리버브 시간이고, decay
는 리버브 감쇠 정도를 나타냅니다.
리버브 효과 적용하기
이제 리버브 효과를 추가하는 함수를 호출하여 결과 오디오를 얻을 수 있습니다.
reverb_audio = add_reverb(audio, rev_time=2, decay=0.5)
reverb_audio.export("reverb_audio.wav", format="wav")
위의 코드는 add_reverb
함수를 호출하여 리버브 효과가 적용된 오디오를 reverb_audio.wav
파일로 내보냅니다. rev_time
과 decay
값을 조정하여 효과의 강도와 성격을 조절할 수 있습니다.
이제 파이썬으로 오디오 파일에 리버브 효과를 추가하는 방법에 대해 알아보았습니다. 이를 응용하여 자신만의 음악 혹은 음성 파일에 다양한 효과를 적용해보세요!