2

複数のオーディオ ファイルを 3 秒間のクロスフェードでクロスフェードし、それらを sox で 1 つのファイルに結合しようとしています。

以下のコマンドで複数のファイルを結合できますが、各ファイル間でクロス フェードする方法がわかりません。

sox $(ls /tmp/a*.wav | sort -n) /tmp/out/out.wav

以下のコマンドを使用して 2 つのファイルをクロス フェードできますが、複数のファイルを結合する最初の行と、接合/クロス フェードする 2 番目の行を結合する方法がわかりません。

sox 100hz.wav 440hz.wav out.wav splice $(soxi -D 100hz.wav),3

この質問を見つけましたが、答えがうまくいきません。 sox スプライスによるオーディオ ファイルのグループのクロスフェード

4

1 に答える 1

4

sox が提供するcrossfade_cat.shスクリプトを知っているかどうかはわかりません。連続して使用できます:

./crossfade_cat.sh 1 440.wav 660.wav auto auto && ./crossfade_cat.sh 1 mix.wav 880.wav auto auto

または、多数の wav ファイルをクロスフェードしたい場合、ディレクトリ内のすべてのファイルを使用するには、次のようなシェル ループを使用できます。

crossfade_dur=1
i=0

for file in *.wav
do

    i=$((i+1))

    if [ $i -eq 1 ]
    then
        cp $file mix.wav
    else
        crossfade_cat.sh $crossfade_dur mix.wav $file auto auto
    fi

done
于 2015-02-23T09:05:44.600 に答える