Javascript 音调检测-计数音符

Javascript 音调检测-计数音符,javascript,pitch-detection,Javascript,Pitch Detection,我用一种自相关算法对单音的嗡嗡声、口哨声进行基音检测,得到的结果足够好。 但如果我用音符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吹出一段旋律,并记录结果,我会得到以下序列:

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

我们可以看到正确的音符被识别出来,它们是重复次数较多的音符,我怎么知道它是真正的音符还是仅仅是过渡?是否有任何类型的过滤器,我可以应用到该数组中,只得到真正的注释gf和D

我正在使用这个javascript代码:执行基音检测,我想知道是否有一些后处理算法可以应用于我的结果以过滤音符,或者是否必须增加自相关算法的窗口


在那个关于信号处理的线程中,被接受的答案提到了一些类似于对我的音高结果序列应用模式过滤器的简单后处理。该模式过滤器是什么?

模式过滤器是您查看哪些音符出现最多并丢弃其余音符的地方。e、 如果你做一个简单的模式过滤器,丢弃任何小于20的值,你会得到54xG,52xF,28xD,33xD


但是,您必须计算要使用的模式值,因为它取决于音符的节奏。

看起来您需要磨练您的口哨技能。您使用什么语言编程?你能给我们一个代码示例来演示这个问题吗?请将这些详细信息添加到您的question@TonyK看起来,即使是完美的正弦波也有这些音高变化。@Dijkgraaf我希望添加到问题中的信息有助于理解我的意图。模式过滤器可以让你看到哪些音符出现得最多,而丢弃其余的音符。e、 g.如果你要做一个简单的模式过滤器,并丢弃任何值小于20的东西,那么你将得到54x g,52x F,28x D,33x D,但是你必须计算模式值以使用,因为它取决于音符的节奏。