0

我正在寻找一种使用python实时准确绘制声音的方法。基本上,我正在生成一个频率随噪声函数变化的音调。当频率达到一定的阈值时,我需要输出一个视觉提示(即:打印语句)

我一直在使用 pyaudio 输出音频,效果很好。但是我还没有找到一种方法来绘制它,或者监控它何时达到一定的水平。

编辑:澄清一点:假设我生成了 1 秒的样本。频率在 0.1 秒和 0.7 秒时达到所需水平。我怎样才能播放这个音频样本,并在它达到 0.1 秒和 0.7 秒的那一刻精确地打印一个语句。如何同步某种视觉线索或任何函数调用,与音频播放精确同步。

4

1 回答 1

1

FFT 以及任何离散样本的光谱分析(几乎)永远不会为您提供精确的光谱图。

如果您给 FFT 整个输入,它将为您提供最高分辨率的图形,但该图形将包含整个输入。

您提供的样本越少,光谱分辨率就越低。这是一个权衡。

然而,找到引入某个频率的确切样本是毫无意义的。

您应该提供样本的特定部分(“窗口”)的图形。计算它所代表的播放时间很简单。找到要使用的适当数量的样本取决于您的需求(瞬态与光谱分辨率)。

我不知道你对信号处理有什么了解,所以我现在不想太技术化,但一般方法很简单:

  1. 找到适合您需要的适当数量的样品。
  2. 在播放的同时或之前绘制/分析这些窗口。
  3. 确定与已识别窗口对应的时间。
于 2013-07-30T05:52:57.200 回答