1

私は wav ファイルを持っていますが、必要なのは、驚くべき強さのサウンドが再生されたときに機能を実行することだけです。

例: 強度レベル 10 (想定) のサウンドが再生されている場合、サウンドの強度レベルが 10 から増加するたびにイベントをトリガーして、顕著なサウンドがあることを通知する必要があります。

私はそれをググってみましたが、wav ファイルのバイトを読み取り、データ チャンク (44 バイト目以降) を読み取ると、ユーザー データ (サウンド データ) が取得されることがわかりました。しかし、このデータを分析すると、音のない同じデータもあるため、混乱しました。

私の質問が非常に明確であることを願っています。だから私はあなたの提案/アイデアと参考文献が必要です.

4

1 に答える 1

3

これには FFT は必要ありません。短期間の RMS パワーを計算するだけで、これが所定のしきい値を超えると、「大きな」音になります。

power_RMS = sqrt(sum(x^2) / N)

ここで、x はサンプル値、N は RMS パワーを計算するサンプル数です。44.1 kHz のサンプル レートで N = 441 サンプルを与える、たとえば 10 ミリ秒の期間を使用することをお勧めします。

于 2012-05-05T11:09:40.533 に答える