我正在尝试构建一个C#应用程序,它可以检测视频中是否存在音乐。我可以找到Audio find,任何需要的格式。然而,我在音乐检测方面遇到了困难。
有很多关于音频指纹以及如何在C#/任何语言中做到这一点的文章。然而,我想要的是电影中音乐出现的大致时间,我不关心音乐是什么。
音乐不太可能存在于任何指纹数据库中。因此,这很可能是一种完全的计算分析。
有什么聪明的主意吗?或者我最好是实现一个节拍检测算法,并逐个处理它。然后估计输入/输出点数?
发布于 2013-01-04 00:42:49
我认为只有两件事可以清楚地将“音乐”与所有其他音频/声音区分开来:
方法1是不确定的,我不知道是否有人尝试过它。
但是#2是肯定的,你实际上可以用音频频谱分析仪看到这一点,但FFT必须有非常高的分辨率(每八度至少36分)。但也有一些问题,例如:
之间的音乐和其他同步的sound/noise
好吧,这些都是我的“聪明”想法。现在这只是一个实现的小问题... ;-)
发布于 2013-01-04 00:17:21
你可以使用'Microsoft Expression Encoder‘来处理视频和音频
发布于 2013-02-11 08:27:42
OP的问题可以概括为:
在视频的广义音频流中,尝试检测“音乐”与“其他所有内容”。
其中“音乐”不太可能存在于指纹数据库中。
在此上下文中的“其他一切”必须包括:
我们还必须假设广义视频的音频配乐是通过回声、混响、多通道平移等进行高度处理的。
在一般的视频情况下,所有上述音频元素将混合在一起形成最终的音频,使得问题域绝对巨大。
这是一个非常具有挑战性的问题,很可能没有简单或健壮的解决方案。
为了支持这一前提,一个通用的音乐分类器(让我们称之为MuCLAS)是一个非常困难的问题,其中未知的音乐样本是分类器训练集的成员,这是由于创建训练集以及调整和创建分类器索引所涉及的大量费用。
但由于OP的未知数据集的熵要高得多,OP的问题域比MuCLAS的问题域大得多。与MuCLAS相比,这意味着更高的复杂度和成本。
支持上述前提的另一个论点是,一般语音识别中的现有技术假设并坚持在未知数据集中比OP的数据集的隐含熵低得多的熵。
而语音识别是自主模式识别领域中最受关注的问题之一。
https://stackoverflow.com/questions/14142674
复制相似问题