Skip to content

该程序使用 Python 的 `PyAudio` 和 `Matplotlib` 库实现了一个实时音频示波器,并能够实时显示音频的频率和响度。程序会从麦克风采集音频数据,进行 FFT 变换来计算音频的频率,同时显示音频信号的波形和响度。

License

Notifications You must be signed in to change notification settings

nitsc/oscillograph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

实时音频示波器与频率响度显示

项目简介

该程序使用 Python 的 PyAudioMatplotlib 库实现了一个实时音频示波器,并能够实时显示音频的频率和响度。程序会从麦克风采集音频数据,进行 FFT 变换来计算音频的频率,同时显示音频信号的波形和响度。

功能说明

  • 实时录制音频,并以波形图显示音频信号的幅度。
  • 使用 FFT 计算当前音频的主频率,并显示在界面上。
  • 计算并显示当前音频的响度,以分贝(dB)为单位。

使用方法

  1. 环境依赖

    • Python 3.x
    • numpy
    • matplotlib
    • pyaudio

    可以通过以下命令安装依赖库:

    pip install numpy matplotlib pyaudio
  2. 运行程序 直接运行 oscillograph.py 文件:

    python oscillograph.py
  3. 程序说明

    • 程序启动后会自动开始录音,并实时显示音频波形、频率和响度。
    • 按下 Ctrl + C 可终止录音。

代码说明

  • CHUNK: 每次从音频输入设备读取的帧数,默认为 1024。
  • RATE: 音频采样率,默认为 44100 Hz。
  • update_plot(data): 更新音频波形图的函数。
  • compute_frequency_and_loudness(data): 计算音频的频率和响度的函数。

注意事项

  • 该程序需要本地设备支持音频输入(如麦克风)。
  • 由于实时计算的特性,程序在运行时可能会占用一定的 CPU 资源。

未来改进

  • 增加对多通道音频输入的支持。
  • 优化 FFT 计算部分以提高性能。
  • 添加图形界面的更多自定义选项,例如调整采样率和缓冲区大小。

Releases

No releases published

Packages

No packages published

Languages