Skip to content

Repository files navigation

SEProject

项目简介

SEProject 是一个基于 PyQt6 实现的语音信号增强桌面程序,围绕“语音预处理 + 特征分析 + 传统降噪算法 + 图形化界面”展开。项目将常见语音处理流程整合进同一个 GUI 中,方便直接选择音频、试听处理结果、观察频谱变化,并对不同算法的效果进行对比。

从代码实现来看,这个项目更偏向课程设计或实验型工具:一方面提供完整的图形界面,另一方面保留了多种经典算法与实验脚本,适合学习语音增强基础方法以及快速做结果演示。

主要功能

1. 音频文件管理与播放

  • 选择待处理音频、待分析音频和参考干净语音。
  • 显示采样率、声道数、采样宽度、时长等基础信息。
  • 支持播放原始音频、播放增强后音频、停止播放。
  • 支持 txtwav 之间互转,便于和外部采集设备或实验数据联动。

2. 预处理与分析功能

  • 去除静音:支持仅去首尾静音,或去除整段内部静音。
  • 预加重:通过一阶差分突出高频成分。
  • 波形与频谱显示:处理前后可以直接查看时域波形和频域谱图。
  • FBank 特征提取。
  • MFCC 特征提取,并支持一阶、二阶差分拼接展示。

3. 滤波器设计

  • 支持低通、高通、带通、带阻四类巴特沃斯滤波器。
  • 可调采样率、上下截止频率、滤波器阶数。
  • 可直接查看滤波器的频率响应和相位响应。
  • 可以对音频做滤波并试听结果。

4. 语音增强算法

项目中集成了多种传统语音增强方法:

  • 基础谱减法。
  • 超减法与限零处理。
  • 带平滑与最大噪声残差抑制的改进谱减法。
  • 进一步加入静音噪声估计与预加重的优化谱减法。
  • 维纳滤波:基于干净语音与含噪语音的对照估计滤波器。
  • MMSE 系列方法:包括 mmselog_mmselog_mmse2sqr_mmse 等增益函数选择。

5. 评估与实验资源

  • evaluation_index.py 使用 pysepm 计算多种客观指标。
  • 评估指标涵盖 SNRsegfwSNRsegLLRWSSCDSTOICSIIPESQNCMSRMRBSD 等。
  • 语音文件/ 下提供了样例语音、处理结果、文本数据和实验素材,便于直接复现演示流程。

项目结构

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       # 语音增强客观评价脚本
└── 语音文件/                 # 样例音频、处理中间结果与实验数据

运行流程

1. 安装依赖

仓库中暂未提供 requirements.txt,但从代码导入可推断出至少需要以下库:

pip install PyQt6 librosa numpy soundfile sounddevice matplotlib scipy pysepm

如果本地环境没有合适的音频播放后端,sounddevice 可能还需要额外安装系统层音频依赖。

2. 启动程序

python main.py

启动后会打开图形界面,主界面中可以直接:

  • 选择音频文件
  • 播放原声或增强结果
  • 执行静音消除、预加重、特征提取
  • 设计滤波器并查看响应
  • 使用谱减法、维纳滤波、MMSE 等方法处理语音

代码实现说明

图形界面

  • main.py 负责创建 QApplication 并启动 MainFrame
  • voice_ui.py 是整个项目的控制中心,负责把界面按钮和处理逻辑绑定起来。
  • UI.pyindex.py 是由 .ui 文件生成的代码,适合通过 Qt Designer 继续维护界面布局。

算法组织方式

  • function.py 负责通用处理和可视化。
  • filter_designer.py 负责滤波器设计和滤波响应显示。
  • spectral_subtraction.py 集中实现谱减法家族算法。
  • winner_filter.pymmse.py 分别实现维纳滤波和 MMSE 增强。
  • evaluation_index.py 单独用于客观指标评估,不直接挂载在主流程中。

样例数据说明

语音文件/ 目录中包含多类实验素材,例如:

  • 干净语音、含噪语音、处理后语音。
  • 文本格式的语音数据。
  • 传感器底噪与频谱图片。
  • 不同处理阶段生成的输出文件。

这些资源可以直接用于测试播放、谱减、维纳滤波、评估指标等功能。

适用场景

  • 语音增强课程设计或实验展示。
  • 传统语音降噪算法入门学习。
  • 基于 GUI 的快速演示工具。
  • 对比不同增强算法对频谱和听感的影响。

当前特点与注意事项

  • 这是一个实验型项目,算法参数大多通过界面直接调节,适合反复试验。
  • 仓库目前没有统一依赖清单,首次运行前需要手动安装所需库。
  • evaluation_index.py 依赖样例文件路径,直接运行前要确认 语音文件/ 中对应文件存在。
  • UI.pyindex.py 是自动生成文件,如需调整界面,优先修改 .ui 文件后重新生成。

作者

界面中显示的作者信息为 李润杰

About

语言增强的基本算法及QT操作界面的实现

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages