0

私は自分でいくつかの開始/ビート検出アルゴリズムをいじっています。入力は.wavファイルで、出力は.wavファイルです。float[]配列のチャンクで波形全体にアクセスできます。

アルゴリズムをデバッグして評価するための良い方法を思い付くのに苦労しています。私の入力と出力は両方とも聴覚であるため、デバッグ機能も聴覚である場合に最も理にかなっていると思いました。開始点で.wavファイルに可聴の「ティック」または「ビープ音」を追加することによって。

誰かがこれを行う方法について何かアイデアがありますか?理想的には、数百または数千のサンプルを実行する単純なforループになります。

4

3 に答える 3

1

貧弱な人の答え: ティックまたはビープ音の録音を見つけて、必要な瞬間ごとに元の波形とミックスします。ビープ音の値とビープ音の持続時間の入力波形を単純に平均化するだけで混合できます。

于 2009-10-13T16:40:40.603 に答える
1
float * sample = first sample where beep is to be mixed in
float const beep_duration = desired beep duration in seconds
float const sample_rate = sampling rate in samples per second
float const frequency = desired beep frequency, Hz
float const PI = 3.1415926..
float const volume = desired beep volume
for( int index = 0; index < (int)(beep_duration * sample_rate); index++ )
{
   sample[index] += 
      sin( float(index) * 2.f * PI * sample_rate / frequency ) * volume;
}
于 2009-10-13T16:45:49.680 に答える
0

サンプルのどこに目盛りを挿入するかを決めます (目盛りの長さを含めます。これは点ではなく範囲です)。波形のそのセクションのFFTを取得します。「カチカチ」音に必要な周波数成分を周波数領域表現に追加します(最も単純なのは、単一の周波数トーンです)。結果に対して逆 FFT を実行すると、元の信号にトーンがミックスされます。だと思います(これをやってからしばらく経ちました)。

于 2009-10-13T16:45:12.450 に答える