Skip to content

wangzhenjjcn/WirelessMicrophone

Repository files navigation

ESP32S3 音频分析器

基于Seeed Studio XIAO ESP32S3 Sense开发板的实时音频数据分析应用程序。

功能特性

  • 🎵 实时音频波形显示 - 示波器风格的波形图
  • 📊 频谱分析 - 实时频率频谱显示
  • 📈 音频参数计算 - RMS、声压级、峰值频率等
  • 🔊 高级音频特征 - MFCC、谐波分析、响度、尖锐度
  • 🔌 简单易用 - 选择COM口,一键连接

硬件要求

  • Seeed Studio XIAO ESP32S3 Sense开发板
  • USB数据线
  • Windows/Linux/macOS系统

软件依赖

pip install -r requirements.txt

主要依赖包括:

  • PySide6 (Qt6界面)
  • pyqtgraph (实时图表)
  • numpy (数值计算)
  • scipy (信号处理)
  • librosa (音频分析)
  • pyserial (串口通信)

使用步骤

1. ESP32固件烧录

Esp32MicrophoneTest/Esp32MicrophoneTest.ino/Esp32MicrophoneTest.ino.ino 文件烧录到ESP32S3开发板。

2. 运行应用程序

python app.py

3. 连接设备

  1. 将ESP32S3通过USB连接到电脑
  2. 在应用程序中选择对应的COM口
  3. 点击"连接"按钮
  4. 开始实时音频分析

界面说明

控制面板

  • COM口选择 - 选择ESP32设备对应的串口
  • 刷新 - 重新扫描可用串口
  • 连接/断开 - 控制与设备的连接状态
  • 波特率 - 串口通信波特率(默认115200)

左侧显示区域

  • 实时波形 - 显示音频信号的时域波形
  • 频谱分析 - 显示音频信号的频域特征

右侧参数区域

基础参数

  • RMS - 均方根值,反映信号强度
  • 声压级 (dB) - 以分贝为单位的声压级
  • 峰值频率 (Hz) - 频谱中幅值最大的频率
  • 峰值幅度 - 峰值频率对应的幅度

高级参数

  • 响度 - 基于A加权的响度计算
  • 尖锐度 - 高频能量与总能量的比值

MFCC系数

  • 显示梅尔频率倒谱系数,用于音频特征分析

谐波分析

  • 显示基频的各次谐波成分

技术参数

  • 采样率: 16 kHz
  • 位深: 16位
  • 声道: 单声道 (Mono)
  • 更新频率: 20 FPS
  • 缓冲区大小: 2048样本
  • 分析窗长: 1024样本

音频特征说明

RMS (均方根值)

反映音频信号的平均能量水平,常用于测量信号强度。

声压级 (SPL)

以分贝为单位表示的声音响度级别,是音频信号强度的对数表示。

MFCC (梅尔频率倒谱系数)

基于人耳听觉特性的音频特征,广泛用于语音识别和音频分析。

谐波分析

分析基础频率的整数倍频率成分,用于评估音质和音色特征。

响度和尖锐度

  • 响度: 基于A加权的感知响度
  • 尖锐度: 高频成分的相对强度,影响音色的明亮度

故障排除

连接问题

  1. 确认ESP32设备已正确连接
  2. 检查驱动程序是否已安装
  3. 尝试不同的USB端口
  4. 检查波特率设置是否正确

数据显示异常

  1. 确认ESP32固件已正确烧录
  2. 检查串口数据格式是否正确
  3. 重启应用程序和设备
  4. 查看控制台调试输出

调试功能

应用程序现在包含详细的调试功能:

  • 串口调试输出: 显示数据接收统计
  • 缓冲区监控: 实时显示数据缓冲区状态
  • 波形调试: 显示波形更新信息
  • 谐波分析调试: 显示基频和谐波检测结果
  • 状态栏指示器: 实时显示连接和数据状态
  • 进度条: 显示数据缓冲区填充状态

测试工具

如果ESP32硬件不可用,可以使用测试数据发送器:

# 使用测试工具发送模拟音频数据
python test_data_sender.py COM5 -p complex -d 10

# 可用的测试模式:
# sine    - 440Hz正弦波
# complex - 复合谐波信号(推荐用于测试谐波显示)
# chirp   - 扫频信号
# noise   - 白噪声

性能问题

  1. 关闭其他占用CPU的程序
  2. 降低更新频率
  3. 减少显示缓冲区大小

详细的故障排除指南请查看 troubleshooting.md 文件。

开发说明

文件结构

WirelessMicrophone/
├── app.py                          # 主应用程序
├── requirements.txt                # Python依赖
├── README.md                       # 项目说明
└── Esp32MicrophoneTest/           # ESP32固件
    └── Esp32MicrophoneTest.ino/
        └── Esp32MicrophoneTest.ino.ino

扩展功能

  • 可以添加音频录制功能
  • 支持WiFi无线传输
  • 增加更多音频特征分析
  • 添加数据导出功能

许可证

本项目采用开源许可证,详见LICENSE文件。

贡献

欢迎提交Issue和Pull Request来改进项目。


注意: 请确保在使用前已正确安装所有依赖库,并将ESP32固件烧录到开发板中。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published