본문 바로가기
Python 파이썬/Librosa

librosa ) 소개 & bpm 분석 예제

by 하이방가루 2022. 3. 28.
728x90
반응형

음악 및 오디오 분석을 위한 파이썬 패키지

 

bpm 분석 예제

1. 예제파일 경로 가져오기

filename = librosa.example('nutcracker')

librosa에 포함된 오디오 예제 파일의 경로(path)를 가져온다.

예제 목록

Key Full name Description
brahms Brahms - Hungarian Dance #5 A short performance of this piece, with soft note onsets and variable tempo.
choice Admiral Bob - Choice A short drum and bass loop, good for demonstrating decomposition methods.
fishin Karissa Hobbs - Let’s Go Fishin’ A folk/pop song with verse/chorus/verse structure and vocals.
humpback Humpback whale song Glacier Bay 60-second clip of humpback whale song.
libri1 Ashiel Mystery, A Detective Story, Ch. 2 LibriSpeech example, book narration by Garth Comira.
libri2 The Age of Chivalry, Ch. 18: Perceval LibriSpeech example, book narration by Anders Lankford.
libri3 Sense and Sensibility, Ch. 18 LibriSpeech example, book narration by Heather Barnett.
nutcracker Tchaikovsky - Dance of the Sugar Plum Fairy Orchestral piece included to demonstrate tempo and harmony features.
pistachio The Piano Lady - Pistachio Ice Cream Ragtime Solo piano ragtime piece.
robin Bird Whistling, Robin A single chirping call of an English robin bird.
sweetwaltz Setuniman - Sweet Waltz 3/4 time piece with synthetisized xylophone, flute, and organ.
trumpet Mihai Sorohan - Trumpet loop Monophonic trumpet recording, good for demonstrating pitch features.
vibeace Kevin Macleod - Vibe Ace A vibraphone, piano, and bass combo. Previously the only included example.

 

2. 오디오 파일을 numpy.array로 변환

y, sr = librosa.load(filename)

오디오를 1차원 numpy 부동 소수점 배열로 표시되는 시계열로 로드하고 디코딩한다.

y변수에는 오디오의 numpy배열이 할당된다.

sr변수에는 샘플링 속도, 즉 오디오의 초당 샘플 수를 할당한다.

  기본적으로 22050Hz로 다시 샘플링된다.

  sr=None 옵션을 주면 오디오의 sampling rate로 샘플링한다.

 

3. 비트 분석

tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)

tempo 변수에는 추정된 템포(bpm; beat per minute)가 할당된다.

beat_frames 변수에는 감지된 비트 이벤트에 해당하는 프레임 번호 배열이 할당된다.

 

4. 프레임 번호 배열을 초 단위의 타임스탬프 배열로 변환

beat_times = librosa.frames_to_time(beat_frames, sr=sr)

 

728x90
반응형

'Python 파이썬 > Librosa' 카테고리의 다른 글

librosa ) constant Q 변환  (0) 2022.03.28

댓글