使用Sox,如何将音频文件缩短5秒,从最后修剪?
例如,这是如何从头开始修剪文件:
sox input output trim 5000
这是如何在结尾添加5秒的沉默:
sox input output pad 0 5000
答案 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淡入淡出