[python] 파이썬을 사용하여 음악 BPM 분석 및 조정

음악 BPM(Bars Per Minute)은 음악의 리듬과 템포를 나타내는 중요한 요소입니다. 음악의 BPM을 정확하게 분석하고 조정하는 것은 음악제작이나 DJ 작업을 하는 사람들에게 매우 유용합니다.

이번 포스트에서는 파이썬을 사용하여 음악 파일의 BPM을 분석하고 조정하는 방법을 알아보겠습니다.

필요한 라이브러리 설치

먼저, 음악 BPM 분석과 조정을 위해 다음과 같은 파이썬 라이브러리를 설치해야 합니다.

pip install librosa

음악 파일의 BPM 분석

음악 파일의 BPM을 분석하기 위해 librosa 라이브러리를 사용합니다. 다음은 간단한 예제 코드입니다.

import librosa

filename = 'music.mp3'

# 음악 파일 로드
audio, sr = librosa.load(filename)

# BPM 추출
tempo, _ = librosa.beat.beat_track(audio, sr=sr)

print(f"The BPM of {filename} is {tempo}")

위 코드는 librosa를 사용하여 music.mp3 파일의 BPM을 추출하는 예제입니다. beat_track 함수는 음악 파일에서 비트를 추출하고 BPM을 계산합니다.

음악 파일의 BPM 조정

음악 파일의 BPM 조정은 음속 변화를 통해 이루어집니다. librosasoundfile 라이브러리를 사용하여 음악 파일의 BPM을 조정할 수 있습니다. 다음은 예제 코드입니다.

import librosa
import soundfile as sf

filename = 'music.mp3'

# 음악 파일 로드
audio, sr = librosa.load(filename)

# BPM 조정할 값을 설정합니다 (예: 120 BPM)
target_tempo = 120

# 음악 파일의 현재 BPM을 추출합니다
tempo, _ = librosa.beat.beat_track(audio, sr=sr)

# 음악 파일의 BPM 조정
audio_stretched = librosa.effects.time_stretch(audio, target_tempo / tempo)

# 조정된 음악 파일 저장
output_filename = 'music_adjusted.mp3'
sf.write(output_filename, audio_stretched, sr)

print(f"The adjusted music is saved as {output_filename}")

위 코드는 music.mp3 파일의 BPM을 120 BPM으로 조정하여 music_adjusted.mp3 파일로 저장하는 예제입니다. time_stretch 함수를 사용하여 음악 파일의 속도를 조정할 수 있습니다.

마무리

이번 포스트에서는 파이썬을 사용하여 음악 BPM 분석과 조정하는 방법을 알아보았습니다. librosa 라이브러리를 통해 음악 파일의 BPM을 추출하고 조정하는 작업을 쉽게 할 수 있습니다.

더 많은 정보는 librosa 문서를 참고하시기 바랍니다.