1

フレームごとに 2 つのオーディオ wav ファイルを比較し、2 つのファイル間の類似性のレベルを示すグレードを返すツールがあります。

元の wav ファイルと wav ファイルの録音があります。この 2 つのファイルはほとんど似ているため、類似性の高いスコアが得られるはずですが、主に録音されたファイル リードのわずかな遅延が原因で、スコアが低くなります。フレームのミスマッチに

私の質問は、有効なフレーム間比較が行われるように、MATLAB を使用して 2 つのオーディオ ファイルを正確に整列させるにはどうすればよいかということです。

4

2 に答える 2

5

フレームの 1 つを時間的にシフトし、2 つの間の相関を計算して、一連の比較を実行する必要があります。相関の最大値は、波間の時間シフトを示します。

xcorrこれを達成するために使用できると思います。

于 2011-11-22T04:25:57.187 に答える
0

同じ問題があり、ビデオ/オーディオ録音の開始を自動的に同期する簡単なツールを見つけることができなかったため、syncstart ( github ) を作成することにしました。

これは、録音を同期させるために必要なカットを計算する Python ベースのコマンド ライン ツールです。

開始の fft ベースの相関を使用します。

基本コードは簡単に matlab に変換できるはずです。

corr = fft.ifft(fft.fft(s1pad)*np.conj(fft.fft(s2pad)))
ca = np.absolute(corr)
xmax = np.argmax(ca)
if xmax > padsize // 2:
    offset = (padsize-xmax)/fs
    #second signal (s2) to cut
else:
    offset = xmax/fs
    #first signal (s1) to cut
于 2021-02-19T22:11:59.563 に答える