我需要比较一些熔炉(音频系数)。
例如,一个音频的11 mcep是
mcepsA[0]=4.93723823
mcepsA[1]=2.3972343
mcepsA[2]=1.2305712
等。
现在我需要将它们与11种不同的mcep进行比较,例如
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个值?
谢谢你的帮助。
发布于 2013-10-13 23:15:57
你的11个倒谱值是从数百个,如果不是数千个音频样本推导出来的。真的,真的,需要检查您的性能问题起源于哪里;这几行代码不太可能是问题所在。
也就是说,使用diff += abs(mcepsA[i]-mcepsB[i]);
。
https://stackoverflow.com/questions/19350812
复制相似问题