【问题标题】:Music Detection (Not Identification)音乐检测(非识别)
【发布时间】:2012-12-18 00:54:05
【问题描述】:

我正在尝试构建一个 C# 应用程序来检测视频中何时出现音乐。 我可以找到所需的任何格式的音频。然而,我在音乐检测方面遇到了障碍。

有大量关于音频指纹识别以及如何使用 C#/任何语言执行此操作的帖子。但是,我希望电影中出现音乐的粗略进出时间,我不关心音乐是什么。

音乐不太可能存在于任何指纹数据库中。所以很可能是一个完全计算分析。

有什么聪明的主意吗?或者我最好实现一个节拍检测算法并逐个处理它。然后估计入点/出点?

【问题讨论】:

  • 坦率地说,这似乎值得一篇研究论文。您可能也想尝试搜索这些内容。
  • 您是否也在寻找背景/场景过渡音乐?
  • 我同意@RBarryYoung 的观点,尝试搜索类似于“音乐检测小波”的内容 - 您将遇到许多研究论文,其中点缀着大量方程。小波是一种比 FFT 从信号中获取频率信息更复杂的方法。
  • 查看做过音乐分析的项目,例如 Aubio 和 echonest。

标签: c# audio audio-processing


【解决方案1】:

您可以使用“Microsoft Expression Encoder”处理视频和音频

【讨论】:

  • Expression 只是一个编码/轻量级的编辑工具。与节拍检测/音频分析无关。
【解决方案2】:

我能想到的只有两件事可以清楚地区分“音乐”与所有其他音频/声音:

  1. Meter:几乎所有创作的音乐都有一个计量器。从理论上讲,这应该可以通过 FFT 检测到,但使用的频率范围约为。 0.25hz 到 10hz(而不是通常的 20hz-20Khz)。在实践中?我不知道,但似乎值得一试。

  2. 调音:几乎所有专业音乐的共同点,包括专业歌手的声音(当他们有音乐伴奏时),但任何其他声音是它们都将处于 12 音等律音阶的相同“调音”中。换句话说,它们的频率总是被 2^(1/12) 的精确倍数分开。一旦建立了调优,他们将永远在这些步骤之间的间隙中。包括人声在内的正常声音遍布整个频谱,但音乐几乎总是在音阶音符的 +/- 10 音分以内。

方法#1 是不确定的,我不知道是否有人曾经尝试过。

但 #2 是确定的,您实际上可以使用音频频谱分析仪看到这一点,但 FFT 必须具有非常高的辨别力(每个八度音程至少 36 个分区)。但也有一些陷阱,比如:

  • 区分音乐和其他同时出现的声音/噪音
  • 弦乐器,如吉他和小提琴,经常会“弯曲”音符走调
  • 长号和无伴奏的人声,可以在音符之间“滑动”,或使用 Just-temper 而不是 Equal-temper 进行和弦。
  • 以编程方式确定电影中不同位置的“曲调”(不一定是绝对的,只要在任何一首音乐中保持稳定即可)
  • 谐波:音符通常不仅仅是简单的正弦波,这意味着其中混合了很多谐波频率。谐波不像音阶那样呈指数级,它们是整数倍,因此它们与基音不一致。幸运的是,谐波的幅度几乎总是低于基音,因此应该可以只“寻找峰值”。

嗯,这些是我的“聪明”想法。现在这只是一个小问题...... ;-)

【讨论】:

  • 确实很聪明...我考虑过调音/按键检测。一个更大的问题是一个奇怪的问题......我可能会发现很多音乐都是班格拉/宝莱坞歌曲。其中有很多我认为会导致各种问题的音调幻灯片/颤音!我会沿着节拍/米检测路线走。
  • 哎哟!印度音乐也可能不遵循 12 音等律。我真的鼓励寻找这方面的研究工作,这是一个难以破解的难题。
  • 方法 1 已经完成。您可以测量歌曲的能量并找到 bpm。我是在 Matlab 中为大学的一个项目做的。
  • FFT 用于节拍检测?!?为什么人们认为 FFT 很神奇?如果要隔离频率分量,请使用带通滤波器。此外,该范围不是您想要的(它的声音很小,并且会从很多录制的音乐中过滤掉)。尝试更高的值,例如 20-100。这将使您开始过滤:blog.bjornroche.com/2012/08/basic-audio-eqs.html
  • @BjornRoche:我从来没有说过 FFT 用于节拍检测,我说的是 meter 检测(尽管我认为它也适用于节拍)。你在这两点上都大错特错,因为你在谈论 tones 而我在谈论周期性重复。 FFT 不仅可以处理“可听音”,还可以处理更多的事情,因为它与卷积本质上是一样的,这意味着它可以用来在数据中找到 任何 简单的重复模式,假设它可以被过滤掉噪声和模式都足够强大和一致。
【解决方案3】:

OP的问题可以总结如下:

在视频的广义音频流中,尝试检测“音乐”与“其他一切”。

指纹数据库中不太可能存在“音乐”。

在此上下文中的“其他所有内容”必须包括:

  1. 演讲
  2. 沉默
  3. 合成声音
  4. 拟音(爆炸声、枪声、脚步声等)

我们还必须假设通用视频的音频音轨经过回声、混响、多声道平移等高度处理。

在一般的视频案例中,上述所有音频元素都会混合在一起成为最终的音频,这使得问题领域绝对是巨大的。

这是一个非常具有挑战性的问题,很可能没有简单或稳健的解决方案。

为了支持这个前提,一个通用的音乐分类器(我们称之为 MuCLAS),其中未知的音乐样本是分类器训练集的成员,这是一个非常困难的问题,因为创建训练涉及大量费用设置,以及调整和创建分类器索引。

但是 OP 的问题域比 MuCLAS 问题域大得多,因为 OP 的未知数据集的熵要高得多。相对于 MuCLAS,这意味着更高的复杂性和成本。

上述前提的另一个支持论据是,一般语音识别技术的状态假设并坚持,未知数据集中的熵远低于 OP 数据集的隐含熵。

而语音识别是自主模式识别领域中资金最充足的问题之一。

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 2012-01-07
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多