[python] 파이썬을 사용하여 음악 스펙트럼 분석

음악을 들을 때 우리는 다양한 소리와 주파수를 경험합니다. 이러한 주파수들은 음악의 스펙트럼으로 표현됩니다. 파이썬을 사용하여 음악의 스펙트럼을 분석하는 방법을 살펴보겠습니다.

라이브러리 설치

스펙트럼 분석을 위해 librosamatplotlib 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.

pip install librosa matplotlib

음악 파일 불러오기

첫 번째 단계로 음악 파일을 파이썬에 불러옵니다. librosa 라이브러리를 사용하여 쉽게 음악 파일을 읽을 수 있습니다.

import librosa
filename = "music.mp3"
audio_data, sr = librosa.load(filename)

스펙트럼 분석

음악 파일을 성공적으로 불러왔다면, 이제 스펙트럼 분석을 수행할 준비가 되었습니다. librosastft 함수를 제공하여 음악 신호의 스펙트럼을 계산할 수 있습니다.

import librosa.display
import matplotlib.pyplot as plt

# 스펙트로그램 계산
D = librosa.stft(audio_data)
# 스펙트로그램 플롯
librosa.display.specshow(librosa.amplitude_to_db(D, ref=np.max), y_axis='log', x_axis='time')
plt.title('Spectrogram')
plt.colorbar(format='%+2.0f dB')
plt.show()

결과 해석

위 코드를 실행하면 스펙트로그램이 플롯으로 출력됩니다. 스펙트로그램은 시간에 따른 주파수 컨텐츠를 시각적으로 나타냅니다. 세로 축은 주파수를 나타내며, 가로 축은 시간을 나타냅니다. 진한 색상은 해당 주파수에서의 강도를 나타냅니다. 이를 통해 음악의 스펙트럼을 분석할 수 있습니다.

결론

파이썬의 librosa 라이브러리를 사용하여 음악의 스펙트럼을 분석하는 방법을 살펴보았습니다. 스펙트럼 분석을 통해 음악의 주파수 컨텐츠를 시각적으로 확인할 수 있습니다. 이를 통해 음악 분석이나 음악 정보 추출 등 다양한 응용이 가능합니다.