我正在使用一种自相关算法来对单声音(嗡嗡声,吹口哨)进行音调检测,并且我获得了足够好的成绩,可以实现自己的尝试。但是,如果我用笔记吹哨旋律 g f#d#并记录结果,我会得到此序列:
2x f#
3x g
14x f#
54x g
14x G#
2x D
52X f#
6x g
14x f#
3x g
2x g
28x d#
2x d
33x d#
4x d
16x d#
2x e
2x d
2x d#
我们可以看到正确的笔记已被认可,并且它们是重复更多的笔记,我怎么知道它是真正的笔记或只是过渡呢?我可以使用任何类型的过滤器,只能获取真实的音符g f#和d#?
我正在使用此JavaScript代码:https://github.com/cwilso/pitchdetect执行音调检测,我想知道是否有一些我可以在我的结果上应用的后进程算法来过滤笔记或注释如果我必须增加自相关算法上的窗口。
在信号处理的该线程中(https://dsp.stackexchange.com/questions/questions/16753/how-to-to-to-get-the-melody-from-a-signal)在我的结果序列上应用模式过滤器。这个模式过滤器是什么?
模式过滤器是您看到哪些音符出现的最多并丢弃其余的。例如如果要执行一个简单的模式过滤器,并丢弃值小于20的任何内容,那么您将获得54x g,52x f#,28x d#,33x D#
但是,您必须计算使用的模式值,因为这取决于注释的速度。