[python] 파이썬으로 오디오 파일의 음조를 자동으로 탐지하는 방법

음악이나 오디오 파일을 다루는 프로젝트를 진행하다보면, 때때로 파일의 음조를 자동으로 탐지해야 할 필요가 있습니다. 파이썬을 사용하여 이러한 작업을 수행하는 방법을 알아보겠습니다.

1. 라이브러리 설치

오디오 처리를 위해 librosa라이브러리를 사용할 것입니다. 다음 명령어로 librosa를 설치합니다.

pip install librosa

2. 코드 예시

import librosa

# 음악 파일 로드
audio_path = 'audio_file.mp3'
y, sr = librosa.load(audio_path)

# 스펙트로그램 변환
chroma_stft = librosa.feature.chroma_stft(y=y, sr=sr)

# 평균값 계산
mean_chroma = chroma_stft.mean(axis=1)

# 가장 높은 값 추출
max_idx = mean_chroma.argmax()

# 음조 정보 출력
tones = librosa.core.tone_names()
print('음조:', tones[max_idx])

위의 코드는 주어진 오디오 파일에서 음조를 자동으로 탐지하는 예시입니다. librosa를 사용하여 스펙트로그램을 계산한 후, 평균값을 구하고, 가장 높은 값에 해당하는 음조를 출력합니다.

3. 실행 결과

위의 코드를 실행하면 아래와 같이 음조 정보가 출력됩니다.

음조: C

이 결과는 주어진 오디오 파일의 음조가 C임을 나타냅니다.

4. 참고 자료