曲のサンプルを取り、そのサンプルに対して FFT (高速フーリエ変換) を実行します。曲の周波数を取得できますが、それらの周波数が発生する時間を取得できません。なので、時間の情報を取得しないと別のサンプルと合わせないといけないので、基本的には使い物になりません。
続行するにはどうすればよいですか?
曲のサンプルを取り、そのサンプルに対して FFT (高速フーリエ変換) を実行します。曲の周波数を取得できますが、それらの周波数が発生する時間を取得できません。なので、時間の情報を取得しないと別のサンプルと合わせないといけないので、基本的には使い物になりません。
続行するにはどうすればよいですか?
サンプルを複数の小さなタイムスライスに分割し、各スライスをFFTする必要があります。各FFT結果は、その時間のスライス全体の平均周波数コンテンツを提供します。これは一般にスペクトログラムと呼ばれます
あなたの質問への答えはあなたが決定しなければならない時間周波数のトレードオフを含みます。時間の不確実性ウィンドウを小さくするために分析する時間のスライスが小さいほど、周波数精度は粗くなります。およびその逆。正確な周波数が必要な場合は、時間ウィンドウが必要になるため、時間の不確実性が無限に大きくなる可能性があります。
関心のある周波数帯域と帯域幅がわかっている場合は、その帯域を除外して、立ち上がりと立ち下がりの減衰が始まる可能性のある振幅エンベロープを調べてみてください。対象のサウンドのエンベロープの正確な形状がわかっている場合は、整合フィルターに対する畳み込みにより、ある時点でのピーク相関ポイントが得られる可能性があります。