如何生成随时间变化的频率波?

如何生成随时间变化的频率波?

我想创建一个频率与时间相关的声音,假设timems 的频率为timeHz,因此在 20 秒内您将获得所有可听见的频率。举个例子,ffmpeg你可以使用时间变量(%T)来叠加视频上每一帧的时间。我想我可以使用 %T 变量来生成这样的波形。我试过

ffmpeg -f lavfi -i "sine=frequency=%T*1000:sample_rate=44100:duration=20" -c:a pcm_s16le allfreq.wav

但似乎sine滤波器必须有一个固定的频率。

我尝试使用ffmpeg但只要它是免费的,使用什么程序都没关系(欢迎轻量下载)。

答案1

虽然你一开始谈论的是视频,但似乎你对音频很感兴趣。你的想法是sine函数是正确的,它需要一个固定频率,因为您以这种方式设置基频。它仍然是“围绕”该频率的正弦波。

您实际上想要做的是生成正弦函数的一部分,或者更可能是线性函数,不断增加频率。为此,您可以尝试使用类似大胆而且它脉冲发生器从听上去,这就是你要找的东西。它允许你生成从频率 X 开始的声音,并在时间 N 之后让它在频率 Y 结束。

答案2

如果使用 ffmpeg,则您有 aevalsrc 过滤器:

ffmpeg -f lavfi -i "aevalsrc='sin(1000*t*2*PI*t)':s=44100:d=20" -c:a pcm_s32le allfreq.wav

一旦您弄清楚了所需的表达式,您就应该能够模拟所有的啁啾发生器参数:)

我使用 32 位浮点数作为输出格式,因为这是 Audacity 的工作格式。

相关内容