wav 文件的频率分布

Frequency distribution from wav files

我发现我可以使用 SoX 的

play file.wav stat -freq

根据文件的频率生成 table 级别。

但是,它似乎 运行 是实时的,即完成时间与音频播放时间一样长。

如何在尽可能短的时间内生成相同的 table 频率和电平?

SoX输出比较慢,主要是显示问题。一种解决方案可能是将 SoX 的输出(在 stat 的情况下位于 standard error (stderr) 流上)重定向到一个文件.

您可以使用:

sox file.wav -n stat -freq > out 2>&1

这会将 stderr 重定向到 stdout (&1),然后将 stdout 重定向到文件 'out'。有关重定向 stderr 的其他解决方案,请参阅 this link

这应该会更快(在我的例子中,一个 10 分钟的文件只需几秒钟)。