c# - 检测音频流中的特征

标签 c# algorithm fft

我想编写/编程/开发一种算法,可以从线路输入/麦克风音频中识别数据的许多特征。音频流将是音乐,我想过滤掉特征以将歌曲彼此区分开来,通过区分我的意思是您可以将歌曲的流派分开。

我绝对想检测的一件重要事情是这首歌有什么样的小节/节拍。例如,我想知道这首歌是否是 3/4 拍。

我找到的唯一有用的文章是关于 BPM 检测的,但这不足以区分一首歌曲和另一首歌曲。

FFT 是从音频流中获取不同特征的良好开端,但我不知道从哪里开始。是否有可能通过 FFT 获得小节/节拍?有关于此的任何好的教程/代码示例吗?

FFT 是否足以获得音频流的良好特性,或者是否有任何其他算法可以很好地获得音频流的特性?

我最好在 C# 中执行此操作,因为这是我最熟悉的编程语言。这在 C# 中可行还是其他语言更好?

总结一下我的问题,我正在寻找有关在音频流中查找特征以获取节拍/小节和其他信息以区分歌曲的任何信息。

最佳答案

我喜欢阅读这位博主的相关文章:

http://www.redcode.nl/blog/2010/06/creating-shazam-in-java/

作者讨论指纹识别歌曲。如果你labelled一组具有您正在寻找的品质的歌曲,然后将数据输入某种类型的 learning algorithm/classifier ,您可能会取得一些成功。

我不认为这是一个已解决的问题,因此据我所知不可能给你一个明确的答案。

祝你好运!

关于c# - 检测音频流中的特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16118219/

相关文章:

c# - Windows Live SDK 不注销()

algorithm - 并行计算Pi的快速算法

c# - 悖论 : Why is yield return faster than list here

c# - 必需的数字参数在不包含在 JSON 中时默认为 0

c# - 一个事务中两个语句的 NHibernate Race Condition

python - 对于 Project Euler,C++ 似乎比 Python Ruby 慢得多

algorithm - 表明旅行商 (TSP) 的 2 倍最优近似算法无法计算出最优解

python - 需要解释 specgram 函数如何在 python 中工作(matplotlib - MATLAB 兼容函数)

仅来自相位/幅度的 Matlab 逆 FFT

ios - 从录制的声音中消除已知音频,通过反卷积估计背景声级