0

プレーヤーのプログラム、波形発生器、スペクトラム アナライザー、時刻を記録するリスト ボックスが既にあります。これらのものは機能しています。ここで、音声ファイルを再生し、特定のしきい値またはスペクトルの最大ピークに達すると、その現在のイベントの時間がリスト ボックスに記録される機能を追加したいと思います。リストボックスに時間を追加できたので、唯一の問題はイベントを検出する方法です。スペクトル アナライザーで FFT を使用しましたが、これに行き詰まっています。FFT、波形発生器、スペクトラム アナライザなどの現在のリソースを使用してこれを行うにはどうすればよいですか?

これは私が必要としていたものです。

  1. オーディオを再生し、サウンドが特定のしきい値に達すると、ストリームの現在の時間が記録されます。

どうもありがとう。私の締め切りは36時間後です。すべての助けをいただければ幸いです。私の将来はこれにかかっています。私に幸運を。:) みんなありがとう!サンプルまたは正確な作業を教えてください。私のプロジェクトについてさらに情報が必要な場合は、私のリソースを提供します。ありがとう!神のご加護を。

PS このプロジェクトには、スネア ドラム検出器が必要です。しかし、あまり時間がないので、スネアではなくスペクトルの最高ピークを検出することにしました。ほとんどの場合、スネア ドラムはベースやシンバルなどの他の楽器よりも最高のピークを生成するためです。みんなありがとう!

4

3 に答える 3

0

スネアドラムを検出する最も簡単な方法は、入力信号とスネアドラムのヒットの録音との間の相互相関を計算することです。相互相関が高い場合は、一致している可能性があります。

FFTは入力信号と純粋な正弦波の相互相関を計算するため、これはFFTのテストよりも優れています。

このアプローチは「整合フィルタリング」と呼ばれ、最適な検出理論でよく知られています。

于 2011-09-12T01:09:57.143 に答える
0

継続的に更新されるスペクトルを生成できる限り、更新のたびにスペクトルを反復処理し、関連するビンの大きさを確認するだけで済みます。通常、各サンプル ウィンドウをオーバーラップすることがあります。たとえば、FFT サイズとサンプル ウィンドウ サイズが N = 1024 の場合、サンプル 0..1023 で最初の FFT を実行し、次のブロックは 512..1535 になります。この 50% のオーバーラップは、検出のレイテンシーを減らすのに役立ちます (オーバーラップを増やすことはできますが、オーバーラップしすぎると計算負荷が高くなりすぎる可能性があります)。

于 2011-09-11T14:55:47.463 に答える
0

信号が非常に強力になるタイミングを確認したいだけであれば、FFT は必要ありません。時間領域と周波数領域のパワーを関連付けるパーセバルの定理を使用できます。これにより、2 乗サンプルの移動平均から O(1) スライディング ウィンドウ エネルギー検出器を作成できます。

ところで、これはまさにDSP Stack Exchangeに関連する種類の質問です。

于 2011-09-12T13:15:42.823 に答える