[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. 참고 자료
librosa
라이브러리의 공식 문서: https://librosa.org/doc/main/librosa
GitHub 저장소: https://github.com/librosa/librosa- 음표와 음조에 관한 자세한 정보: https://en.wikipedia.org/wiki/Key_(music)