我正在尝试用python创建一个应用程序,它显示麦克风输入音频当前主导频率的确切值。就像这张照片从吉他调音器应用程序中所示
我刚用红色标记了我需要知道如何编程的部分。 我需要在PC上运行它,以便如何访问麦克风端口以及如何知道频率。
答案 0 :(得分:1)
我不会提供代码,因为您没有在最后显示任何内容。 但这里有高级步骤和提示去做。
1)使用`pyaudio blocking wire stream以块的形式从麦克风中读取输入。
2)对于每个块,应用fft
并获取所有块的频率并添加到阵列/列表。
有一些有用的讨论here和here
因此,如果您有以下参数(1)
RATE = 44100
chunk = 1024
RECORD_SECONDS = 1
您将拥有44个分档,每个分档在FFT
转换后提供一个频率。
3)您可以选择从(2)每秒获得的最大频率max(frequency_list)
,以及您希望记录多少秒。
5)您现在拥有每秒频率,直到您可以实时录制的持续时间。
答案 1 :(得分:0)
找到一种从麦克风端口录制音频的方法,然后运行傅立叶变换来查看频谱。找到能量最多的频率并在仪表上绘制出来。