我目前正在从事一个射电天文学项目,我需要随着时间的推移监控音频信号的幅度。
我使用了 user1405612 此处建议的简化 Python 代码,Detect Tap with pyaudio from live mic,它获取麦克风输入并计算出 RMS 幅度,并且我添加了一个部分来简单地将值记录到 CSV 文件中。这工作得很好,必须感谢 ouser1405612!
但是,有没有一种方法可以对此代码实现一个简单的频率滤波器。例如,我对频率 19.580khz 的 RMS 幅度感兴趣(实际上我想查看 19.4hkz 到 19.6hkz 的范围)?
有没有办法使用上面链接中的代码通过查看原始流数据或任何其他方式来使用 PyAudio 来执行此操作?我不需要任何复杂的东西,比如图表、频谱分析等,只是一个简单的频率滤波器。不幸的是,麦克风输入之前的带通滤波器是不可能的,因此需要在计算机上完成。
提前致谢!
更新 - 2014 年 12 月 31 日 - 她是我当前的代码:
# source /sf/ask/291212281/
import pyaudio
import struct
import math
import datetime
FORMAT = pyaudio.paInt16
SHORT_NORMALIZE = (1.0/32768.0)
CHANNELS = 1
#RATE = 44100
RATE = 48000
INPUT_BLOCK_TIME = 1
INPUT_FRAMES_PER_BLOCK = int(RATE*INPUT_BLOCK_TIME)
filename = 'Data.CSV'
def get_rms(block):
count …Run Code Online (Sandbox Code Playgroud)