首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >和弦检测算法?

和弦检测算法?
EN

Stack Overflow用户
提问于 2010-12-03 00:45:32
回答 6查看 21K关注 0票数 33

我正在开发依赖于音乐和弦检测的软件。我知道一些基于倒谱分析或自相关技术的基音检测算法,但它们主要集中在单声道材料识别上。但我需要使用一些复调识别,即同时识别多个音高,就像和弦一样;有人知道关于这一问题的一些好的研究或解决方案吗?

我目前正在开发一些基于FFT的算法,但如果有人对我可以使用的一些算法或技术有想法,那将是非常有帮助的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-21 10:29:17

这是一个非常好的开源项目:https://patterns.enm.bris.ac.uk/hpa-software-package

它基于色谱图检测和弦-这是一个很好的解决方案,将整个频谱的窗口分解到具有浮点值的基音类阵列(大小: 12)上。然后,可以通过隐马尔可夫模型来检测和弦。

。。应该能为你提供你需要的一切。:)

票数 15
EN

Stack Overflow用户

发布于 2010-12-03 06:31:34

和弦检测和音调检测之间有很大的重叠,所以你可能会发现我关于这个问题的一些previous answer很有用,因为它有几个到论文和论文的链接。获得一个好的复调识别器是非常困难的。

我自己的观点是,应用复音识别来提取音符,然后尝试从音符中检测和弦是错误的方法。原因是这是一个模棱两可的问题。如果你有两个复杂的音调,恰好相隔一个八度,那么就不可能检测到是否有一个或两个音符在演奏(除非你有额外的背景,比如知道谐波分布)。C5的每个谐波也是C4的谐波(以及C3、C2等的谐波)。因此,如果你在复调识别器中尝试一个主要和弦,那么你可能会得到与你的和弦和谐相关的整个音符序列,但不一定是你演奏的音符。如果你使用一种基于自相关的基音检测方法,那么你会非常清楚地看到这种效果。

相反,我认为最好是寻找由某些和弦形状(大调,小调,第七等)组成的模式。

票数 8
EN

Stack Overflow用户

发布于 2010-12-03 04:11:00

请看我对这个问题的回答:How can I do real-time pitch detection in .Net?

对这篇IEEE论文的引用主要是您要查找的内容:http://ieeexplore.ieee.org/Xplore/login.jsp?reload=true&url=/iel5/89/18967/00876309.pdf?arnumber=876309

谐波会把你抛到一边的。此外,即使根本不存在,人类也可以在声音中找到基本原理!想想阅读,但要覆盖一半的字母。大脑填补了这一空白。

混音中其他声音的上下文,以及之前出现的声音,对我们如何感知音符非常重要。

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

https://stackoverflow.com/questions/4337487

复制
相关文章

相似问题

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