2

MFCCアルゴリズムを実装しましたが、BFCCを実装したいと思います。それらの違いは何ですか?周波数から周波数への関数(2595 * Math.log10(1+周波数/700))とメルから周波数への関数(700 *(Math.pow(10、mel))の代わりに別の関数を使用するだけで十分です/ 2595)-1))私はそのコードに従います:MFCC

PS:三角フィルターのコードを変更する必要がありますか?

4

2 に答える 2

5

これらは、フィルターの周波数間隔を表すための異なるスケールです。MFCC中心周波数がメル尺度に沿って配置されているBFCCフィルターを使用し、中心周波数がバーク尺度に沿って配置されているフィルターを使用します。

バーク尺度は、単純に次のように表されます。

  Bark(f)=13*arctan(0.00076*f)+3.5*arctan((f/(7500))*(f/(7500)))   

ここfで、はHz単位の周波数です。
バーク尺度を使用して中心周波数間隔を表すことはできますが、調査によると、入力音声サンプルの特徴ベクトルを表すためにmfccまたはbfccを使用しても、ASRシステムのパフォーマンスにはほとんど影響がありません。業界標準はMFCCのままです。実際、私はBFCCの多くを聞いたことがありません。

フィルタ係数を計算するためのコードが比較的一般的であり、入力パラメータとして中心周波数を取り入れている場合は、問題ないと言えます。ただし、常に再確認することをお勧めします。MATLABを使用し、周波数応答をプロットして確認してください。[次の論文][1]をチェックして、MFCC、BFCC、および均一スケールの周波数間隔の比較を確認できます。

更新1:フィルターの中心周波数は、バンドパス/バンドストップフィルターの上限と下限のカットオフ周波数間の算術/幾何平均のいずれかです。fまた、与えられた樹皮周波数を解くための逆方程式は簡単ではありません。解く必要があるのは二次方程式になります。1つの方法は、fとBarkの異なる値に対してテーブルを作成してから、テーブルルックアップを実行することです。しかし、私は逆の方程式へのリンクを見つけることができませんでした。

[1]: http://148.204.64.201/paginas%20anexas/voz/articulos%20interesantes/front%20end/MFCC/a-comparative-study-of.pdf
于 2011-06-02T18:50:32.127 に答える
0

代わりに、各樹皮臨界帯域(ifとelseの束)の周波数を手動で選択することができます。これは、樹皮臨界帯域の正確な方程式がないためです(メルの場合もありますが、かなり近いものがあります)。各バンドの値の対数、次にdctを適用します。これはフレームごとであることに注意してください。メル尺度は対数尺度も使用するため、mfccとbfccのどちらを実行してもあまり意味がありません。

于 2011-07-15T03:37:15.907 に答える