该程序使用 Python 的 PyAudio
和 Matplotlib
库实现了一个实时音频示波器,并能够实时显示音频的频率和响度。程序会从麦克风采集音频数据,进行 FFT 变换来计算音频的频率,同时显示音频信号的波形和响度。
- 实时录制音频,并以波形图显示音频信号的幅度。
- 使用 FFT 计算当前音频的主频率,并显示在界面上。
- 计算并显示当前音频的响度,以分贝(dB)为单位。
-
环境依赖
- Python 3.x
numpy
matplotlib
pyaudio
可以通过以下命令安装依赖库:
pip install numpy matplotlib pyaudio
-
运行程序 直接运行
oscillograph.py
文件:python oscillograph.py
-
程序说明
- 程序启动后会自动开始录音,并实时显示音频波形、频率和响度。
- 按下
Ctrl + C
可终止录音。
CHUNK
: 每次从音频输入设备读取的帧数,默认为 1024。RATE
: 音频采样率,默认为 44100 Hz。update_plot(data)
: 更新音频波形图的函数。compute_frequency_and_loudness(data)
: 计算音频的频率和响度的函数。
- 该程序需要本地设备支持音频输入(如麦克风)。
- 由于实时计算的特性,程序在运行时可能会占用一定的 CPU 资源。
- 增加对多通道音频输入的支持。
- 优化 FFT 计算部分以提高性能。
- 添加图形界面的更多自定义选项,例如调整采样率和缓冲区大小。