检测歌曲的各个部分

机器算法验证 信号检测
2022-03-22 07:39:59

希望这不是太主观...

无论音乐风格如何,我都在寻找一些方向来检测歌曲的不同“部分”。我不知道去哪里看,但相信其他 StackOverflow 网站的力量,我认为这里有人可以帮助指明方向。

在最基本的术语中,人们可以通过将连续的重复模式分组并将它们称为“部分”来检测歌曲的不同部分。这可能并不难——计算机非常擅长检测信号中的重复,即使存在一些小的变化。

但是当“部分”重叠时很难,就像在大多数音乐中那样。

很难说哪种音乐最适合这种系统。我猜大多数古典风格的交响音乐最容易处理。

关于在哪里寻找该领域的研究的任何想法?

4个回答

我不是信号处理方面的专家,但我对音乐理论知之甚少。相反,我会说古典音乐可能是最难用简单的数学方法分析的音乐。你最好从更简单、更重复的东西开始,比如流行音乐或电子音乐。流行音乐通常具有诗歌-合唱-诗歌...等格式,这可能有助于简化您的目标。

尝试对您的数据使用傅立叶变换,将其分解为其最突出的组成频率,可能在不同的小节之间分层。特别是,您可以根据您希望如何对数据的“部分”进行分组来查找不同的内容。

  1. 你的流行音乐中最慢的振荡可能是诗句和合唱之间的转换,再回到诗句(也许每分钟 0.75 次振荡?)。

  2. 接下来,您可能会在和弦进行中发现更高频率的振荡,也就是说,在歌曲的每个完整测量中(可能每分钟大约 6 次振荡?)。

  3. 我认为下一个最高频率将是一个小节内的一个小节(可能每分钟大约 24 次振荡?),在该小节内,弹奏模式和歌词的切分音经常在流行/民间音乐中重复。

  4. 深入了解血腥细节,接下来您会发现在音乐的每个小节中重复的节拍和节奏。挑选并隔离其中一个(可能是每分钟 148 次振荡/节拍?)可能会产生低音鼓底鼓,或牛铃击打,或类似顺序的东西。

  5. 在节拍和音调之间的某个地方,您可能会发现音乐的快速风格元素,例如电吉他上的速度/扫弦拨弦,或快速的人声说唱节奏。(我不知道这些可能有多快,但我猜大概是每分钟 1000 次或更多)。

  6. 最后,快速,可能是最复杂的,是音调和音色的元素。我知道“中 A”音符被标准化为 440 Hz,即每秒钟 440 次振荡。我确信有一些技术可以根据音色质量和音色来区分正在使用的乐器类型。甚至还有相当不错的算法可以检测人声。不过就像我说的,我不是信号处理专家。

音乐通常使用MPEG7 描述符和一些额外的东西来描述,例如MFCC,根据某些移动窗口方法制作的片段计算(即,您有一些窗口大小和跳跃,从放置在声音开头的窗口开始,计算窗口上的描述符,然后逐跳移动它并重复直到到达终点)。
这样一块就变成了一张桌子;在您的情况下,它可用于在块上应用一些聚类,从而检测那些“部分”。

从不同的角度来看,关于这个主题有很多不同的方法和大量的文献。以下是一些可能是您搜索的良好起点的亮点。

如果你的背景是音乐而不是数学或计算,你可能会对David Cope的作品感兴趣,他发表的大部分作品都集中在古典音乐作品的分析上,但他有一个名为重组的私人企业,似乎更普遍。他的很多作品都使用音乐作为语言类型模型,但我相信至少他最近的一些作品更多地转向了整个音乐基因组之类的方法。他有很多在线可用的软件,但它们通常是用Lisp 编写的,有些只能在各种版本的 Apple 操作系统中运行,尽管有些应该可以在 Linux 或任何可以运行通用 lisp的地方运行。

一般来说,信号和音乐的分析一直是机器学习中非常流行的问题。Christopher Bishop 的文本Neural Networks for Pattern RecognitionPattern Recognition and Machine Learning中有很好的入门介绍是一篇包含音乐分类部分的硕士论文示例,但对特征提取有很好的覆盖,作者至少引用了 Bishop 文本中的一个和其他几个来源。他还推荐了几个来源,以获取有关该主题的更多最新论文。

更具数学或统计意义的书籍(至少根据作者身份,如果不是根据其内容):

既然我提到了 Bishop 和机器学习的计算视角,如果我不建议你看一下 Hastie 的最新Elements of Statistical Learning(可免费合法下载),我只会说一半、蒂布希拉尼和弗里德曼。我不记得本文中有专门的音频处理示例,但是所涵盖的一些方法可以适应这个问题。

另一个值得考虑的文本是 Jan Beran 的《音乐学统计》这提供了许多专门用于分析音乐作品的统计工具,并且有许多参考资料。

同样,还有许多其他来源。这在很大程度上取决于您的背景以及您最熟悉的解决问题的方法。希望至少其中一些可以指导您寻找答案。如果您告诉我们更多关于您的背景、有关该问题的更多详细信息,或者在回复这篇文章时提出问题,我相信我或这里的许多其他人会很乐意为您提供更具体的信息。祝你好运!

不是一个很好的答案,但寻找研究的两个地方是:

国际音乐信息检索协会发表了大量关于这个主题的论文,令人惊讶的是有多少信息 www.ismir.net

& Echo Nest(使用 API 来做类似事情的初创公司)echonest.com

更新:他们还发布了一些开源指纹代码。 http://echoprint.me/