audio - SoX (Sound eXchange) 或 ffmpeg 中的包络模式

标签 audio ffmpeg sox

我一直在使用 SoX 来产生白噪声。我正在寻求一种在整个轨道上调制音量的方式,这种方式将创建类似于以下的模式:

White noise envelope effect

我已经尝试过淡入淡出,但是淡入到 100% 的音量并淡出到 0% 的音量,这在这种情况下只是一种痛苦。

颤音效果也不是我所追求的,因为模式的频率会随着时间而变化。

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

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

我在 Ubuntu 中将命令行与 SoX 一起使用,但我对 ffmpeg 或任何其他基于 Linux 的命令行解决方案的建议持开放态度。

最佳答案

使用 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 秒。

关于audio - SoX (Sound eXchange) 或 ffmpeg 中的包络模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448151/

相关文章:

c - ffmpeg 音乐播放器

swift - 如何在 Swift 中从 UnsafeMutablePointer<UInt8> 获取 CVPixelBuffer 句柄?

audio - Sox:连接多个音频文件,中间没有间隙

compression - 如何使用sox压缩mp3?

android - 如何使用 Android 双簧管库处理扬声器更改?

c++ - 有没有办法标记一个 .wav 文件并在其中写入时间?

ios - 使用 AVCaptureMovieFileOutput 保存视频后不播放音频

c# - Windows 7 上的系统蜂鸣声

android - 在 android 上使用 FFmpeg h264 解码器

audio - 从.au到.wav的Sox转换