我需要在无头 Linux 主机上的批处理作业中从一组音频文件中提取声波包络。
我认为这可以使用Nyquist 编程语言来实现,它是 Lisp 的一种变体,尤其是嵌入了 Audacity 中,并且专门用于声音处理。但是,如果我对 Lisp 有一些了解,那么我之前没有任何使用 Nyquist 的经验。
Nyquist 中是否有一些原语可以直接实现这一点?或者我如何编写一个简短的 Nyquist 程序来提取声音的包络?
我尝试使用snd-avg函数。但它似乎没有产生一个平滑的包络(截图中的上半部分):
(snd-avg
(aref *track* 0) ; first sound
(truncate (/ *sound-srate* 50)) ; 50 Hz to samples
1 op-peak) ; follow peak values