【问题标题】:How can we improve tempo detection accuracy in Librosa?我们如何提高 Librosa 中的节奏检测精度?
【发布时间】:2020-05-05 19:21:00
【问题描述】:

我正在使用 Librosa 的原生 beat_track 函数,如下所示,

from librosa.beat import beat_track
tempo, beat_frames = beat_track(audio, sampling_rate)

歌曲的原始速度为146 BPM,而函数接近73.5 BPM。虽然我了解73.5*2 ~ 148 BPM。我们如何才能实现以下目标, 1. 知道何时放大/缩小估计 2. 通过某种形式的信号预处理来提高准确性。

我正在快速学习 DSP,因此可能不习惯所有的概念。任何指导表示赞赏。 谢谢。

【问题讨论】:

    标签: signal-processing librosa audio-analysis


    【解决方案1】:

    您观察到的是所谓的“八度误差”,即估计错误的因子为 2、1/2、3 或 1/3。这是全局节奏估计中一个相当普遍的问题。可以在An Experimental Comparison of Audio Tempo Induction Algorithms 中找到关于全局速度估计的精彩经典介绍。文章还介绍了常用的指标 Acc1 和 Acc2。

    自从那篇文章发表以来,许多研究人员都试图解决八度误差问题。 (从我非常有偏见的角度来看)最有希望的是我自己的A Single-Step Approach to Musical Tempo Estimation Using a Convolutional Neural Network(你可能还想看看这个later paper,它使用了一个更简单的神经网络架构)和Multi-Task Learning of Tempo and Beat: Learning One to Improve the Other Böck 等人。

    这两种方法都使用convolutional neural networks (CNNs) 来分析频谱图。虽然 CNN 也可以在 librosa 中实现,但它目前缺少可以轻松实现此目的的程序化基础架构。另一个音频分析框架似乎在这方面领先一步:Essentia。它能够运行TensorFlow-models。

    【讨论】:

    • 再次感谢@Hendrik 的澄清。我会进一步挖掘这个!
    • 你的目标是什么?
    • 这听起来很像项目!从复调音乐的声音文件中提取 midi 绝非易事。
    • 查看ISMIR 论文——它们应该涵盖了您需要的大部分内容。对于仪器识别,例如,archives.ismir.net/ismir2019/paper/000007.pdfarchives.ismir.net/ismir2017/paper/000085.pdf 用于转录。祝你好运!
    • 谢谢@Hendrik,我会调查这些来源。我希望在班加罗尔为 ISMIR 2021 展示一个。 :) 谢谢,我想我需要那个好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2016-12-04
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2020-06-01
    • 2014-03-21
    相关资源
    最近更新 更多