1

我有一个关于如何根据它们的起始位置确定音符的持续时间的问题。

因此,例如,我有一个幅度值数组(包含短)和另一个相同大小的数组,如果检测到音符开始,则包含 1,如果没有,则包含 0。所以基本上,每个 1 之间的距离将用于确定持续时间。

我怎样才能做到这一点?我知道我必须使用音频数据的采样率和其他属性,但是我可以使用特定的公式吗?

谢谢!

4

2 回答 2

1

所以你从一个 ONSETS 列表开始,你真正要找的是一个 OFFSETS 列表。

发病检测的方法有很多(这里有一篇关于它的论文)http://bingweb.binghamton.edu/~ahess2/Onset_Detection_Nov302011.pdf

许多相同的方法可以应用于偏移检测:

由于开始以光谱含量的增加为标志,您可以测量光谱含量的减少。

1) 在发病前后采取合理的时间窗口。(.25-.5s) 2) 将窗口切成更小的部分,并进行 50% 的重叠傅里叶变换。3)计算两个连续窗口之间的傅立叶系数之间的差异减小并且只允许SD的负变化。4)将结果乘以-1。5)从结果中挑选峰值 6)瞧,偏移量。

(有关光谱差异函数的更多详细信息,请参阅上面列出的论文的第 7 页,您可以应用它的修改(如上)版本_

于 2012-03-19T03:37:55.657 回答
0

好吧,如果您的采样率(Hz)是 fs,那么两个节点之间的时间等于

1/fs * <number of zeros between the two node-ones>

很简单 :-)

问候

于 2011-09-13T16:20:21.130 回答