音符起始点检测(音频节奏检测)(4.5)

原文链接:Onset Detection Part 4.5: What to expect

(这篇文章没大翻译明白,建议阅读原文。大概内容就是在展示自制检测器对各种类型音乐的检测效果,以及和 audiosurf 的检测效果的对比。)

正如我在本系列的第一部分中所说的,声音可以被分解成不同的频率,这些频率组成了完整的歌曲的声音。在下一篇文章中,我们将详细讨论这个主题,但是对于这篇文章,您首先需要了解频率:每种乐器都有一个频率范围,声乐也是如此。这是一个乐器/声乐的音调分布图。鼓和其他的打击乐器通常是无音调的(non-pitched),并遍布整个频谱。这是来自维基百科的一个非常有趣的图表:

图片来自原文,谁能告诉我咋把水印去了?

在我们深入研究傅里叶变换和类似的主题之前,我想让你们对我们在这里开发的起点检测器有一些了解。为此,我准备了几个不同类型的视频,展示我们的起点检测器将输出什么。不需要解释细节:在每个视频中,你会看到三个图表,第一个是低频,下一个是中频,最后一个在底部是非常高频。红线让我们知道起点可能在哪里。绿线是平均线。绿线以上的任何红色峰值都是潜在的起点/节拍(beat)。说到这里,让我们来看看探测器是如何在各种类型上工作的。让我们从流行音乐开始。

此处有一个youtube视频

我想这是一首非常有名的歌。在这三个范围内,onset都是清晰可见的。这是因为这首歌主要由合成乐器组成。特别是低音和鼓给探测器留下了深刻的印象,它似乎很适合这种类型。下一个流派:摇滚

此处有一个YouTube视频

全明星乐队“A perfect circle”的一首歌叫做《weak and powerless》。鼓点对整体的起点/节拍有很大的影响。探测器在这种情况下也做得很好。摇滚由于其较高的噪声水平,对任何一种起点检测模式来说都比较困难。扭曲的吉他和贝斯严重污染了所有的频率,使得检测任务变得非常困难。然而,如果负责混音的音响工程师工作得很好,那么控制节奏的乐器的频率就会很突出,我们的算法可以检测到。接下来我们来看看声乐摇滚:

此处有一个YouTube视频

一首由“Tenacious D”创作的名为《Explosivo》的歌曲,以一把原声吉他开始,然后进入一个更摇滚的部分。探测器一开始就能很好地捕捉到吉他的音色。当吉他变成背景音,整段音乐进入重头戏时,鼓就成为最有影响力的节奏部分。在最上面的图中,我们还可以看到鼓手踢得很快,如果没有图我可能也不能完全听清这些节奏。还请注意,在重头部分开始之前,hi-hat(架子鼓的踩镲)如何在底部的图中淡入。所有鼓的部分,如hi-hat, cymbals等,都会在那个图中被识别出来。

此处有一个YouTube视频

一首纯正的原声歌曲,由您真实演绎。探测器很好地检出了吉他。你可以很容易地在这三个图中看到3/4的节奏。声音对探测器没有太大的影响。

此处有一个YouTube视频

(下面这一段没翻译明白,附上原文)

Jazz对于起点检测器来说是非常困难的。很多音符都是同时或接近于同时演奏的。而且,很多的频率范围被用完了。在这个例子中,控制节奏的乐器还是鼓,还有一点贝斯也被探测器检测到。然而,在开始的时候,是钢琴在演奏节奏部分。探测器的工作也做得很好。注意开始时的拍手声是如何让检测器变得有点疯狂的。就探测器而言,拍手声基本上就是随机噪音,所以他会尽最大努力去选择可能的节奏模式。

(Jazz is said to be extremely hard for onset detectors. A lot of notes a player simultaniously or near simultaniously. Also, a lot of the frequency range is used up. In this example the instrument governing the rythm is again the drums as well as a little bit of bass which are picked up by the detector. However, in the beginning it’s the piano which does the rythm section. Again the detector does its job pretty well. Note how the clapping at the beginning makes the detector go a bit crazy. The clapping is basically just random noise as far as the detector is concerned, so he tries his best to pick what might be rythmical patterns.)

此处有一个YouTube视频

古典是每一个起点探测器的噩梦,特别是当作品是由弦乐器组成时,就像莫扎特的这段演奏。节拍检测器可以捕捉到一些弦重击,但任何带有颤音的都是一团糟。不过在这方面,它仍然比Audiosurf表现得更好。

此处有一个YouTube视频

最后是 In-Flames 的金属。有趣的是小军鼓的能量最大。但踢腿鼓就不一样了,与歌曲的其他部分相比,踢腿鼓实际上非常安静。如果你看这首歌的完整频谱,你会看到一个大混乱的热图(至少我使用热图的频谱)。hi-hat并没有被探测器很好地接收到,因为它是开着播放的,在没有很多能量的情况下会产生安静嘈杂的声音。

下一个视频显示的是把以上所有的摘录形式混合成一个mp3并在Audiosurf中播放。如果把每个片段单独放到Audiosurf中,结果可能会有所不同,但那将会非常单调乏味

此处有一个YouTube视频

对于“Hit me baby one more time”,Audiosurf会生成小军鼓和踢腿鼓的节奏。“Weak and Powerless”也主要为踩镲/大镲/叮叮镲生成节奏。“Explosivo”有点奇怪。乍一看,它和这首歌没有任何相似之处。但如果你仔细看,就会发现这些节奏是根据歌声做出来的!我想Audiosurf是检测的声音最大的,在《Explosivo》里,大多数时候都是演唱声音最大。下一首歌是唱歌和吉他的混合。对于这首爵士歌曲来说,钢琴似乎并没有在一开始就被检测到,但是拍手声却被检测到了,剩下的由叮叮镲控制。古典一上来完全没检测到,越到后面才开始变得更好。这似乎与小提琴上升的音量一致。最后一段在大多数情况下都能捕捉到碰撞的声音,并混合了一些小军鼓的声音。总而言之,Audiosurf 似乎对不同波段进行了频带分析,然后选择声音最大的频带来生成节奏。这在流行音乐中效果很好,但在古典音乐中效果似乎不太好。有趣的是,对于cloud connected,我真的很好奇它是如何检测到 crash 的节奏,我在audacity high pass中对它进行了大量的过滤,也仍然看不到峰值。确实奇怪

我们在本系列文章中开发的起点检测器似乎能够检测到 audiosurf 能检测到的所有节奏(如果我们稍微调整一下它对唱歌的检测,这很简单)。也许我们甚至可以设计出比 Audiosurf 更好的处理古典音乐的功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值