「fmod」や「cwave」ライブラリ、さらには他のライブラリを使用して、.mp3 や .wav などのオーディオ ファイルやその他のサウンド フォーマットの各フレームの周波数を取得する方法を見つけることはできますか? C/C++ でこの頻度を調べるにはどうすればよいですか?
2 に答える
FFTW ライブラリは、さまざまなフーリエ変換の非常に高速な実装のセットです。
デジタル化されたオーディオのサンプルが多数ある場合、合計すると、サンプルと同じ数の周波数と位相があります。オーディオのサンプルが 2 つだけあるとします。それらを忠実に表現するには、1 つの周波数と 1 つの位相、つまり 2 つの値が必要です。デジタル化されたオーディオの複数のサンプルを表す「単一の」周波数はありません。
もちろん、「特定のビデオ フレームの色を取得するにはどうすればよいですか?」という質問と同じように、平均頻度を尋ねることもできます。または、最も顕著な周波数 (振幅が最も大きい周波数) を尋ねることもできます。または、高調波が信号内で最も多くのエネルギーを運ぶ周波数は何かを尋ねることができます (時間内にサンプリングされた電流のように、信号が物理的であると仮定します)。
これらすべての場合において、FFT または同様の離散変換を内部的に使用して時間領域から周波数または同様の領域への信号を取得する既製のライブラリを使用することをお勧めします (たとえば、quefrency domainではありません)。タイプミス)。単純な FFT から必要なものを取得するのは困難です。生の FFT 結果を処理して目的のものにするためには、数学的なトレーニングが必要です。そのためのライブラリがあると確信していますが、今は思いつきません。おそらく、そのような作業を扱う人が回答を編集できます。