2012-02-26 15 views
5

Sto cercando di unire due file wave in un unico file. I 2 file dovrebbero iniziare a suonare all'inizio del nuovo file. Indipendentemente dalla lunghezza del suono. L'esecuzione del seguente comando non mi dà questo risultato.Unisci file audio in sox

sox -M new_input.wav myrecording.wav output_test.aiff 

Ci sono altri modi per raggiungere tale obiettivo attraverso le biblioteche o altri sox della riga di comando?

risposta

0

Heythere. Ci dispiace per la risposta tardiva =) comando dovrebbe assomigliare a questa

sox file1 file2 file3 

Sopra si fonderanno prime due file e il nome dopo il 3 °.

Si potrebbe anche desiderare di controllare i documenti http://sox.sourceforge.net/sox.html

+3

questo concatenare due file, non unirli (se per fusione si parla di giocare due o più file allo stesso ora) – trainoasis

+1

è proprio così che ho bisogno di concatenazione e questo mi ha aiutato. grazie. – Yohannes

4

basta cambiare -M con -m -M = unire -m = mescolare

+1

Conosci qualche opzione per fermarla alla fine del file più breve? – Calmarius

2

Per casi come Calmarius sta chiedendo:

sox -m in1.wav in2.wav out.wav trim 0 `soxi -D in1.wav` 

questo si ferma alla lunghezza di in1.wav, per i casi conosci meno corti. Altrimenti basta aggiungere un comparatore.

+0

qual è la funzione di '' soxi -D in1.wav''? –

+0

'soxi -D in1.wav' restituisce la lunghezza in secondi di in1.wav. Tuttavia, per eseguire questo comando all'interno del comando mix avresti bisogno di usare: 'sox -m in1.wav in2.wav out.wav assetto 0 "$ (soxi -D in1.wav)"' – WebSpanner

+0

C'è un modo per renderlo _repeat_ il file più breve per la durata del più lungo? – bcattle

0

'soxi in1.wav -D' ottiene la lunghezza del file (in1.wav)