0

いくつかの melcpstrums (オーディオ係数) を比較する必要があります。

たとえば、1 つのオーディオの 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 個ではなく 1 つの値に格納できる解決策を知っている人はいますか?

お手伝いありがとう。

4

1 に答える 1

0

11 個のケプストラム値は、数千とは言わないまでも、数百のオーディオ サンプルから推定されます。パフォーマンスの問題の原因がどこにあるかを確認する必要がありますこれらの数行が問題になる可能性はほとんどありません。

つまり、 を使用しますdiff += abs(mcepsA[i]-mcepsB[i]);

于 2013-10-13T23:15:57.673 に答える