光谱匹配Matlab代码合唱探测器
Chordetector是一种从音乐样本中识别和弦的算法。
它对样本执行频谱分析,将可听频谱折叠为一个八度,然后使用简单的神经网络查找最可能的和弦。
Chordetector是使用Matlab语法以GNU八度编写的参考实现。
该算法能够区分不同的简单和复杂的和弦模式,包括单音高音符(即调音器功能),强力和弦,大,小,小和七和。
还报告了猜测的可靠性估计(相对值)。
该算法的设计目的是报告rel
=
1表示完美的和弦,而-12则报告“完全错误”的和弦的可能性很小。
根据初始基准,rel>
0的估计值应该是非常可靠的。
据我所知,这是一个原始的实现,利用fft,数据合并将fft分量匹配为离散的音高,八度折叠和手动构建的神经网络,以估计最佳匹配的和弦模式。
在当前的实现中,神经网络不需要任何训练,因为它仅基于对和弦模式的“先验”猜测:这种方法最适用于“纯正弦波”乐器,而对于带有丰富弦乐器的乐器,效果可能会很差和声(例如,我猜吉他是失真的)。
使用免费可用的和弦包(.wav格式)对算法进行了测试,如下所示:
为了使test_bench
script.m正常工
2022-07-10 22:37:01
5KB
系统开源
1