【问题标题】:crossfading a group of audio files with sox splice使用 sox splice 交叉淡入淡出一组音频文件
【发布时间】:2012-02-15 20:09:00
【问题描述】:

我可以使用 SoX 加入和交叉淡化两个音频文件,如下所示:

sox file1.wav file2.wav outfile.wav splice -q `soxi -D file1.wav`,0.5

soxi 替换获取 file1 的持续时间,0.5 是交叉淡入淡出的长度。我现在正试图将其扩展到任意数量的文件,以便将它们串在一起并在其间使用短的交叉淡入淡出。似乎有两种方法:管道和脚本。 Sox 有一个 -p 选项,告诉它将其输出视为管道(而不是写入文件)。但是,由于每个命令有许多输入和参数,尚不清楚该输出 (and input?) 是如何在后续命令中分配的。到目前为止,我得到了下面的行,它不起作用,试图扩展到 3 个文件。

sox -p file1.wav file2.wav splice -q `soxi -D file1.wav`,0.5 | sox -p file3.wav outfile.wav splice -q `soxi -D file3.wav`,0.5

您在 sox 管道和脚本方面的提示将不胜感激。

【问题讨论】:

  • 尽管这是一个老问题,但我为那些偶然发现它的人提供了一个工作解决方案的参考:您可以使用here 指示的方法将多个文件淡入淡出到一。

标签: audio scripting sox piping


【解决方案1】:

我已经走了大部分路

sox --combine concatenate *.wav _merge.wav splice -q 3,1

最后的拼接效果将 3 秒处的交叉淡入淡出的开始放置到第一个文件中,并使用 1 秒作为交叉淡入淡出持续时间(两个文件开头和结尾处的半秒)。此方法是临时修复,因为我可以选择在输出中仅包含约 3 秒的文件(使用其他方法)。 更好的答案是弄清楚如何获取当前文件的持续时间并将其替换为 3。

sox --combine concatenate *.wav _merge.wav splice -q $(soxi −D {}),1

如果这里的 {} 选择了当前项目(如 find),那就可以了。但这似乎不起作用。

【讨论】:

  • 是的,这不起作用,您有机会找到交叉淡入淡出文件的解决方案。谢谢,我急于做这种批处理,有这么多文件要处理。请帮助
  • 这个答案帮助我自动在录音中添加了固定长度的介绍。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 2013-03-29
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多