SEProject 是一个基于 PyQt6 实现的语音信号增强桌面程序,围绕“语音预处理 + 特征分析 + 传统降噪算法 + 图形化界面”展开。项目将常见语音处理流程整合进同一个 GUI 中,方便直接选择音频、试听处理结果、观察频谱变化,并对不同算法的效果进行对比。
从代码实现来看,这个项目更偏向课程设计或实验型工具:一方面提供完整的图形界面,另一方面保留了多种经典算法与实验脚本,适合学习语音增强基础方法以及快速做结果演示。
- 选择待处理音频、待分析音频和参考干净语音。
- 显示采样率、声道数、采样宽度、时长等基础信息。
- 支持播放原始音频、播放增强后音频、停止播放。
- 支持
txt与wav之间互转,便于和外部采集设备或实验数据联动。
- 去除静音:支持仅去首尾静音,或去除整段内部静音。
- 预加重:通过一阶差分突出高频成分。
- 波形与频谱显示:处理前后可以直接查看时域波形和频域谱图。
- FBank 特征提取。
- MFCC 特征提取,并支持一阶、二阶差分拼接展示。
- 支持低通、高通、带通、带阻四类巴特沃斯滤波器。
- 可调采样率、上下截止频率、滤波器阶数。
- 可直接查看滤波器的频率响应和相位响应。
- 可以对音频做滤波并试听结果。
项目中集成了多种传统语音增强方法:
- 基础谱减法。
- 超减法与限零处理。
- 带平滑与最大噪声残差抑制的改进谱减法。
- 进一步加入静音噪声估计与预加重的优化谱减法。
- 维纳滤波:基于干净语音与含噪语音的对照估计滤波器。
- MMSE 系列方法:包括
mmse、log_mmse、log_mmse2、sqr_mmse等增益函数选择。
evaluation_index.py使用pysepm计算多种客观指标。- 评估指标涵盖
SNRseg、fwSNRseg、LLR、WSS、CD、STOI、CSII、PESQ、NCM、SRMR、BSD等。 语音文件/下提供了样例语音、处理结果、文本数据和实验素材,便于直接复现演示流程。
SEProject/
├── main.py # 程序入口,启动 PyQt6 主界面
├── voice_ui.py # 主界面逻辑,连接按钮、文件选择、播放与算法调用
├── UI.ui # 主界面 Qt Designer 文件
├── UI.py # 由 UI.ui 生成的界面代码
├── index.ui # 评估指标窗口 UI
├── index.py # 由 index.ui 生成的评估窗口代码
├── function.py # 通用音频处理函数:波形/频谱、静音消除、预加重、FBank、MFCC
├── filter_designer.py # 滤波器设计与频率/相位响应显示
├── spectral_subtraction.py # 谱减法及其改进实现
├── winner_filter.py # 维纳滤波实现
├── mmse.py # MMSE 语音增强实现
├── evaluation_index.py # 语音增强客观评价脚本
└── 语音文件/ # 样例音频、处理中间结果与实验数据
仓库中暂未提供 requirements.txt,但从代码导入可推断出至少需要以下库:
pip install PyQt6 librosa numpy soundfile sounddevice matplotlib scipy pysepm如果本地环境没有合适的音频播放后端,sounddevice 可能还需要额外安装系统层音频依赖。
python main.py启动后会打开图形界面,主界面中可以直接:
- 选择音频文件
- 播放原声或增强结果
- 执行静音消除、预加重、特征提取
- 设计滤波器并查看响应
- 使用谱减法、维纳滤波、MMSE 等方法处理语音
main.py负责创建QApplication并启动MainFrame。voice_ui.py是整个项目的控制中心,负责把界面按钮和处理逻辑绑定起来。UI.py、index.py是由.ui文件生成的代码,适合通过 Qt Designer 继续维护界面布局。
function.py负责通用处理和可视化。filter_designer.py负责滤波器设计和滤波响应显示。spectral_subtraction.py集中实现谱减法家族算法。winner_filter.py与mmse.py分别实现维纳滤波和 MMSE 增强。evaluation_index.py单独用于客观指标评估,不直接挂载在主流程中。
语音文件/ 目录中包含多类实验素材,例如:
- 干净语音、含噪语音、处理后语音。
- 文本格式的语音数据。
- 传感器底噪与频谱图片。
- 不同处理阶段生成的输出文件。
这些资源可以直接用于测试播放、谱减、维纳滤波、评估指标等功能。
- 语音增强课程设计或实验展示。
- 传统语音降噪算法入门学习。
- 基于 GUI 的快速演示工具。
- 对比不同增强算法对频谱和听感的影响。
- 这是一个实验型项目,算法参数大多通过界面直接调节,适合反复试验。
- 仓库目前没有统一依赖清单,首次运行前需要手动安装所需库。
evaluation_index.py依赖样例文件路径,直接运行前要确认语音文件/中对应文件存在。UI.py和index.py是自动生成文件,如需调整界面,优先修改.ui文件后重新生成。
界面中显示的作者信息为 李润杰。