オンセット位置からノートの長さを決定する方法について質問があります。
たとえば、振幅値の配列 (short を含む) と、ノートの開始が検出された場合は 1、検出されなかった場合は 0 を含む同じサイズの別の配列があります。したがって、基本的には、各 1 間の距離が継続時間を決定するために使用されます。
これどうやってするの?オーディオ データのサンプル レートやその他の属性を使用する必要があることはわかっていますが、使用できる特定の式はありますか?
ありがとうございました!
オンセット位置からノートの長さを決定する方法について質問があります。
たとえば、振幅値の配列 (short を含む) と、ノートの開始が検出された場合は 1、検出されなかった場合は 0 を含む同じサイズの別の配列があります。したがって、基本的には、各 1 間の距離が継続時間を決定するために使用されます。
これどうやってするの?オーディオ データのサンプル レートやその他の属性を使用する必要があることはわかっていますが、使用できる特定の式はありますか?
ありがとうございました!
したがって、ONSETS のリストから始めています。実際に探しているのは、OFFSETS のリストです。
発症検出には多くの方法があります (ここに論文があります) http://bingweb.binghamton.edu/~ahess2/Onset_Detection_Nov302011.pdf
同じ方法の多くをオフセット検出に適用できます。
開始はスペクトル コンテンツの増加によってマークされるため、スペクトル コンテンツの減少を測定できます。
1) 発症の前後に妥当な時間枠を取る。(.25-.5s) 2) ウィンドウを小さなセグメントに切り刻み、50% オーバーラップするフーリエ変換を行います。3) 2 つの連続するウィンドウ間のフーリエ係数の差を計算し、SD の負の変化のみを許可します。4) 結果に -1 を掛けます。5) 結果からピークを選択します 6) 出来上がり、オフセット。
(スペクトル差関数の詳細については、上記の論文の 7 ページを参照してください。(上記のように) 変更されたバージョンを適用できます。
Hz 単位のサンプルレートが fs の場合、2 つのノード間の時間は次のようになります。
1/fs * <number of zeros between the two node-ones>
とてもシンプルです:-)
よろしく