サンプルを取り込んでサンプルをFFT(高速フーリエ変換)します。私は曲の周波数を得ることができますが、私はそれらの周波数が発生する時間を得ることができません。だから、私はそれから時間の情報を得るまで私は別のサンプルと一致させる必要があるので、基本的に役に立たなくなる。周波数が出現する時間を抽出する
どうすればいいですか?
サンプルを取り込んでサンプルをFFT(高速フーリエ変換)します。私は曲の周波数を得ることができますが、私はそれらの周波数が発生する時間を得ることができません。だから、私はそれから時間の情報を得るまで私は別のサンプルと一致させる必要があるので、基本的に役に立たなくなる。周波数が出現する時間を抽出する
どうすればいいですか?
サンプルを複数の小さなタイムスライスに分割し、各スライスをFFTする必要があります。各FFTの結果は、そのスライス時間にわたる平均周波数コンテンツを提供します。これは一般にSpectrogramと呼ばれます。
短くて、甘くて、私が聞く必要があったもの。 +1 –
あなたの質問に対する答えは、あなたが決定しなければならない時間の妥協点です。小さな時間不確定性ウィンドウを得るために分析する時間が短いほど、周波数精度は粗くなります。およびその逆。正確な周波数が必要な場合、時間ウィンドウが必要なため、時間の不確実性は無限に大きくなります。
興味のある周波数帯域と帯域幅がわかっている場合は、その帯域をフィルタリングして、立ち上がりと立ち下がりの減衰が始まっている可能性がある振幅エンベロープを調べることができます。関心のある音のエンベロープの正確な形状が分かっている場合は、マッチしたフィルターとの畳み込みによって、ピークの相関点が得られる可能性があります。
あなたの答えが見つかったのかどうかはわかりませんが、最近私は 'musicg'というオープンソースのサウンドapiライブラリを見つけました。それはむしろ単純ですが、明らかにすべてを自分で作るという自由を失うことになります。私はそれでいくつかの良いテストをした。 –