SoX(Sound eXchange)或ffmpeg中的信封模式

时间:2016-05-25 21:44:54

标签: audio ffmpeg sox

我一直在使用SoX来产生白噪声。我采用了一种调整整个音轨音量的方法,以一种类似于此的模式:

White noise envelope effect

我已经尝试过淡化,但是会逐渐消失到100%音量并淡出到0%音量,这只是一个痛苦。

由于模式的频率会随着时间的推移而发生变化,因此颤音效果并非与我相同。

唯一的另一种选择是将白噪声文件分割成单独的文件,应用淡入淡出然后将修剪应用到任何一端,这样它就不会一直消失,但这似乎是很多不必要的处理。 / p>

我一直在查看这个例子Using SoX to change the volume level of a range of time in an audio file,但我认为这不是我所追求的。

我在Ubuntu中使用SoX命令行,但是我可以使用ffmpeg或任何其他基于Linux的命令行解决方案。

1 个答案:

答案 0 :(得分:1)

使用ffmpeg,您可以使用音量过滤器

ffmpeg -i input.wav -af \
"volume='if(lt(mod(t\,5)/5\,0.5), 0.2+0.8*mod(2*t\,5)/5\, 1.0-0.8*mod(t-(5/2)\,5)/(5/2))':eval=frame" \
  output.wav

上面的过滤器中的表达式,在t = 0到t = 2.5秒时将体积从0.2增加到1.0,然后在t = 5秒时逐渐回落到0.2。信封的周期为5秒。