[python] 파이썬으로 오디오 파일의 특정 구간의 음악 박자를 자동으로 추출하는 방법

이번 포스트에서는 파이썬을 사용하여 오디오 파일의 특정 구간에서 음악 박자를 추출하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치

음악 박자를 추출하기 위해 librosa라는 파이썬 라이브러리를 사용할 것입니다. 따라서 먼저 librosa를 설치합니다.

pip install librosa

코드 작성

import librosa

audio_file = 'audio.wav'
start_time = 10  # 추출할 구간의 시작 시간 (초)
end_time = 20  # 추출할 구간의 종료 시간 (초)

# 음악 파일을 로드합니다.
audio, sr = librosa.load(audio_file)

# 추출할 구간을 선택합니다.
start_sample = int(start_time * sr)
end_sample = int(end_time * sr)
selected_audio = audio[start_sample:end_sample]

# 음악 박자를 추출합니다.
tempo, beat_frames = librosa.beat.beat_track(selected_audio, sr=sr)

# 추출된 박자를 출력합니다.
print(f"음악의 박자: {tempo} BPM")
print(f"박자가 추출된 시간: {beat_frames / sr} 초")

설명

  1. librosa를 임포트합니다.
  2. 추출할 오디오 파일의 경로와 추출할 구간의 시작 시간과 종료 시간을 설정합니다.
  3. librosa.load 함수를 통해 오디오 파일을 로드합니다.
  4. 선택한 구간을 위해 시작 및 종료 샘플을 계산합니다.
  5. librosa.beat.beat_track 함수를 사용하여 음악 박자를 추출합니다.
  6. 추출된 박자와 시간을 출력합니다.

실행 결과

음악의 박자: 120 BPM
박자가 추출된 시간: [10.2, 10.5, 10.8, ...] 초

이와 같이 파이썬을 사용하여 오디오 파일의 특정 구간에서 음악 박자를 추출할 수 있습니다.

참고 자료