Downbeat tracking using beat-synchronous features and RNN

ISMIR 2016 proceedings : Downbeat tracking using beat-synchronous features and RNN 논문 정리

http://www.cp.jku.at/research/papers/Krebs_etal_ISMIR_2016.pdf

Downbeat를 찾아낸다는 것은 음악 hierarchy의 제일 기본을 찾아내는 일.

 

_개요

Beat-synchronous(타임 도메인에서 비트에 싱크가 맞추어진) 오디오 feature로부터 downbeat들의 위치를 찾아내는 시스템.

시그널의 여러 frequency들에서의 rhythmic content에 대한 sequential model(RNN)과 harmonic content에 대한 sequential model(RNN)에서의 activation 아웃풋들을 합친 후, dynamic Bayesian network로 집어 넣는다.

이 dynamic Bayesian network는 ‘rhythmical language model’과 같은 역할을 한다고 볼 수 있다.

Screen Shot 2017-08-09 at 5.59.13 PM.png

 

1_ Introduction

공부할 게 한가득이다..

 

2_ Method

  • 일단 두가지 feature를 미리 뽑아서 인풋으로 활용하는데, 이 feature들은 beat-synchronous한 feature들이다. (즉, 음악적으로 봐서 비트가 있는 부분에 동시에 바뀌는 종류의 feature들. 예를 들어 코드 등.)
  • 두개의 feature가 각각의 RNN에 인풋으로 들어간다. 두 RNN은 인풋으로 받은 beat 위치(인풋들은 beat-synchronous한 아이들이기 때문에 인풋 하나하나가 downbeat candidate라고 볼 수 있음)가 downbeat일 확률을 아웃풋으로 출력한다. (activation function)
  • 이 activation function은 dynamic Bayesian network에 의해서 downbeat가 있는 time들의 시퀀스로 디코딩 된다.

 

2_1 Feature extraction

이 연구에서는 audio signal의 beat time들은 이미 알고 있다고 가정한다. (hand-crafted를 사용하든 automated 방식을 사용하든)

먼저 beat단위로 나누어 놓는 것이 네트워크의 계산량도 엄청 줄일 수 있고(시퀀스 길이를 줄이고 search space를 줄여주기 때문), 템포나 expressive timing에 대해 신경쓰지 않아도 되게 해준다.

 

2_1_1 Percussive feature
Multi-band spectral flux 사용.
  1. STFT로 magnitude spectrogram 구함.(window: Hann / hop size: 10ms / frame length: 2048)
  2. Logarithmic filter bank 적용.(6 bands per octave : 30 ~ 17000 Hz ⇒ 45 bins
  3. Logarithm으로 magnitude를 압축.
  4. 각 frame에 대해서 이전 프레임과의 (compressed) magnitude 값의 차이를 계산해서 저장. (미분값)
  5. 이  feature sequence를 beat-synchronized하게 만들어야 함.
  6. Beat period \Delta_b를 마디당 비트 갯수 n_b로 나눈 길이(\Delta_b / n_b) 만큼의 윈도우를 적용하는데(즉, 한 비트 길이의 윈도우), 이 때 각 frequency bin마다 mean value만을 저장.
  7. (이 때 beat subdivision의 시작지점을 기준으로 양 옆으로 centered around되게 됨.)

 

2_2_2 Harmonic feature
CLP chroma feature 사용
  1. frame rate : 100 fps
  2. \Delta_b / n_b 길이의 원도우에 대해 mean값을 구해서 feature를 beat에 synchronize. ⇒ n_h = 2 feature values per beat interval
  3. Harmonic feature에서는 percussive feature보다는 resolution이 낮아도 됨.(코드 변화에 있어서는 exact timing이 꼭 필요치 않으니까..)

 

Beat-synchronous하게 뽑은 feature들에 대한 시각화를 살펴보자.

Screen Shot 2017-08-09 at 11.10.10 AM

Screen Shot 2017-08-09 at 11.10.24 AM

Screen Shot 2017-08-09 at 11.10.38 AMScreen Shot 2017-08-09 at 11.10.53 AMScreen Shot 2017-08-09 at 11.11.10 AM

Visualization of the two feature streams and their corresponding network output of an 8-second excerpt of the song Media-105701 (Ballroom dataset).

  • Dashed line in (c) and (e) : the target (downbeat) sequence
  • Solid line in (c) and (e) : the networks’ activations.
  • x-axis : time.(in seconds)
  • Time resolution : 1/4 beat period in (b), and 1/2 beat period in (d).

 

_참고: Filter bank

In signal processing, a filter bank is an array of band-pass filters that separates the input signal into multiple components, each one carrying a single frequency sub-band of the original signal.

  • One application of a filter bank is a graphic equalizer, which can attenuate the components differently and recombine them into a modified version of the original signal.
  • The process of decomposition performed by the filter bank is called analysis (meaning analysis of the signal in terms of its components in each sub-band); the output of analysis is referred to as a subband signal with as many subbands as there are filters in the filter bank. The reconstruction process is called synthesis, meaning reconstitution of a complete signal resulting from the filtering process.
  • In digital signal processing, the term filter bank is also commonly applied to a bank of receivers. The difference is that receivers also down-convert the subbands to a low center frequency that can be re-sampled at a reduced rate. The same result can sometimes be achieved by undersampling the bandpass subbands.
  • Another application of filter banks is signal compression when some frequencies are more important than others. After decomposition, the important frequencies can be coded with a fine resolution. Small differences at these frequencies are significant and a coding scheme that preserves these differences must be used. On the other hand, less important frequencies do not have to be exact. A coarser coding scheme can be used, even though some of the finer (but less important) details will be lost in the coding.
  • The vocoder uses a filter bank to determine the amplitude information of the subbands of a modulator signal (such as a voice) and uses them to control the amplitude of the subbands of a carrier signal (such as the output of a guitar or synthesizer), thus imposing the dynamic characteristics of the modulator on the carrier.

 

2_2 Recurrent Neural Network

네트워크 구조 개요 :

  • GRU 사용.
  • RNN의 각 time unit에는 beat period가 들어가고 해당 period에 들어가는 모든 feature value들은 하나의 벡터에 압축되도록 하였음.
  • 예를 들어 Rhythmic RNN에서 45개의 frequency bin, n_p=4 의 subdivision을 사용하는 percussive feature의 경우 ⇒ 45 x 4 = 180 개의 input dimension을 갖는다.
  • Beat period의 subdivision을 underlying time unit으로 모델링하는 RNN과 비교해서는 훨씬 computational  이득이 있음. (performance는 유지)

다음은 experiment를 통해 알게 된 것들 :

  • Bidirectional connection을 추가하면 성능이 크게 개선되었다.
  • LSTM/GRU가 일반 RNN보다 훨씬 좋은 성능을 보였다.
  • 2개 초과하는 레이어를 사용하는 게 성능 개선에 도움이 되지 않았다.

⇒ 2 layer bidirectional network w/ GRU (tanh non-linearity)

  • 각 hidden layer는 25개의 유닛
  • 아웃풋 레이어는 dense layer w/ 1 unit (sigmoid 사용)

파라메터 수 :

  • Rhythmic model : 44k
  • Harmonic model : 19k

 

최종적으로는 rhythmic model과 harmonic model의 activation 값의 average를 가지고 다음 단계인 DBN의 인풋으로 넘겨준다. (deep belief network 아님..)

 

2_3 Dynamic Bayesian Network

Language 모델은 음악적 prior knowledge를 시스템에 포함시킨다. 다음 내용을 시스템에 가정하도록 하였음.

  1. 비트는 마디 단위로 정리된다. (마디 별로 고정된 비트 개수)
  2. 곡의 박자가 한 마디당 몇개의 비트가 들어가는지 결정한다.
  3. 한 곡에서 박자가 변하는 경우는 매우 드물다.

 

DBN stage는 ‘Downbeat tracking with multiple features and deep neural network’ 논문에서 사용한 방식과 비슷하다. (https://pdfs.semanticscholar.org/727e/11cb31ee220a6e13cae95b68bc71541f66b8.pdf)

  1. Beat를 tatum(아주 작은 subdivision)이 아니라 state로 모델링한다.
  2. 데이터셋의 대부분이 3/4박자 혹은 4/4박자였기 때문에, 이 두가지만 모델링했다.
  3. State sequence가 항상 왼쪽에서 오른쪽만 traverse하도록 했다. (역행하는 transition은 일어나지 않음.)

 

_참고 : Tatum

Tatum [1] is the “lowest regular pulse train that a listener intuitively infers from the timing of perceived musical events: a time quantum. It is roughly equivalent to the time division that most highly coincides with note onsets”. It can be computed by using a histogram of inter-onset intervals.

 

DBN의 state space에서 state s(b, r)은 두개의 hidden state variable로 결정된다. :

  • Beat counter b
  • time signature r

Beat counter b는 한 마디안에서의 beat의 갯수를 하나씩 센다. (b ∈ {1 .. N_r}. 여기서 N_r 는 time signature r에 해당하는 마디당 beat갯수를 의미한다.)

예를 들어, r ∈ {3, 4}일 경우, 3/4박자와 4/4박자의 모델이 만들어지고, state transition probability는 다음과 같이 decomposed 될 수 있다.

Screen Shot 2017-08-09 at 3.10.09 PMScreen Shot 2017-08-09 at 3.10.17 PM

(두번째 식이 beat counter는 왼쪽에서 오른쪽으로만 일정하게 움직이도록 한다.)

식의 이해를 위해 첨언하자면, P(b_k|b_{k-1}r_{k-1})에서 P(b_k)란 ‘b_k라는 현상이 나타날 확률’이라고 보면 된다. (b_k가 특정값을 가질 확률을 말하는 것이 아님. b_k가 있는데, 이것이 일어났을 확률)

Time signature는 마디의 시작점에서만 변할 수 있다. ((b_k < b_{k-1}))

Screen Shot 2017-08-09 at 3.10.26 PM

(p_r : time signature가 변할 확률)

Validation set을 통해서 p_r = {10}^{-7} 으로 설정하는 것이 좋은 결과를 가져다 주었음을 알아냈다. 하지만 이 파라메터는 원하는 대로 설정하면 된다.

RNN의 sigmoid output이 0과 1사이의 값을 내어놓기 때문에, 이것을 이 비트가 downbeat인지 아닌지의 확률로 보도록 했다. (DBN의 observation likelihood)

따라서, RNN이 posterior 확률인 P(s|features)를 출력하기 때문에, 베이지안 룰에 따라

Screen Shot 2017-08-09 at 3.23.25 PM.png

로 정리해서 posterior를 λ(s)로 스케일링할 필요가 있다. (λ(s)는 1/P(s)에 비례) DBN의 observation model에는 이 확률이 필요함.

실험 결과, downbeat states에는 λ(s(b = 1, r)) = 100 / 일반 state에는 λ(s(b > 1, r)) = 1로 설정하는 것이 validation set에서 가장 좋은 performance를 보였다.

 

3_Experiment

사용한 데이터셋 :

  • Ballroom
  • Beatles
  • Hainsworth
  • RWC Pop
  • Robbie Williams
  • Rock
  • Klapuri

 

 

 

4_ Result and discussion

4_1 Influences of features

사용했던 두가지 feature (percussive / harmonic)들의 영향력을 조사해보고자 했다.

각각을 따로 사용한 네트워크와 두가지를 사용한 네트워크의 성능 평가를 해보았다.

Screen Shot 2017-08-09 at 6.06.18 PM.png

<Mean downbeat tracking F-measures>

: 오른쪽 마지막 column이 모든 데이터셋에 대한 mean값.

맨 아래 row는 beat tracking F-measure score값.(이 트래킹된 beat를 detected beats로 사용해서 Combined model에 적용)

[11] : ‘Feature adapted convolutional neural networks for downbeat tracking’ 

[1] : ‘A multi-model approach to beat tracking considering heterogeneous music styles’

[25] : ‘An efficient state space model for joint tempo and meter tracking’

 

Combined가 항상 더 나은 결과를 보여주었다. → 두 네트워크가 서로 다른 부분에 대해(서로 연관된) 분석한다는 것을 의미.

 

4_2 Estimated vs annotated beat positions

전체 procedure를 automatic하게 하기 위해 기존 연구 [1]에서 만든 beat tracker를 사용하였다. 여기에 enhanced state space를 사용. ‘An efficient state space model for joint tempo and meter tracking’

위의 표를 보면 beat tracking에 관해서는 여러 데이터셋에서 비슷한 결과치가 나타났다. (down beat detection 성능은 데이터셋에 따라 다름)

Detect된 beat는 test set의 feature들을 synchronize하는 데에 쓰였다.

Annotated beat를 사용한 것 보다는 10~15% 정도 낮은 performance를 보였다. (이는 당연한 것이 beat tracking에서 이미 에러가 발생하고 이것은 교정될 수 없기 때문이다.) 이 점에 있어서는 [11]에서 만든 모델(tatum을 basic time unit으로 사용)보다 결함을 갖는다고 볼 수 있다.

데이터셋에 따른 결과의 차이를 보면, 장르가 섞여 있거나 2/2, 3/2, 3/4, 6/8등 다양한 박자가 있는 데이터(Hainsworth 데이터셋)에서의 downbeat tracking이 더 어려웠다. (상대적으로 단순한 Robbie Williams 데이터셋에서보다)

 

4_3 Importance of DBN stage

Screen Shot 2017-08-09 at 6.54.26 PM.png

<Mean downbeat tracking F-measures across all datasets (combined system)>

 

RNN

: peak-picking을 사용해서 downbeat 선택.

(RNN의 activation값이 일정 threshold(0.2)를 넘어가면 downbeat로 판정.)

 

RNN+DBN

: 앞서 제시한 DBN language model 사용

 

4_4 Comparison to the state-of-the-art

논문 참고.

 

 

4_5 Error analysis

현재 모델이 갖는 에러에 대해서 알아보고자, 30개의 데이터에 대해서 랜덤하게 고른 작은 subset에 대해 분석해보았다.

  • Beat tracking에서 발생하는 에러가 여전히 남아 있었다. Beat tracking 에러는 대부분 ‘octave error’였는데, 주로 beat tracker가 ground truth 템포 만큼 빠르게 2번 tap한 경우 였다. (어떤 경우에선 이게 acceptable 했고, 이런 metric level을 사용하는 것도 괜찮았음.)

 

  • Downbeat tracker가 time signature를 잘못 고르거나, time signature의 변화를 따라가는데에 실패하거나, 추가되거나 제거된 beat를 detect하지 못하는 문제였다.

 

  • Phase 에러는 상대적으로 드물었다. 박자 변화는 Beatles 데이터셋에서 많았는데, 이 경우 time signature의 transition probability를 {10}^{-7}에서 0으로 줄이면 performance가 6%가량 하락했다. (다른 데이터셋에서는 거의 영향이 없었다.) 게다가 사용된 데이터셋들이 대부분 3/4와 4/4 박자로 이루어져 있었기 때문에, RNN이 그 외의 time signature에 대해서 의미있는 것을 학습하기 힘들었다. (좀 더 박자가 balanced된 데이터셋이 있다면 좋겠다..)

 

5_ Conclusion and Future work

We have proposed a downbeat tracking back-end system that uses recurrent Neural networks (RNNs) to analyze a beat-synchronous feature stream.

With estimated beats as input, the system performs comparable to the state-of-the- art, yielding a mean downbeat F-measure of 77.3% on a set of 1771 excerpts of Western music. With manually annotated beats the score goes up to 90.4%.

For future work, a good modular comparison of downbeat tracking approaches needs to be undertaken, possibly with collaboration between several researchers.

  • In particular, standardized dataset train/test splits need to be defined.
  • Second, we would like to train and test the model with non-Western music and ‘odd’ time signatures, such as done in ‘Tracking the “odd”: Meter inference in a culturally diverse music corpus’.

 

 

 

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s