11

如何生成包含 wav/riff 声音文件的频谱的文件?我想使用linux命令行。

我知道生成 png 频谱图的酷 sox 函数

sox sound.wav -n spectrogram

但我不需要频谱的视觉表示。我只想获取数据文件中的频谱,以便我可以处理它们。我相信必须有一个使用 sox 的选项。Sox 需要在绘制数据之前生成该数据。如何得到这个?

不确定,也许第二种解决方案是将 wav 文件导出到 dat 文件中。dat 文件中的每个样本都是对某一时刻膜位置的测量。所以这不是频谱。

sox sound.wav file.dat

如何将这些膜位置转换为我需要的光谱?

谢谢。

4

3 回答 3

5

你可以试试 sox 中的 stat 选项。

play track.wav stat -freq
于 2017-05-03T21:40:16.460 回答
4

您正在寻找的东西称为傅立叶变换或快速傅立叶变换 (FFT)。FFT 是一种数学算法,可将包含在 .wav 文件中的时域样本(即膜位置,如您所说的,在时间点)转换为频率分量。如果您使用 Google FFT,您会发现更多信息,包括可以在 Linux 中编译和重用的源代码。请参阅如何使用 FFT 绘制 wav 文件的频谱?一个好的开始。

于 2014-02-13T14:17:48.253 回答
4

怎么样

sox sound.wav -n stat -freq >& file.dat
于 2019-10-09T18:48:04.450 回答