news 2026/6/20 12:07:08

最近在折腾语音信号处理,发现小波阈值去噪挺有意思的。咱们先拿一段干净的人声开刀,用Matlab搞点噪声再把它洗干净,看看波形和频谱的变化。(文末附完整代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
最近在折腾语音信号处理,发现小波阈值去噪挺有意思的。咱们先拿一段干净的人声开刀,用Matlab搞点噪声再把它洗干净,看看波形和频谱的变化。(文末附完整代码)

基于Matlab语音信号处理,主要是对一段语音信号进行加噪声处理,去除噪声,对于语音波形图,语音语谱图,和信噪比进行对比,得到较好的去噪效果,小波阈值法去噪,关于语音信号的

先上硬货——加载语音信号的核心代码:

[voice, Fs] = audioread('sample.wav'); t = (0:length(voice)-1)/Fs; subplot(311) plot(t, voice) title('原始信号波形')

这里有个坑:如果采样率太高,处理起来会卡成PPT。建议先resample到8kHz,用decimate函数处理下采样。不过咱们先保持原样,方便观察细节。

接着制造点麻烦——加个高斯白噪声:

noisy_voice = awgn(voice, 10, 'measured'); % 信噪比10dB subplot(312) plot(t, noisy_voice) title('加噪后波形')

awgn函数的'measured'参数是关键,它根据原始信号功率自动计算噪声强度。这时候用soundsc播放听听,能明显感觉背景沙沙声。

上主菜——小波阈值去噪:

clean_voice = wdenoise(noisy_voice, 5, ... 'Wavelet', 'sym4', ... 'DenoisingMethod', 'Bayes', ... 'ThresholdRule', 'Soft'); subplot(313) plot(t, clean_voice) title('去噪后波形')

这里用了Symlets小波基,软阈值处理。重点说下第2个参数5,表示小波分解层数。层数太少去噪不彻底,太多会把语音特征也抹掉,建议在3-7层之间试错。

基于Matlab语音信号处理,主要是对一段语音信号进行加噪声处理,去除噪声,对于语音波形图,语音语谱图,和信噪比进行对比,得到较好的去噪效果,小波阈值法去噪,关于语音信号的

看波形不过瘾?咱们上语谱图:

subplot(131) spectrogram(voice, 256, 250, 256, Fs, 'yaxis') title('原始语谱') subplot(132) spectrogram(noisy_voice, 256, 250, 256, Fs, 'yaxis') title('带噪声语谱') subplot(133) spectrogram(clean_voice, 256, 250, 256, Fs, 'yaxis') title('去噪后语谱')

注意噪声在语谱图上呈现雪花状分布,去噪后虽然还有残留,但语音的共振峰结构已经清晰可见。颜色映射用hot更带感,改下colormap参数试试。

最后算信噪比验证效果:

ori_snr = 10*log10(sum(voice.^2)/sum((noisy_voice-voice).^2)); enh_snr = 10*log10(sum(voice.^2)/sum((clean_voice-voice).^2)); disp(['原始信噪比:', num2str(ori_snr), ' 增强后:', num2str(enh_snr)])

实测从10dB提升到18dB左右,但别高兴太早——这个算法在突发性强噪声面前会翻车。遇到这种状况,建议试试改进阈值函数,或者用EMD分解结合小波处理。

最后提醒:处理前务必做预加重(pre-emphasis),用filter([1 -0.97],1,voice)提升高频分量,这样小波分解时特征更明显。这个方法对气声辅音(比如/s/、/sh/)的恢复效果拔群。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 0:48:06

OpCore Simplify:告别繁琐配置,轻松打造完美Hackintosh系统

OpCore Simplify:告别繁琐配置,轻松打造完美Hackintosh系统 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenC…

作者头像 李华
网站建设 2026/6/15 15:11:33

cv_resnet18_ocr-detection落地案例:物流面单识别系统实现

cv_resnet18_ocr-detection落地案例:物流面单识别系统实现 1. 物流行业痛点与OCR技术价值 在现代物流体系中,每天有数以亿计的包裹在全国乃至全球流转。每一个包裹都附带一张面单,上面包含了发件人、收件人、地址、电话、商品信息等关键数据…

作者头像 李华
网站建设 2026/6/18 22:42:17

解密网页媒体资源嗅探:从技术原理到实战应用

解密网页媒体资源嗅探:从技术原理到实战应用 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的困境:在网页上看到一段精彩的视频,想要保存下来…

作者头像 李华
网站建设 2026/6/12 23:45:43

开源大模型部署趋势一文详解:Llama3+Open-WebUI成开发者新宠

开源大模型部署趋势一文详解:Llama3Open-WebUI成开发者新宠 近年来,开源大模型的落地门槛持续降低,越来越多开发者开始在本地或私有环境中部署高性能对话模型。其中,Meta-Llama-3-8B-Instruct 凭借出色的指令遵循能力与轻量化推理…

作者头像 李华
网站建设 2026/6/18 7:30:51

5分钟部署Qwen3-VL-8B-Instruct,MacBook也能跑的多模态AI实战

5分钟部署Qwen3-VL-8B-Instruct,MacBook也能跑的多模态AI实战 你有没有想过,在自己的 MacBook 上就能运行一个能“看图说话”、理解视频内容、还能执行复杂指令的多模态大模型?听起来像是需要顶级显卡和服务器集群的任务,但现在&…

作者头像 李华
网站建设 2026/6/16 21:43:34

5分钟快速部署PETRV2-BEV模型,星图AI平台让自动驾驶训练更简单

5分钟快速部署PETRV2-BEV模型,星图AI平台让自动驾驶训练更简单 你是否还在为复杂的环境配置、繁琐的数据准备和漫长的模型训练流程头疼?尤其是在做自动驾驶感知任务时,BEV(鸟瞰图)模型的搭建动辄需要数小时甚至几天的…

作者头像 李华