[python] 파이썬을 사용하여 사운드 이퀄라이저 제작

사운드 이퀄라이저는 음악이나 오디오 파일의 주파수를 조절하는 도구로, 원하는 소리 품질을 얻을 수 있게 해줍니다. 이번 블로그 포스트에서는 파이썬을 사용하여 사운드 이퀄라이저를 만드는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치

사운드 이퀄라이저를 만들기 위해 파이썬에서는 numpymatplotlib 라이브러리가 필요합니다. 이 두 가지 라이브러리를 설치하기 위해서는 다음의 명령어를 터미널에서 실행해야 합니다.

pip install numpy matplotlib

사운드 파일 불러오기

먼저, 사운드 파일을 파이썬으로 불러옵니다. 파이썬에서 사운드 파일을 처리하기 위해 scipy 라이브러리를 사용할 수 있습니다. 다음은 WAV 파일을 불러오는 예제 코드입니다.

import scipy.io.wavfile as wav

# WAV 파일 경로 설정
file_path = "audio.wav"

# WAV 파일 불러오기
sample_rate, data = wav.read(file_path)

sample_rate 변수에는 사운드 파일의 샘플 레이트(주파수)가 저장되고, data 변수에는 실제 사운드 데이터가 저장됩니다.

주파수 분석

이퀄라이저의 핵심은 주파수 분석입니다. 사운드 데이터를 주파수 영역으로 변환하여 분석하는 것이 필요합니다. 이를 위해 numpy 라이브러리의 FFT (Fast Fourier Transform) 기능을 사용할 수 있습니다. 다음은 주파수 분석을 수행하는 예제 코드입니다.

import numpy as np

# FFT 수행
fft_data = np.fft.fft(data)

# 주파수 영역 변환
freqs = np.fft.fftfreq(len(fft_data), 1/sample_rate)

fft_data 변수에는 FFT를 통해 얻은 주파수 영역의 데이터가 저장되고, freqs 변수에는 해당 주파수에 해당하는 값들이 저장됩니다.

이퀄라이저 제작

주파수 분석을 통해 얻은 주파수 데이터를 이용하여 이퀄라이저를 제작할 수 있습니다. 주파수 데이터를 시각화하기 위해 matplotlib 라이브러리를 사용할 수 있습니다. 다음은 이퀄라이저를 시각화하는 예제 코드입니다.

import matplotlib.pyplot as plt

# 이퀄라이저 그래프 설정
plt.figure(figsize=(10, 6))
plt.title("Sound Equalizer")
plt.xlabel("Frequency (Hz)")
plt.ylabel("Amplitude")

# 이퀄라이저 그래프 그리기
plt.plot(freqs, np.abs(fft_data))
plt.show()

위 코드를 실행하면 주파수에 따른 사운드 데이터의 진폭을 확인할 수 있는 그래프가 출력됩니다.

결론

이번 포스트에서는 파이썬을 사용하여 사운드 이퀄라이저를 제작하는 방법을 알아보았습니다. 사운드 파일을 불러오고, 주파수 분석을 통해 주파수 영역 데이터를 얻은 후, 이를 시각화하여 이퀄라이저를 제작할 수 있습니다. 이를 활용하여 원하는 소리 품질을 얻을 수 있습니다.

참고 자료