2010-11-06 7 views
0

J'ai une application web qui permet aux gens de faire des effets sonores. Parfois, les effets sonores sont inférieurs à 0,55 seconde. Lorsque c'est le cas, ils risquent de ne pas être lus correctement dans le navigateur Chrome. Je voudrais savoir d'un utilitaire de traitement audio de ligne de commande qui me permettra de combler les sons plus courts que 0,55 avec un vide pour augmenter la durée du son d'au moins 0,55s.Commande Linux pour étendre la durée des fichiers audio

J'ai examiné le traitement par lots d'Audacity, mais je n'ai pas compris comment l'utiliser sur la ligne de commande. J'ai aussi cherché à utiliser sox, mais je n'ai pas trouvé d'option pour étendre un son à une durée minimum.

Répondre

3

Utilisez

sox -n silence.wav trim 0.55 

pour générer un fichier long 0.55s du silence.

Puis

sox -m -v 1 yourfile.wav silence.wav -t wav outfile 
0

Vérifiez SoX vous devriez être en mesure d'accomplir cela. C'est un Audio-Toolkit (multiplateforme). D'abord ajouter suffisamment de silence à la fin du son, puis découper la partie appropriée.

1

Effectuez un wav 0,55s silencieux. Puis le concaténer avec votre fichier. Il aura plus de 0.55s ... donc vous pourriez vouloir le couper.

sox yourfile.wav silence.wav outfile.wav trim 0 0.55 

Éditer: il semble qu'il peut générer du silence en utilisant -n comme nom de fichier. Donc, il ressemblerait à ceci:

sox yourfile.wav -n outfile.wav trim 0 0.55 

Si yourfile.wav a samplerate différent de 48000, vous devez générer le silence à ce rythme trop pour concaténation au travail:

sox yourfile_at_44100.wav -r 44100 -n outfile.wav trim 0 0.55 

Et si vous voulez faire que seuls les fichiers dont la taille est inférieure à 0.55, vous pouvez les filtrer en vérifiant leur durée à l'aide de soxi.

+0

Comment puis-je savoir combien couper? Je ne veux pas couper une partie non-silence de l'audio. –

+0

@Daniel X Moore: C'est pourquoi j'ai écrit à propos de soxi: vous devez faire cette opération uniquement sur les fichiers qui sont plus petits que .55s. Une boucle shell avec un peu de grep/awk pour vérifier la condition devrait faire. – liori

+0

Exemple s'il vous plaît? Je pense que la technique de mixage est la façon la plus simple de le faire car elle fonctionne avec n'importe quelle longueur de fichier. –