it-swarm.com.de

Wie kann ich geteilte Audiodateien stapeln, wo es Stille gibt?

Ich verwende den folgenden Befehl in SoX, um viele große Audiodateien an jedem Ort zu teilen, an dem die Stille länger als 0,3 Sekunden dauert:

sox -V3 input.wav output.wav silence 1 0.50 0.1% 1 0.3 0.1% : newfile : restart

Dies führt jedoch gelegentlich dazu, dass Dateien erstellt werden, die vollständig stumm sind, und der Ton vor jeder Pause abgeschnitten wird.

Ich habe mit Audacity bessere Ergebnisse erzielt, aber ich muss Hunderte von WAV-Dateien aufteilen, und Audacity kann nicht einmal 10 Dateien gleichzeitig öffnen, ohne einzufrieren.

Wie kann ich SoX oder eine ähnliche Software verwenden, um die Dateien nach Ablauf der 0,3-Sekunden-Pause so aufzuteilen, dass der stille Teil noch am Ende des Sprechens angebracht ist, jedoch nicht vorher, und es gibt keine Clips, die vollständig stumm sind , es sei denn, sie kommen vom Anfang von input.wav?

17
Village

wenn Sie 0,5 auf 3,0 ändern, funktioniert es einwandfrei:

sox -V3 input.wav output.wav silence 1 3.0 0.1% 1 0.3 0.1% : newfile : restart
7
user272651

Sie haben keine Programmiersprache angegeben, daher gehe ich davon aus, dass Sie nicht speziell nach einer Möglichkeit suchen, diese Sprache selbst zu programmieren. Das wäre übrigens nicht sehr schwer.

Wie auch immer, vielleicht ist dies der Trick für Sie:

http://www.nch.com.au/splitter/

Sie können einen Schwellenwert in dB für die Aufteilung festlegen. Ich denke, wenn Sie es auf 0dB einstellen, erhalten Sie alle Audiodaten, die Sie pro Slice benötigen.

sox -V3 orig.wav p.wav silence -l  0   1 0.5 0.1% : newfile : restart

das funktioniert bei mir Ich habe einige nützliche Erklärungen zum Befehl hier und hier gefunden.

2
and-bri

Mmmm, es gibt keine Optionen, um einen Batch-Prozess überall dort einzustellen, wo viele Audiodateien im Wavepad stumm geschaltet sind.

0
Mario Meneses