加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

音频 – 音符开始时的节拍检测?

发布时间:2020-12-15 02:26:38 所属栏目:Java 来源:网络整理
导读:你如何确定哪些Note Onsets是节拍?目前,我所拥有的有点像使用所谓的“脉冲序列”的“强力”方法. 基本上,我们的想法是,您可以从最小速度到最大速度生成脉冲序列.这些脉冲序列只是在特定节奏中发生节拍的表示.例如,如果Tempo = 60bpm(每分钟节拍),则脉冲序列
你如何确定哪些Note Onsets是节拍?目前,我所拥有的有点像使用所谓的“脉冲序列”的“强力”方法.

基本上,我们的想法是,您可以从最小速度到最大速度生成脉冲序列.这些脉冲序列只是在特定节奏中发生节拍的表示.例如,如果Tempo = 60bpm(每分钟节拍),则脉冲序列具有以1秒(60/60 bpm)的间隔发生的节拍.对于Tempo = 120bpm,脉冲序列具有以0.5秒(60 / 120bpm)的间隔发生的节拍.

现在基本上,我只是使用这些脉冲序列来比较和对比在假设的节拍上发生的接近音符.一般来说,这个想法是,如果音符开始发生在更接近节拍位置,则整体差异将更小.然后它只是基本上采用最小的整体差异的速度.

但是,我遇到了有关此实现的两个问题.

1.)具有音符开始的完美位置很少是这种情况,特别是通过录制的音乐(我正在使用),这导致通常较差的结果.

2.)较高的节奏将导致较小的间隔,这使其成为具有非击败开始(即第8音符,第16音符)的音乐的更好的候选者,而不是音乐的实际更好的节奏(即纯粹的60bpm) 8号音符可能会返回120bpm)

你能建议一些其他(甚至简单的)节拍检测方法吗?我想自己实现该算法以获得经验,因此非常感谢有用的教程链接.谢谢!

解决方法

this page上有很多有趣的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读