[python] 파이썬으로 오디오 파일의 주파수 스펙트럼을 그리는 방법

오디오 파일의 주파수 스펙트럼을 시각화하여 분석하는 것은 음악, 음성 및 신호 처리와 같은 분야에서 매우 중요합니다. 파이썬은 이러한 분야에서 데이터 분석 및 시각화에 매우 유용한 도구입니다. 이번 포스트에서는 파이썬을 사용하여 오디오 파일의 주파수 스펙트럼을 그리는 방법을 알아보겠습니다.

필요한 라이브러리 설치

먼저, 주파수 스펙트럼을 그리기 위해 다음과 같은 라이브러리를 설치해야 합니다.

$ pip install numpy
$ pip install scipy
$ pip install matplotlib
$ pip install librosa

주파수 스펙트럼 그리기

이제 주파수 스펙트럼을 그리기 위한 코드를 작성해보겠습니다.

import numpy as np
import matplotlib.pyplot as plt
import librosa

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

# FFT(Fast Fourier Transform) 적용
fft = np.fft.fft(audio_data)

# 스펙트럼 계산
magnitude = np.abs(fft)
frequency = np.linspace(0, sr, len(magnitude))

# 그래프 그리기
plt.plot(frequency, magnitude)
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude')
plt.title('Frequency Spectrum of Audio')
plt.show()

위의 코드에서 audio_path 변수에는 분석하고자 하는 오디오 파일의 경로를 지정해주어야 합니다. 그리고 librosa.load() 함수를 사용하여 오디오 파일을 불러오고, np.fft.fft() 함수를 사용하여 FFT(Fast Fourier Transform)를 적용합니다. FFT를 적용하면 시간 영역의 오디오 데이터가 주파수 영역으로 변환됩니다.

변환된 주파수 영역의 스펙트럼은 magnitude 변수에 저장되며, frequency 변수에는 주파수 값들이 저장됩니다. 마지막으로 plt.plot() 함수를 사용하여 주파수 스펙트럼을 그래프로 그립니다.

실행

위의 코드를 실행하면 오디오 파일의 주파수 스펙트럼 그래프가 나타납니다. 그래프를 통해 오디오 파일의 주파수 분포를 시각화할 수 있습니다.

결론

파이썬을 사용하여 오디오 파일의 주파수 스펙트럼을 그리는 방법을 알아보았습니다. 주파수 스펙트럼은 오디오 분석 및 처리에 있어서 중요한 정보를 제공하므로, 이를 시각화하는 것은 매우 유용합니다. 파이썬과 관련 라이브러리를 활용하여 음악, 음성 등의 오디오 데이터를 분석하고 처리하는 데 활용할 수 있습니다.

참고 자료