2012-01-21 56 views
4

我能夠加入和使用SOX交叉淡入淡出兩個音頻文件,像這樣:淡入淡出的一組音頻文件與襪剪接

sox file1.wav file2.wav outfile.wav splice -q `soxi -D file1.wav`,0.5 

其中soxi取代取出文件1的持續時間和0.5是長度的交叉淡入淡出。我現在試圖將其擴展到任意數量的文件,以便將它們串聯在一起,並使用兩者之間的短交叉漸變。似乎有兩種方法:管道和腳本。 Sox有一個-p選項,告訴它將它的輸出視爲管道(而不是寫入文件)。但是,對於每個命令有許多輸入和參數,不清楚在後續命令中如何分配輸出(and input?)。到目前爲止,我已經得到下面的行,其中不工作,試圖擴展到3個文件。

sox -p file1.wav file2.wav splice -q `soxi -D file1.wav`,0.5 | sox -p file3.wav outfile.wav splice -q `soxi -D file3.wav`,0.5 

關於sox管道和腳本的提示將不勝感激。

回答

2

我已經得到大部分的方式有與

sox --combine concatenate *.wav _merge.wav splice -q 3,1 

在端部的接合效果放置交叉衰落在3秒,進入所述第一文件的開始,並使用1秒爲交叉淡入淡出持續時間(兩個文件開始和結束時的半秒)。這種方法是一個臨時性的解決方案,因爲我可以選擇在我的輸出中僅包含〜3秒文件(使用其他方法)。 更好的答案應該會想出如何抓住當前的文件和替代的持續時間,在地方的3

sox --combine concatenate *.wav _merge.wav splice -q $(soxi −D {}),1 

如果{}在此選擇的當前項目(如find),這將做到這一點。但這似乎並不奏效。

+0

是的,這不工作,任何機會,你找到解決方案交叉淡入淡出文件。 Thanx,即時通訊迫切需要做這種類型的批處理,有這麼多的文件處理。請幫助 – user642523