基于小波变换的语音增强及去噪系统
项目介绍
本项目是一款基于多尺度离散小波变换(DWT)的语音增强工具,专为解决语音信号在传输或录制过程中受到的背景噪声干扰问题而设计。该系统通过分析信号与噪声在小波域的不同能量分布规律,能够精确提取纯净语音成分并抑制高频噪声。该方案在提升语音清晰度的同时,较好地保留了信号的共振峰结构,适用于通信前端处理、智能语音识别预处理及低信噪比环境下的音频修复。
功能特性
- 多尺度小波分析:采用经典的小波基函数对信号进行深度分解,实现时频两域的联合特性提取。
- 多样化阈值策略:系统集成了硬阈值、软阈值以及改进的半软硬阈值算法,适应不同强度的噪声环境。
- 完善的前后处理:内置预加重与逆滤波处理,有效补偿高频语音能量,增强语音的辨识度。
- 自动化阈值计算:基于第一层细节系数的中值估计噪声强度,利用通用阈值公式(Universal Threshold)自动计算最优处理门限。
- 多维评估指标:提供信噪比(SNR)、改善量及均方误差(MSE)等量化评估数据,并辅以时域波形图与频域语谱图的直观对比。
使用方法
- 环境配置:确保电脑中已安装 MATLAB 环境以及信号处理工具箱(Signal Processing Toolbox)和小波工具箱(Wavelet Toolbox)。
- 数据准备:系统默认加载 MATLAB 内置的
mtlb 语音信号。如需处理自己的音频,可替换为 audioread 函数读入 .wav 文件。 - 参数调节:在脚本代码中通过修改变量,可自主设定目标信噪比(target_snr)、小波分解层数(level)及阈值处理模式(mode)。
- 运行系统:直接执行主程序,系统将自动依次执行噪声注入、预加重、小波去噪及结果评估。
- 结果查看:运行结束后,控制台将输出性能指标,并自动弹出波形对比图和语谱图。
系统要求
- 软件环境:MATLAB R2018b 或更高版本。
- 必要组件:Wavelet Toolbox, Signal Processing Toolbox。
- 硬件要求:标准桌面或笔记本电脑,满足 MATLAB 运行的基本内存需求即可。
实现逻辑与功能细节
本系统在主程序中实现了完整的闭环处理流程,具体逻辑如下:
1. 信号读入与噪声模拟
系统首先导入离散语音采样信号,并对信号进行行向量归一化处理。程序通过生成高斯白噪声,并根据用户设定的目标信噪比(SNR)计算噪声增益,将其叠加到原始信号上,模拟真实环境下的带噪音频。
2. 信号预处理
为提升高频段信噪比,系统采用了 $H(z) = 1 - 0.97z^{-1}$ 的预加重滤波器。此步骤通过补偿高频部分的能量,突出语音的细节特征,为后续的小波分解奠定基础。
3. 小波域分解
核心算法采用 db4 小波基函数(Daubechies 4)对信号进行 5 层离散小波分解(DWT)。通过分解,将语音信号映射为低频近似系数(Approximation)和多层高频细节系数(Detail)。
4. 噪声评估与阈值计算
系统通过分析第一层细节系数(cD1),利用基于中位数的绝对偏差(MAD)方法估计噪声的标准差 $sigma$。随后根据公式 $T = sigmasqrt{2ln(N)}$(其中 N 为信号长度)计算全局通用阈值。
5. 阈值化处理策略
针对分解得到的高频系数,系统提供三种可选的处理模式:
- 硬阈值法:将绝对值小于阈值的系数置零,保留大于阈值的系数。
- 软阈值法:在置零小系数的同时,将大系数向零方向收缩,保证函数连续性,减少重构后的振铃效应。
- 改进半软硬阈值法:通过引入调节因子 k(代码中设为 0.5),在硬阈值与软阈值之间寻求平衡,使函数在阈值边界处更加平滑,进一步优化信噪比表现。
6. 信号重构与恢复
处理后的各层小波系数通过小波逆变换(IDWT)进行重构。随后,系统执行逆滤波操作以消除预加重的影响,还原出增强后的原始时间序列。
7. 性能评估与可视化
系统通过对比原始信号、带噪信号与增强信号,计算以下量化指标:
- 输入/输出 SNR:量化噪声抑制程度。
- MSE:衡量重构信号相对于原始纯净信号的偏离程度。
- 图形展示:同步生成三路信号的时域波形图以及时频域语谱图(Spectrogram),直观反映去噪过程对信号能量分布的影响。