mjhydri / 1D-StateSpace

This repository contains the implementation of an efficient joint beat, downbeat, tempo, and meter tracking system using a compact 1D probabilistic state space and a jump-back reward technique. ICASSP 2022.
MIT License
66 stars 13 forks source link

incorrect process result #5

Closed heyushu closed 7 months ago

heyushu commented 7 months ago

I process the sample 808kick120bpm.mp3 in beatnet like this estimator = joint_inference(1, plot=False) output = estimator.process('808kick120bpm.mp3') print(output)

and got this result [[ 4.02 1. 200. 4. ] [ 4.52 2. 125. 4. ] [ 5.62 2. 125. 4. ] [ 6.72 2. 60. 4. ] [ 7.82 1. 120. 4. ] [ 8.92 2. 60. 4. ] [ 9.52 1. 97. 4. ]]

I think this is incorrect,how to take the correct result? thank you。

mjhydri commented 7 months ago

At a tempo of 120 beats per minute, beat intervals should ideally be approximately 0.5 seconds apart. However, given for most cases they are ~ 1 sec error there appears to be a half-tempo detection.

Indeed, the challenge of half/double tempo detection often arises due to the subjective nature of labeling training data as different individuals may interpret a piece with double or half tempo tempos, leading to ambiguity in beat detection.

Also, two key considerations are noted:

1- The model is trained on complete music mixes, potentially relying heavily on harmonic cues and may not work perfectly with only percussive music especially without other percussive elements e.g. snare drum, hi-hat, etc. 2- The beat tracking F-1 score of the model is approximately 76%, suggesting incorrect results in about a quarter of scenarios, on average.