基于Matlab的语音去噪处理

article/2025/9/28 1:08:17

基于Matlab的语音去噪处理


一、课题背景


1.1 研究的意义

语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。

语音信号是信息技术处理中最重要的一门科学,是人类社会几步的标志。那么什么是语音?语音是人类特有的功能,也是人类获取外界信息的重要工具,也是人与人交流必不可少的重要手段。那么什么又是信号?那信号是什么呢?信号是传递信息的函数。离散时间信号——序列——可以用图形来表示。

语音信号处理是一门用研究数字信号处理研究信号的科学。它是一新兴的信

息科学,同时又是综合多个学科领域的一门交叉科学。语音在我们的日常生

活中随时可见,也随处可见,语音很大程度上可以影响我们的生活。所以研究语音信号无论是在科学领域上还是日常生活中都有其广泛而重要的意义。

1.2 实现功能

本论文主要介绍的是的语音信号的简单处理。本论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab7.0环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。我所做的工作就是在matlab7.0软件上编写一个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单语音信号处理的目的。

对语音信号的研究,本论文采用了设计两种滤波器的基本研究方法来达到研究语音信号去噪的目的,最终结合图像以及对语音信号的回放,通过对比,得出结论。

本课题的研究基本步骤如下:

1、语音信号的录制。

2、在MATLAB平台上读入语音信号。

3、绘制频谱图并回放原始语音信号。

4、利用MATLAB编程加入一段正弦波噪音,设计滤波器去噪。

5、利用MATLAB编程加入一段随机噪音信号,设计FIR和IIR滤波器去噪,并分别绘制频谱图、回放语音信号。

6 通过仿真后的图像以及对语音信号的回放,对比两种去噪方式的优缺点。


其大概流程框图可如下表示:(图1-1)


语音信号采集

效果显示、对比


图1-1 论文设计的流程


第二章 去噪及仿真的研究

2.1 语音文件在MATLAB平台上的录入与打开

单击自己的电脑开始程序,选择所有程序,接着选择附件,再选择娱乐,最后选择录音。自己录入“毕业设计”语音信号,然后保存在MATLAB文件夹里面,命名为“wangqingtian.wav”。

利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。

[y,fs,bits]=wavread(' [N1 N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[N1 N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。

2.2 原始语音信号频谱分析及仿真

利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。对于波形图与频谱图(包括滤波前后的对比图)都可以用 MATLAB画出。我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。选择设计此方案,是对数字信号处理的一次实践。在数字信号处理的课程学习过程中,我们过多的是理论学习,几乎没有进行实践方面的运用。这个课题正好是对数字语音处理的一次有利实践,而且语音处理也可以说是信号处理在实际应用中很大众化的一方面。这个方案用到的软件也是在数字信号处理中非常通用的一个软件——MATLAB软件。所以这个课题的设计过程也是一次数字信号处理在MATLAB中应用的学习过程。课题用到了较多的MATLAB语句,而由于课题研究范围所限,真正与数字信号有关的命令函数却并不多。sound(x,fs,bits); 用于对声音的回放。向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。

FFT的MATLAB实现:

在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。下面介绍这些函数。

函数FFT用于序列快速傅立叶变换。

函数的一种调用格式为 y=fft(x)

其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向量进行FFT。

如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。

函数FFT的另一种调用格式为y=fft(x,N)

式中,x,y意义同前,N为正整数。函数执行N点的FFT。若x为向量且长度小于N,则函数将x补零至长度N。若向量x的长度大于N,则函数截短x使之长度为N。若x 为矩阵,按相同方法对x进行处理。

经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。MATLAB提供求复数的幅值和相位函数:abs,angle,这些函数一般和 FFT同时使用。

函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角,介于 和 之间,以弧度表示。函数unwrap(p)用于展开弧度相位角p ,当相位角绝对变化超过 时,函数把它扩展至 。

用MATLAB工具箱函数fft进行频谱分析时需注意:

(1)函数fft返回值y的数据结构对称性

一般而言,对于N点的x(n)序列的FFT是N点的复数序列,其点n=N/2+1对应Nyquist频率,作频谱分析时仅取序列X(k)的前一半,即前N/2点即可。X(k)的后一半序列和前一半序列时对称的。

(2)频率计算

若N点序列x(n)(n=0,1,…,N-1)是在采样频率 下获得的。它的FFT也是N点序列,即X(k)(k=0,1,2,…,N-1),则第k点所对应实际频率值为f=k*f /N.

(3)作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。

下面的一段程序是语音信号在MATLAB中的最简单表现,它实现了语音的读入打开,以及绘出了语音信号的波形频谱图。

[x,fs,bits]=wavread('yuyinwav’);

sound(x,fs,bits);

X=fft(x,4096);

magX=abs(X);

angX=angle(X);

subplot(221);plot(x);title('原始信号波形');

subplot(222);plot(X); title('原始语音信号采样后的频谱图‘)

subplot(223);plot(magX);title('原始信号幅值');

subplot(224);plot(angX);title('原始信号相位');

程序运行可以听到声音,得到的图形为:(图2-1、图2-2、图2-3、图2-4)

图2-1 原始信号波形

v2-4ff4626b3b88158c4a84960f928c8c28_b.jpg


v2-1dbb5e03b49d958bf1f61aabf7cea303_b.jpg



v2-6c2cda471d8ab06931d5bafe77d9ae34_b.jpg

图2-3 原始信号幅值










v2-3c95853f7809ec4abb93ca84cb25a81e_b.jpg

图2-4 原始信号相位




2.3 加噪语音信号频谱分析及仿真

(1)正弦波信号加入原始语音信号

前面已经介绍了MATLAB软件相关知识,那么我们怎么在NATLAB平台上实现对一段原始语音信号加入一个正弦波信号呢?

下面一段程序实现了在原始语音信号加入正弦波信号。程序见附录5

分析此段程序可知,此程序是先对原始语音信号做时域波形分析和频谱分析,然后再对加噪的语音信号做时域波形分析和频谱分析。

首先通过MATLAB中调用和回放语音信号命令来实现对原始语音信号的调用和回放,程序如下:

[y,fs,bits]=wavread('yuyin.wav');


sound(y,fs)


由于在MATLAB中,如要实现两个信号的相加减,那么两个信号的长度和维度都要一样才能相加减。程序中:n=length(y) 用于计算信号的长度和选取变换的点数。然后用傅里叶变换到频域:y_p=fft(y,n);通过函数 f=fs*(0:n/2-1)/n;计



v2-b2152e4c8908de17bdf847fb231494e6_b.jpg

图2—5 原始语音信号采样后时域波形和频谱图

上段程序中,函数noise是频率为3000Hz的正弦波信号噪音,语句y_z=y+noise实现了两个信号的相加,然后绘制加噪后的语音信号时域波形和频谱图并回放加噪后的语音信号。加噪后的时域波形和频谱图如下:(图4—6)



v2-d351c933f75cba0100d3f831e889f3ed_b.jpg

图2-6 加噪语音信号时域波形和频谱图

如上所示,通过对加噪前和加噪后语音信号的图像的对比和对语音信号回放的人耳感知可以知道,加入正弦波信号后频谱图和时域波形并没有什么明显的变化,而人耳听到的声音也几乎没有什么变化。

(2)随机噪音信号加入原始语音信号

matlab函数randn:产生正态分布的随机数或矩阵的函数

产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。
用法:
Y = randn(n)
返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。
Y = randn(m,n) 或 Y = randn([m n])
返回一个m*n的随机项矩阵。
Y = randn(m,n,p,...) 或 Y = randn([m n p...])
产生随机数组。
Y = randn(size(A))
返回一个和A有同样维数大小的随机数组。
randn
返回一个每次都变化的数量。

下面一段程序实现了利用randn函数把一段随机噪音信号加入原始语音信号的信号处理过程:见附录6



v2-23395154692f8565039fde2d0fd5d176_b.jpg

图2-7 加噪语音信号时域波形和频谱图

通过对两张图片的对比,很明显可以看加噪后的语音信号时域波形比原始语音信号浑浊了许多,在时间轴上可以明显看出0—0.5S的幅值增大了;通过对原始语音信号的频谱图与加噪后的语音信号频谱图的对比,也可以看出在频率5000Hz以后的频率幅值发生了明显的增加。

再通过对原始语音信号的回放效果与加噪后的语音信号回放的效果的对比,人耳可以明显辨别出两种语音信号不一样了,加噪后的语音信号在听觉上比原始语音信号要浑浊很多,而且还有吱吱嘎嘎的混杂音。

2.4 去噪及仿真

(1)FIR滤波器法去噪

通过对上一节中加噪语音信号和原始语音信号频谱图对比可以知道,噪音大部分是Hz大于5000的部分,故设计低通滤波器进行滤波处理。接下来我们要用设计的FIR低通滤波器对上一节中加噪语音信号进行滤波处理。


v2-548eb73395ce50b1a37dbb1af58b937d_b.jpg

图2-8 FIR滤波前和滤波后波形及频谱

分析:从以上四图可以很明显和直观的看出原始语音信号和加噪语音信号时域波形和频谱图的区别。加噪后的语音信号的时域波形比原始语音信号要模糊得多,频谱图则是在频率5000Hz以后出现了明显的变化。

再通过滤波前的信号波形和频谱图的对比,可以明显看出滤波后的波形开始变得清晰了,有点接近原始信号的波形图了。滤波后信号的频谱图也在5000Hz以后开始逐渐接近原始语音信号的频谱图。


v2-8af54ccd268acd29059eb2f3f78ea122_b.jpg

图2-9 IIR滤波前和滤波后波形及频谱


参考文献

[1] Boll S F.Suppression of Acoustic Noise in Speech Using Spectral Subtraction[J].IEEE Trans.on Acoustics,Speech,and Signal Processing,1979,27(2):113-120.

[2] Berouti M,Schwartz R,Makhoul J.Enhancement of SpeechCorrupted by Acoustic Noise[J].IEEE Trans.on Acoustics,Speech,and Signal Processing,1979,4:208-211.

[3] 胡航,语音信号处理,哈尔滨工业大学出版社,2000 年 5 月

[4]ThomsonDJ.SpectrumEstimationand armonicAnalysis[J].Proc.IEEE,1982,70(9):1 055-1 096.

[5]皇甫堪,陈建文,楼生强.现代数字信号处理[M].北京:电子工业出版社,2003.

[6]Hu Yi,Loizou P C.Speech Enhancement Based on WaveletThresholding the Multitaper Spectrum[J]. IEEE Trans.onSpeech and Audio Processing,2004,12(1):59-67.

[7]吴红卫,吴镇扬,赵力.基于多窗谱的心理声学语音增强[J].声学学 报,2007,32(3):275-281.

[8]潘欣裕,童兴法,赵鹤鸣,基于谱能比例加权的谱减法语音增强研究[J]. 中 国电子学会第十五届信息论学术年会暨第一届全国网络编码学术年会论文集

[9] 程正,赵鹤鸣. 基于多频带谱减法的语音增强算法的研究[J]. 002-8331(2007)36-0040-03.

[10] 曹瑜镠,方元,吕勇.基于最小统计及谱减法的语音增强[J]. 语音技术. 002-8684(2006)12-0043-04

[11]白文雅,黄健群,陈智伶.基于维纳滤波语音增强算法的改进实现[J].电声 技术,2007,31(1) :44-46.

[12]蔡斌.一种改进型 MMSE 语音增强方法[J].信号处理,2004,20(1) :70-74.

[13]陈俊,孙洪,董航.基于 MMSE 先验信噪比估计的语音增强[J].武汉大学学 理学版,2005,51(5) :638-642.

[14]樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2008.

[15]姚天任.数字语音处理[M].武汉:华中科技大学出版社,2005.


http://chatgpt.dhexx.cn/article/yntuq76t.shtml

相关文章

如何评价滤波器的去噪效果?

假如使用两种滤波器,那么滤波效果如何去评价1? 为了能够得到高质量的去噪后信号,需要对滤波器的滤波效果进行评价,选取去噪效果最好的滤波器对原始信号进行去噪处理。 一般使用信噪比和峰值信噪比对滤波器进行量化评价&#xff0c…

经典图像去噪算法概述

目录 一、图像去噪基础知识 1. 图像去噪模型 2. 图像去噪类型 2.1 噪声类型——融合方式 2.2 噪声类型——概率分布 二、非局部均值图像去噪方法 三、基于图像先验的正则化去噪模型 1. 图像的梯度先验 2. 图像的非局部自相似先验 3. 图像的稀疏性先验 4. 图像的低秩…

小波去噪基本概念

一、前言 在现实生活和工作中,噪声无处不在,在许多领域中,如天文、医学图像和计算机视觉方面收集到的数据常常是含有噪声的。噪声可能来自获取数据的过程,也可能来自环境影响。由于种种原因,总会存在噪声,噪声的存在往…

Python实现图像去噪(中值去噪和均值去噪)

实现对图像进行简单的高斯去噪和椒盐去噪。代码如下: import numpy as np from PIL import Image import matplotlib.pyplot as plt import random import scipy.misc import scipy.signal import scipy.ndimage from matplotlib.font_manager import FontProperti…

七种滤波去噪方式

创建两个混合信号,便于更好测试滤波器效果。同时用七种滤波方法测试。 混合信号Mix_Signal_1 信号Signal_Original_1白噪声。 混合信号Mix_Signal_2 信号Signal_Original_2白噪声。 1.巴特沃斯低通滤波器去噪 巴特沃斯滤波器适合用于信号和噪声没有重叠的情况下。…

图像恢复(加噪与去噪)

人工智能导论实验导航 实验一:斑马问题 https://blog.csdn.net/weixin_46291251/article/details/122246347 实验二:图像恢复 https://blog.csdn.net/weixin_46291251/article/details/122561220 实验三:花卉识别 https://blog.csdn.net/…

去噪很有效的代码

去噪很有效的代码 主要思想:通过筛选面积小的联通区域,来实现去噪。 主要使用函数:cv2.connectedComponentsWithStats(img, connectivity),详解见:计算不规则连同区域 1. 原图与效果图 2. 实现代码 import cv2 impo…

图像去噪技术

目录 1.1图像去噪的基本概念 1.2 去噪效果评价标准 ​ 1.3传统去噪方法(简单介绍) 1.4 非局部均值去噪(NLmeans) ​ 1.6基于稀疏模型的去噪方法 总结 噪声的产生是信号在采集、传输以及记录过程中,受到成像设备自…

图像修复与去噪

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…

小波阈值去噪原理及实现

小波阈值去噪原理及实现 1.小波阈值去噪的基本原理2.小波阈值去噪需要考虑的问题3.小波阈值的实现 1.小波阈值去噪的基本原理 将信号通过小波变换(采用Mallat算法)后,信号产生的小波系数含有信号的重要信息,将信号经小波分解后小…

python 图像平滑去噪(噪声+滤波器)

记录自己用python加opencv实现的图像处理的入门操作,各种平滑去噪滤波器的实现。 包括有:产生的椒盐噪声、高斯噪声等等,以及使用的中值滤波、平均滤波、高斯滤波等等。 分成了两部分来实现:一是自编写函数来实现,二是…

小波阈值去噪

目录 1.概念 2.原理 3.影响降噪效果的因素 3.1小波基的选择 3.2分解层数的选择 3.3阈值的选择 3.4阈值函数的选择 4.MATLAB代码 参考文献 1.概念 小波分析即用Mallat塔式算法对信号进行降阶分解。该算法在每尺度下将信号分解成近似分量与细节分量。近似分量表示信号的…

去噪

平滑去噪(低通滤波器) 噪声的产生是因为图像中的某些像素的灰度值发生了突变,使得和周围区域不和谐。除噪其实去除高频噪声,使得图像中的噪声像素的灰度值不那么突兀。 噪声去除有基于卷积(高斯滤波,均值…

图像的去噪

一、图像噪声概要 1. 图像噪声的产生主要源于两个方面: 图像获取过程中 常见的图像传感器CCD和CMOS在采集图像过程中,由于受到工作环境或者电子电路结构的影响,会引入各种噪声,如热噪声、光子噪声、暗电流噪声等。 信号传输过程…

图像去噪方法

图像去噪是指减少数字图像中噪声的过程。现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声等的影响,在这种条件下得到的图像称为含噪图像或噪声图像。噪声是干扰图像的重要因素。一幅图像在实际应用中可能存在各种各样的噪声,这些噪声…

搞懂语音去噪

文章目录 1 概述2 传统语音去噪2.1 谱减法2.2 维纳滤波法 3 深度语音去噪参考资料 1 概述 语音去噪(noise reduction)又被称为语音增强(speech enhancement),主要是针对于有人声的音频进行处理,目的是去除那些背景噪声,增强音频中人声的可懂…

几种常用信号平滑去噪的方法(附Matlab代码)

几种常用信号平滑去噪的方法(附Matlab代码) 1 滑动平均法 1.0 移动平均法的方法原理1.1 matlab内自带函数实现移动平均法1.2 利用卷积函数conv()实现移动平均法1.3 利用filter滤波函数实现移动平均法1.4 移动平均的幅频响应1.5 时域和频域的转换关系 2 …

图像噪声、去噪基本方法合集(Python实现)

文章目录 前言本文主要参考冈萨雷斯的数字图像处理 (第4版),介绍图片中一些常见的噪声形式和常用的去噪方法,并且给出相应滤波方法的实现代码。 一、噪声分类1、高斯噪声2、泊松噪声3、椒盐噪声4、瑞利噪声5、爱尔兰(伽…

干货 | 6款漏扫工具来了(附工具下载链接)

渗透测试收集信息完成后,就要根据所收集的信息,扫描目标站点可能存在的漏洞了,包括我们之前提到过的如:SQL注入漏洞、跨站脚本漏洞、文件上传漏洞、文件包含漏洞及命令执行漏洞等,通过这些已知的漏洞,来寻找…

webshell扫描工具

webshell扫描工具,这是一种内部有多个漏洞,可自动进行url采集,自采集多个引擎和友情链接url,轻松日出上百。 演示地址:https://note.youdao.com/s/Xi9S4I16 目录遍历攻击又称(目录爬升,目录回溯…