我正在研究输入嗡嗡声的旋律(音高轮廓)提取。我正在尝试实现 praat 使用的算法。该算法使用自相关来获得候选 f0。我设法从原始音频(wav)创建帧(段)的自相关。但现在我被困在从自相关中提取候选 f0(最大值)。在 praat,他们使用 brent 算法提取了至少 4 个候选 f0。有人可以帮我实现布伦特算法以从自相关中提取最大值。谢谢!!!
问问题
867 次
1 回答
1
Brent's algorithm is a root-finding algorithm. So, in order to find maxima of your autocorrelation, I'd suggest to compute the first derivative (using Matlab's diff()
function) and then find the roots in this sequence. The location of the roots should be a maximum or minimum of the autocorrelation.
Regarding Brent's algorithm itself: A Matlab implementation is available in the German Wikipedia.
于 2012-09-02T15:55:03.940 回答