首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >音乐检测(非识别)

音乐检测(非识别)
EN

Stack Overflow用户
提问于 2013-01-04 00:11:30
回答 3查看 1.5K关注 0票数 4

我正在尝试构建一个C#应用程序,它可以检测视频中是否存在音乐。我可以找到Audio find,任何需要的格式。然而,我在音乐检测方面遇到了困难。

有很多关于音频指纹以及如何在C#/任何语言中做到这一点的文章。然而,我想要的是电影中音乐出现的大致时间,我不关心音乐是什么。

音乐不太可能存在于任何指纹数据库中。因此,这很可能是一种完全的计算分析。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-04 00:42:49

我认为只有两件事可以清楚地将“音乐”与所有其他音频/声音区分开来:

  1. Meter:几乎所有的作曲都有节拍。从理论上讲,这应该可以用FFT检测到,但要使用apprx的频率范围。0.25 the到10 the(而不是通常的20 the 20 20hz)。在实践中?我不知道,但它似乎值得一个try.
  2. Tuning:几乎所有的专业音乐,包括专业歌手的声音(当他们有音乐伴奏时),但不是任何其他声音是,他们都将在12音等音调音阶的相同“调谐”。换句话说,它们的频率总是被2^(1/12)的精确倍数所分隔。一旦建立了调优,它们就永远不会出现在这些步骤之间的空隙中。正常的声音,包括人类的声音,在整个频谱上都有传播,但音乐几乎总是在音阶为+/- 10美分的范围内。

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

但是#2是肯定的,你实际上可以用音频频谱分析仪看到这一点,但FFT必须有非常高的分辨率(每八度至少36分)。但也有一些问题,例如:

之间的音乐和其他同步的sound/noise

  • Stringed乐器,如吉他和小提琴,通常“弯曲”音符出tune

  • Trombones和无伴奏的人声,可以在音符之间“滑动”,或使用刚调子而不是等调子的chords.

  • Programmatically建立什么“调”在电影中的不同地方(它不一定是绝对的,只是稳定在任何一段music)

  • Harmonics:音乐音符通常不仅仅是简单的正弦波,这意味着有大量的谐波频率混合在那里。谐波不是像音阶那样的指数,它们是整数倍,所以它们不会与基音对齐。幸运的是,谐波的振幅几乎总是比基音低,所以应该可以只“寻找峰值”。

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

票数 4
EN

Stack Overflow用户

发布于 2013-01-04 00:17:21

你可以使用'Microsoft Expression Encoder‘来处理视频和音频

票数 0
EN

Stack Overflow用户

发布于 2013-02-11 08:27:42

OP的问题可以概括为:

在视频的广义音频流中,尝试检测“音乐”与“其他所有内容”。

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

在此上下文中的“其他一切”必须包括:

  1. speech
  2. silence
  3. synthetic sounds
  4. foley sounds (爆炸声、枪声、脚步声等)

我们还必须假设广义视频的音频配乐是通过回声、混响、多通道平移等进行高度处理的。

在一般的视频情况下,所有上述音频元素将混合在一起形成最终的音频,使得问题域绝对巨大。

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

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

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

支持上述前提的另一个论点是,一般语音识别中的现有技术假设并坚持在未知数据集中比OP的数据集的隐含熵低得多的熵。

而语音识别是自主模式识别领域中最受关注的问题之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14142674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档