你如何使用SoX修剪音频文件?

时间:2012-03-12 12:33:13

标签: audio trim sox

使用Sox,如何将音频文件缩短5秒,从最后修剪?

例如,这是如何从头开始修剪文件:

    sox input output trim 5000

这是如何在结尾添加5秒的沉默:

    sox input output pad 0 5000

3 个答案:

答案 0 :(得分:41)

语法为sox input output trim <start> <duration>

e.g。 sox input.wav output.wav trim 0 00:35会将前35秒输出到output.wav

(你可以知道使用sox input -n stat

的长度

来自trim命令的SoX documentation

  

从音频中删除部分内容。可以给出任意数量的位置;在到达第一个位置之前,音频不会发送到输出。然后效果在每个位置处复制和丢弃音频之间交替。对第一个位置参数使用值0允许从音频的开头进行复制。

     

例如,

sox infile outfile trim 0 10
     

将复制前十秒,而

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

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

将从音频播放12分34秒到音频播放15分钟(即2分26秒),然后在音频结束前两分钟继续播放。

根据dpwe's comment位置值被解释为相对于之前的位置,除非它们以=开头(在这种情况下)它们相对于文件的开头)或-(在这种情况下它们相对于文件的末尾)。

因此,结束五秒后修剪sox input output trim 0 -5

答案 1 :(得分:10)

以上命令错误,只能持续5秒。你实际上需要使用:

sox input output reverse trim 5 reverse 

将从文件末尾开始减少5秒。

答案 2 :(得分:5)

我是SoX的新手但是已经注意到这个页面经常出现在音频修剪的搜索结果中,很多人都会看到它做类似的事情。

因此我想提供我个人认为最好的解决方案。

我经历过同样的点击&#39;在John Smith Optional提到的文件末尾。这表明短暂的淡出可以消除任何有故障的人工制品,因为音频完成并确定它有效。它接受了淡出位置参数的负值,以指示音频结束前的时间是关键。

所以我认为没有比这更好的方法来实现OP的目标了:

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

参数1是&#39; 0&#39;所以没有消失。 参数2删除最后5秒 参数3使用10ms淡入淡出