我们如何提高 Librosa 中节奏检测的准确性?

Aka*_*lia 4 python signal-processing audio-analysis librosa

我正在使用beat_trackLibrosa 的本机函数:

from librosa.beat import beat_track
tempo, beat_frames = beat_track(audio, sampling_rate)
Run Code Online (Sandbox Code Playgroud)

歌曲的原始节奏为 ,146 BPM而函数近似为73.5 BPM。虽然我明白73.5*2 ~ 148 BPM,但我们如何才能实现以下目标:

  1. 知道何时扩大/缩小估计
  2. 通过预处理信号提高精度

hen*_*rik 7

您观察到的是所谓的“八度误差”,即估计误差为 2、1/2、3 或 1/3。这是全局节奏估计中一个很常见的问题。关于全局节奏估计的精彩经典介绍可以在音频节奏归纳算法的实验比较中找到中找到。文章还介绍了常见的指标 Acc1 和 Acc2。

\n\n

自从该文章发表以来,许多研究人员都试图解决八度误差问题。(从我非常有偏见的角度来看)最有希望的是我自己使用卷积神经网络进行音乐节奏估计的单步方法(您可能还想查看后面的这篇论文,它使用了更简单的神经网络架构)和节奏和节拍的多任务学习:学习一个以改进另一个B\xc3\xb6ck 等人。

\n\n

两种方法都使用卷积神经网络 (CNN)来分析频谱图。虽然 CNN 也可以在librosa中实现,但它目前缺少轻松实现此目的的编程基础设施。另一个音频分析框架似乎在这方面领先了一步:Essentia。它能够运行TensorFlow模型。

\n