如果已知开始和结束时间,则使用SoX制作音频文件块

时间:2015-09-23 04:10:25

标签: batch-processing sox

我有一个10分钟的音频,我希望在大块的时间内打破如下: (格式为mm:ss.frac)

 1. 1.wav -> 00.000 - 20.271
 2. 2.wav -> 20.272 - 47.550
 3. 3.wav -> 47.551 - 01:20.562

我尝试使用像这样的trim命令

  

sox infile outfile trim 0.000 20.271但格式为trim start [length]

最糟糕的情况是,我将不得不计算单个块的持续时间。还有另一种方式吗?

2 个答案:

答案 0 :(得分:3)

我发现最简单的解决方案是编写命令:

sox infile outfile start =end

在到达开始位置之前,音频不会发送到输出流,并且可以使用带有结束时间的“=”符号来指定结束位置。

所以代码现在是,例如:

sox forth.wav 10.wav trim 303.463 =353.790
  1. 链接到文档 http://manpages.ubuntu.com/manpages/precise/man1/sox.1.html
  2. 相关摘录:
  3.   

    修剪开始[长度| =结束]   可选的length参数给出了音频的长度                 在开始样品之后输出,因此用于修剪                 音频结束。或者,绝对结束位置可以                 在前面加上等号。使用值                 0表示启动参数只允许修剪结束。

答案 1 :(得分:0)

不,如果你想使用sox,你必须计算长度。您也可以使用ffmpeg,它具有支持开始/结束时间的atrim过滤器。