0

我需要比较一些 melcpstrums(音频系数)。

例如,一个音频的 11 个 mceps 是

mcepsA[0]=4.93723823
mcepsA[1]=2.3972343
mcepsA[2]=1.2305712

等等

现在我需要将它们与 11 个不同的 mceps 进行比较,例如

mcepsB[0]=3.9902323
mcepsB[1]=1.988323
mcepsB[2]=9.93723

等等

我正在计算这样的听觉差异:

double diff=0;

for (unsigned int i=0;i<11;i++)
{
   if (mcepsA[i] > mcepsB[i])
   {
        diff+=mcepsA[i]-mcepsB[i];
   }
   else
   {
        diff+=mcepsB[i]-mcepsA[i];
    }
}

但是,存储所有 mcep 值对我来说确实是个问题。不幸的是,我不是数学家。这里有没有人认识到这个问题并且可能知道我的解决方案,我可以将所有 mcepsA 存储在一个值中,而不是拥有 11 个?

感谢您的帮助。

4

1 回答 1

0

您的 11 个倒谱值是从数百个(如果不是数千个)音频样本中推导出来的。您真的非常需要检查性能问题的根源;这几行不太可能是问题所在。

也就是说,使用diff += abs(mcepsA[i]-mcepsB[i]);.

于 2013-10-13T23:15:57.673 回答