[python] 파이썬으로 오디오 파일의 음정 변화를 자동으로 추출하는 방법
오디오 파일의 음정 변화를 파이썬을 사용하여 자동으로 추출하는 방법을 알아보겠습니다. 이를 위해서는 파이썬에서 오디오 처리와 음악 이론에 대한 이해가 필요합니다.
1. 라이브러리 설치
음악 분석을 위해 다음의 파이썬 라이브러리를 설치해야 합니다.
pip install pydub
pip install essentia
pip install numpy
pip install matplotlib
pydub
: 오디오 파일을 처리하고 분석하는데 사용됩니다.essentia
: 비디오 및 오디오 신호 처리를 위한 라이브러리입니다.numpy
: 수학적 연산을 수행하는 데 사용됩니다.matplotlib
: 데이터 시각화에 사용되는 라이브러리입니다.
2. 오디오 파일 읽기
pydub
라이브러리를 사용하여 오디오 파일을 읽어옵니다.
from pydub import AudioSegment
audio = AudioSegment.from_file("audio.wav")
3. 음정 변화 추출
essentia
라이브러리를 사용하여 오디오의 음정 변화를 추출합니다. 음정 변화는 일련의 음의 주파수 변화로 나타납니다.
import numpy as np
import essentia.standard as es
def extract_pitch(audio):
audio_array = np.array(audio.get_array_of_samples())
sample_rate = audio.frame_rate
pitch_extractor = es.PredominantPitchMelodia(frameSize=2048, hopSize=128)
pitch, _ = pitch_extractor(audio_array.astype(np.float32), sample_rate)
return pitch
pitch = extract_pitch(audio)
4. 결과 시각화
matplotlib
라이브러리를 사용하여 추출한 음정 변화를 시각화합니다.
import matplotlib.pyplot as plt
time = np.arange(len(pitch)) * hop_size / sample_rate
plt.plot(time, pitch)
plt.xlabel("Time (s)")
plt.ylabel("Pitch")
plt.title("Pitch Contour")
plt.show()
결론
위의 방법을 통해 파이썬을 사용하여 오디오 파일의 음정 변화를 자동으로 추출할 수 있습니다. 이를 통해 오디오 데이터에서 음악적 특성을 분석하거나 음악 이론에 대한 연구를 수행할 수 있습니다.
참고 자료: