web-dev-qa-db-fra.com

Comment découpez-vous la fin du fichier audio en utilisant SoX?

En utilisant Sox, comment raccourcir un fichier audio de 5 secondes, en le coupant de la fin?

Par exemple, voici comment découper un fichier depuis le début:

    sox input output trim 5000

Voici comment ajouter 5 secondes de silence à la fin:

    sox input output pad 0 5000
29
get8p

La syntaxe est sox input output trim <start> <duration>

par exemple. sox input.wav output.wav trim 0 00:35 affichera les 35 premières secondes dans output.wav.

(vous pouvez savoir quelle est la longueur en utilisant sox input -n stat)

De la documentation SoX sur la commande trim:

Coupe des parties de l'audio. N'importe quel nombre de positions peut être donné; l'audio n'est envoyé à la sortie que lorsque la première position est atteinte. L'effet alterne alors entre la copie et la suppression de l'audio à chaque position . L'utilisation d'une valeur de 0 pour le premier paramètre de position permet de copier depuis le début de l'audio.

Par exemple,

sox infile outfile trim 0 10

copiera les dix premières secondes, tandis que

play infile trim 12:34 =15:00 -2:00

et

play infile trim 12:34 2:26 -2:00

jouera à la fois de 12 minutes 34 secondes dans l'audio jusqu'à 15 minutes dans l'audio (c'est-à-dire 2 minutes et 26 secondes), puis reprendra la lecture deux minutes avant la fin de l'audio.

Par commentaire de dpwe , les valeurs de position sont interprétées comme étant relatives à la position précédente , sauf s'ils commencent par = (auquel cas ils sont relatifs au début du fichier) ou - (auquel cas ils sont relatifs à la fin du fichier).

Donc, couper cinq secondes de la fin serait sox input output trim 0 -5

43
yonix

Je suis nouveau sur SoX, mais j'ai remarqué que cette page apparaît fréquemment dans les résultats de recherche pour le découpage audio et sera vue par de nombreuses personnes essayant de faire des choses similaires.

En tant que tel, je voulais fournir personnellement ce que j'ai trouvé être la meilleure solution.

J'ai connu le même "clic" à la fin du fichier que John Smith facultatif avait mentionné. Cela suggère qu'un bref fondu pourrait éliminer tout artefact parasite à la fin de l'audio et bien sûr qu'il fonctionne. C'est l'acceptation d'une valeur négative pour le paramètre de position de fondu pour indiquer le temps avant la fin de l'audio est la clé.

Je ne vois donc pas de meilleur moyen d'atteindre l'objectif du PO que celui-ci:

sox full_length.wav trimmed.wav fade 0 -5 0.01

Le paramètre 1 est '0' donc il n'y a pas de fondu. Le paramètre 2 supprime les 5 dernières secondes Le paramètre 3 utilise un fondu de 10 ms

5
dingles