获取 PyAudio 块的频率

Get frequency of a PyAudio block

我正在编写一个涉及 PyAudio 的程序。我已经使用 stream.read() 捕获了一个块,并使用 Whosebug 上其他地方的 RMS 函数获取了它的振幅。但是,我也希望能够获得该块的(平均?)频率。我想我需要使用(快速?)傅里叶变换,因为我的理解是它可以“内插周期函数”,这听起来正是我所需要的。问题是我不知道我将如何实施它。理想情况下,我有一个函数可以接收一个块并输出一个以赫兹为单位的频率。

编辑:感谢@MSalters,我现在知道这个问题不太可能。更正:理想情况下,我有一个函数可以获取一个块并吐出一组频率(或其他描述性值)。

频率可能不存在 - 音频片段可能包含带有多个音符或打击乐器的和弦。但正如您所怀疑的那样,FFT 是正确的工具。它会告诉你每个单独频率.

的振幅