Sox: verketten mehrerer audio-Dateien ohne eine Lücke dazwischen
Ich bin Verkettung mehrerer (max 25) audio-Dateien mit SoX mit
sox first.mp3 second.mp3 third.mp3 result.mp3
tut, was es soll; verkettet Dateien in eine Datei. Aber leider gibt es einen kleinen Zeit-Lücke zwischen den Dateien in Folge.mp3. Gibt es einen Weg, um entfernen Sie diese Lücke?
Erstelle ich zuerst.mp3, zweiten.mp3 und so weiter, bevor die Verkettung von Ihnen durch das Zusammenführen mehrerer Audio-Dateien(gleiche Länge/format/Satz):
sox -m drums.mp3 bass.mp3 guitar.mp3 first.mp3
Wie kann ich das überprüfen und sicherzustellen, dass es keine Zeit-Lücke Hinzugefügt, auf alle diese Dateien? (zusammengeführt und verknüpft)
Muss ich um eine nahtlose Wiedergabe der verketteten Dateien (bei der Wiedergabe im browser eine nach der anderen, es funktioniert ok).
Danke für jede Hilfe.
EDIT:
Den genauen Beispiel (ohne echte Datei-Namen) der ein-Befehl läuft bei mir jetzt:
sox "|sox -m file1.mp3 file2.mp3 file3.mp3 file4.mp3 -p" "|sox -m file1.mp3 file6.mp3 file7.mp3 -p" "|sox -m file5.mp3 file6.mp3 file4.mp3 -p" "|sox -m file0.mp3 file2.mp3 file9.mp3 -p" "|sox -m file1.mp3 file15.mp3 file4.mp3 -p" result.mp3
Dies führt Dateien und leitet Sie direkt in die Verkettung Befehl. Die resultierende mp3 (Ergebnis.mp3) hat eine auch noch so geringe Verzögerung zwischen verketteten Dateien. Irgendwelche Ideen, sehr geschätzt.
- mp3 ist ein verlustbehaftetes format ist, sollten Sie nicht verwenden Sie es überall, außer wahrscheinlich die Letzte Codierung Schritt, weil jeder Konvertierung zu mp3 Schäden, die audio.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist meine Vermutung für dein Problem:
Finden Sie heraus, was passiert, ich schlage vor, Sie überprüfen alle Laufzeiten Ihrer Daten zu jeder Zeit (die Sie verwenden können, soxi zum Beispiel), um zu sehen, was Los ist.
Wenn es nicht funktioniert (die Zeit-Lücke wird während der Verkettung), lassen Sie mir bitte eine andere Vermutung:
Um dieses Problem zu lösen, könnten Sie mit sehr kurzen fade-in fade-out auf der Sie Dateien.
Darüber hinaus zu zwingen, sox die Ausgabe-Dateien mit einer gut definierten Länge, können Sie mit der trim-parameter wie diese:
Die besten — aber am wenigsten hilfreich — Weg, dies zu tun ist nicht zu benutzen, die MP3-Dateien als Quelldateien. WAV -, FLAC -, oder M4A-Dateien haben dieses problem nicht.
MP3s sind nicht aus der Pauschalen Proben, die so geschichtet werden, ein Abschnitt von einer beliebigen Länge wird nicht funktionieren, wie Sie erwarten. Es sei denn die encoder wurde von smart (wie lame), da oft eine Lücke am Anfang oder am Ende der MP3-Datei audio -. Ich habe einen test mit einer Probe 0.98 s lang (mit genau 73½ CDDA frames, und viele MP3-Encoder verwenden frames für minimum sample-Längen). Ich habe dann codiert die Probe mit drei verschiedenen MP3-Encoder (lame, sox, und die alten Glanz), dann dekodiert die Dateien mit drei-Decoder (lame, sox, und madplay). Hier ist, wie die sample-Längen vergleichen Sie mit dem original:
Nur die Datei verschlüsselt und entschlüsselt durch die Lahmen endete die gleiche Länge haben (vor allem, weil lahm fügt ein Länge tag, um richtig für diese zu kurzen Proben, und weiß, wie Sie zu entschlüsseln). Alles codiert von sox endete mit einer winzigen Lücke, egal welchen decoder ich verwendet. So fügen Sie die Dateien wird in kleinen Klicks.
Ihrem browser ist wahrscheinlich die Vermischung und überlappung der source-Dateien sehr leicht, so dass Sie nicht hören, die Klicks. Gapless playback ist schwer zu tun, richtig.
Zuerst müssen Sie wirklich zu prüfen, ob der Beginn und das Ende der Dateien hat keine Pausen, ich weiß nicht, ob sox können es tun, aber Sie müssen überprüfen Sie die Energie(rms, dB) von der start-und end-audio-Signale und schneiden Sie Anfang und Ende Stille, nehmen Sie audio-Dateien ohne Lücken, die Sie brauchen, tragen Sie eine Fenster-Funktion im signal funktioniert wie ein fadein/fadeout und dann kreuzblende den Anfang mit dem Ende der anderen.
sox bieten eine
splice
Funktion crossfade:Dokumentation hier
sox first.mp3 second.mp3 third.mp3 result.mp3 splice -q 4,1
odersox first.mp3 second.mp3 third.mp3 result.mp3 splice -h 2,1
odersox first.mp3 second.mp3 third.mp3 result.mp3 splice -t 2,2
finden Sie die besten Optionen für Sie ...