我想编写/编程/开发一种算法,该算法可以识别来自线路输入/麦克风音频的数据中的许多特征。音频流将是音乐,我想过滤掉特征以区分歌曲,通过区分我的意思是您可以将歌曲的流派分开。
我绝对想检测的一件关键事情是这首歌有什么样的小节/节拍。例如,我想知道这首歌是否是 3/4 拍。
我发现的唯一有用的文章是关于 BPM 检测的,但这不足以区分一首歌曲和另一首歌曲。
FFT 是从音频流中获得不同特征的良好开端,但我不知道从哪里开始。是否可以通过 FFT 获得小节/节拍?有没有关于这个的好的教程/代码示例?
FFT 是否足以获得音频流的良好特征,或者是否有任何其他算法可以很好地获得音频流的特征?
最好我会在 C# 中执行此操作,因为这是我最有经验的编程语言。这在 C# 中是可能的还是另一种语言更好?
总结一下我的问题,我正在寻找有关在音频流中查找特征以获取节拍/小节和其他信息以区分歌曲的任何信息。