我正在研究输入嗡嗡声的旋律(音高轮廓)提取。我试图实现praat使用的算法。该算法使用自相关来获得候选f0。我设法从原始音频(wav)创建一个帧(段)的自相关。但是现在我一直在从自相关中提取候选f0(最大值)。在praat中,他们使用brent算法提取至少4个候选f0。有人可以帮我实现brent算法从自相关中提取最大值。谢谢!!!
答案 0 :(得分:1)
布伦特算法是一种寻根算法。因此,为了找到自相关的最大值,我建议计算一阶导数(使用Matlab的diff()
函数),然后在此序列中找到根。根的位置应该是自相关的最大值或最小值。
关于布伦特算法本身:German Wikipedia中提供了Matlab实现。