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

get*_*t8p 30 audio trim sox

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

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

    sox input output trim 5000
Run Code Online (Sandbox Code Playgroud)

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

    sox input output pad 0 5000
Run Code Online (Sandbox Code Playgroud)

yon*_*nix 45

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

例如sox input.wav output.wav trim 0 00:35将输出前35秒output.wav.

(你可以知道长度是多少sox input -n stat)

SOX文件trim命令:

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

例如,

sox infile outfile trim 0 10
Run Code Online (Sandbox Code Playgroud)

将复制前十秒,而

play infile trim 12:34 =15:00 -2:00
Run Code Online (Sandbox Code Playgroud)

play infile trim 12:34 2:26 -2:00
Run Code Online (Sandbox Code Playgroud)

将音频从12分34秒播放到音频最长15分钟(即2分26秒长),然后在音频结束前两分钟恢复播放.

根据dpwe的注释,位置值被解释为相对于前一个位置,除非它们以=(在这种情况下它们相对于文件的开头)或-(在这种情况下它们相对于文件的末尾)开始.

因此,最后修剪五秒即可 sox input output trim 0 -5

  • 您可以使用`sox input output trim <start> <duration>`或`sox input output trim <start> = <end>`.完整的`trim`语法接受任意数量的`<position>'参数对,默认情况下解释为相对于前一个位置,或者相对于文件的开头(如果前面带有'=')或相对于文件的结尾(如果已知)如果前面带有' - '.仅输出每对位置之间的声音. (3认同)

小智 9

上面的命令是错误的,它只会让你持续5秒.你实际上需要使用:

sox input output reverse trim 5 reverse 
Run Code Online (Sandbox Code Playgroud)

这将从文件末尾减少5秒.

  • 我认为有一种更简单的方法可以做到这一点.添加减号将完成其余的工作.以下将切断最后5秒`sox输入输出trim 0 -5` (14认同)
  • 让我们不要反转音频流两次,只是为了让它结束。 (2认同)

din*_*les 6

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

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

我在John Smith Optional提到的文件末端经历了相同的"点击" .这表明短暂的淡出可以消除任何有故障的人工制品,因为音频完成并确定它有效.它接受fadeout position参数的负值,以指示音频结束之前的时间是关键.

所以我认为没有更好的方法来实现OP的目标而不是:

sox full_length.wav trimmed.wav fade 0 -5 0.01
Run Code Online (Sandbox Code Playgroud)

参数1为'0',因此没有淡入.参数2删除最后5秒参数3使用10ms淡入淡出