基于MATLAB的语音处理Word下载.docx

上传人:b****1 文档编号:4290809 上传时间:2023-05-03 格式:DOCX 页数:19 大小:624.07KB
下载 相关 举报
基于MATLAB的语音处理Word下载.docx_第1页
第1页 / 共19页
基于MATLAB的语音处理Word下载.docx_第2页
第2页 / 共19页
基于MATLAB的语音处理Word下载.docx_第3页
第3页 / 共19页
基于MATLAB的语音处理Word下载.docx_第4页
第4页 / 共19页
基于MATLAB的语音处理Word下载.docx_第5页
第5页 / 共19页
基于MATLAB的语音处理Word下载.docx_第6页
第6页 / 共19页
基于MATLAB的语音处理Word下载.docx_第7页
第7页 / 共19页
基于MATLAB的语音处理Word下载.docx_第8页
第8页 / 共19页
基于MATLAB的语音处理Word下载.docx_第9页
第9页 / 共19页
基于MATLAB的语音处理Word下载.docx_第10页
第10页 / 共19页
基于MATLAB的语音处理Word下载.docx_第11页
第11页 / 共19页
基于MATLAB的语音处理Word下载.docx_第12页
第12页 / 共19页
基于MATLAB的语音处理Word下载.docx_第13页
第13页 / 共19页
基于MATLAB的语音处理Word下载.docx_第14页
第14页 / 共19页
基于MATLAB的语音处理Word下载.docx_第15页
第15页 / 共19页
基于MATLAB的语音处理Word下载.docx_第16页
第16页 / 共19页
基于MATLAB的语音处理Word下载.docx_第17页
第17页 / 共19页
基于MATLAB的语音处理Word下载.docx_第18页
第18页 / 共19页
基于MATLAB的语音处理Word下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MATLAB的语音处理Word下载.docx

《基于MATLAB的语音处理Word下载.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的语音处理Word下载.docx(19页珍藏版)》请在冰点文库上搜索。

基于MATLAB的语音处理Word下载.docx

4.语音压缩:

在m命令窗中输入如下命令:

5.运行sample2.m之后会在work文件夹中生成一个名为lei2的.wav文件,如下图:

6.双击lei2音频文件,用耳机试听效果,并跟lei1的效果比较。

7.在sample2.m文件中改变抽取倍率s(必须为正整数),重复4、5、6步,观察在不同抽取倍率s下的音频质量,

(注意:

在运行sample2.m之前必须将work中名为lei2的.wav音频文件删除,或在.m文件中wavwrite()中的保存文件名改为其它的名字。

二、音频信号的时域滤波(音频数据的时域卷积)。

(一)、低通滤波

1.打开Matlab并新建一.m文件,在.m文件中用y=wavread(‘lei.wav’)命令读入语音文件。

2.在m命令窗中输入如下命令,并加存为sample3.m,运行该m文件。

3.双击lei3音频文件,用耳机试听效果,并跟lei1的效果比较。

4.再加一级h(n)的低通滤波,重复2、3步,如下图:

在运行lei2.m之前必须将work中名为lei3的.wav音频文件删除,或在.m文件中wavwrite()中的保存文件名改为其它的名字。

5.重复2、3、4步,观察在不同阶数的低通滤波下的音频质量。

(二)、高通滤波

1.打开Matlab并新建一.m文件,在.m文件中用y=wavread(‘lei.wav’)命令读入语音文件。

2.在m命令窗中输入如下命令,并加存为sample4.m,运行该m文件。

6.双击lei4音频文件,用耳机试听效果,并跟lei1的效果比较。

7.再加一级h(n)的低通滤波,重复2、3步,如下图:

在运行lei2.m之前必须将work中名为lei4的.wav音频文件删除,或在.m文件中wavwrite()中的保存文件名改为其它的名字。

再加一级高通滤波:

(三)时域低通滤波时频域的频谱变化:

1.打开在第

(一)步中创建的sample3.m文件,并在原文件中加入以下命令,另存为sample33.m

频谱如下图:

2.下图为h(n)为31点的三重低通滤波程序和频谱图:

 

(四)时域高通滤波时频域的频谱变化:

1.打开在第

(二)步中创建的sample4.m文件,并在原文件中加入以下命令,另存为sample44.m

2.下图为h(n)为3点的三重低通滤波程序和频谱图:

二、音频信号的频域理想滤波处理:

原音频信号的抽样频率:

该式即为模拟域频率f跟频率域(FFT变换)中k的关系

(一)理想低通滤波:

1.设计一截止频率为

对应的数字频率域(FFT)的系统函数的频率特性为:

2.按下图所示输入m文件,另存为lowfilter1.m ,并运行该程序。

2.双击lei5音频文件,用耳机试听效果,并跟lei1的效果比较。

3.将该m文件中的f0=2000分别改为1000、500、300、200、4000、…….后,运行程序试听效果。

4.在该m文件中加入如下命令,重复第3步,并观察Xw、Hw、Yw的频谱。

(二)理想高通滤波:

2.双击lei6音频文件,用耳机试听效果,并跟lei1的效果比较。

3.将该m文件中的f0=1000分别改为800、500、300、200、1500、2000…….后,运行程序试听效果。

2.双击lei7音频文件,用耳机试听效果,并跟lei1的效果比较。

3.将该m文件中的fl和fh分别改.后,运行程序试听效果。

基于MATLAB的语音加去噪和延时混响实验

实验说明:

1.本实验提供的beiguo.wav,lei1.wav,music.wav,shao.wav,wang.wav均为原始语音信号.

2.本实验中的jiazao.m为语音加噪实验,xiaozao.m为语音消噪实验,musicadd.m为语音全成实验,musicfilter.m为语音滤波实验,dlaymusic.m为语音混响实验.

实验步骤:

1.将本文件夹中的所有.m文件和所有原始语音信号都复制到MATLAB的work文件夹中。

2.打开MATLAB程序。

一、语音消噪实验

%%%%%%在语音中加噪声%%%%%%%

x1=wavread('

lei1.wav'

);

%读取原语音信号,lei1中无噪声.

fs=22050;

%原语音信的采样率为22050Hz

fn=1000;

%设定噪声的频率为1000Hz

t=1:

length(x1);

%设置噪声的度度跟原语音信一样长,

x2=2*sin(2*pi*fn/fs*t);

%产生幅度为2频率为fn的正弦波作为噪声.

x=x1+x2'

;

%将原子核语音信号跟噪声相加,x为带有噪声的语音信号.

wavwrite(x,22050,'

lei2.wav'

%将带有噪声的语音信号转换为声音,lei2中将有噪声

1).在MATLAB中打开名为jiazao.m的程序,运行该程序,将在work中产生一个新的语音文件lei2.wav

2).通过试听对比lei1.wav和lei2.wav语音,看噪声是否加上。

二、语音消噪实验

%%%%%%消除语音中的噪声%%%%%%%

%读取原语音信号,lei2中带有噪声.

y=filter(hn,1,x);

%将带有噪声的语音信号x经过带阻滤波器进行滤波,以达到消噪目的.

%Bndstop,FIR,Equiripple,Minimumorder,Fs=22050,Fpass1=950,Fstop1=980,Fstop2=1020,Fpass2=1050,Apass1=1,Astop=60,Apass2=1

wavwrite(y,22050,'

lei3.wav'

%将经带阻滤波消噪后的信号转换为语音,lei3中将不再有噪声

1).在MATLAB中打开名为xiaozao.m的程序(暂时不运行)

2).在MATLAB左下角start中打开FDATool界面,按本程序m文件中注释的参数设计带阻滤波器,

并通过File-Export-填hn,将设计的滤波器系数导到工作空间。

3).运行该程序,将在work中产生另一个新的语音文件lei3.wav

4).通过试听对比lei2.wav和lei3.wav语音,看噪声是否消除。

三、语音滤波实验

%%%%%带阻和低通滤波%%%%%%%

x=wavread('

shao.wav'

%读取名为shao.wav的原语音信号

y=filter(hns,1,x);

%带阻滤波,滤波器在FDATool中设计,并导到工空间,因本人的中低音太重,高音不足

%Hpass,FIR,Equiripple,Minmumorder,Fs=22050,Fpass1=100,Fstop1=1500,Fstop2=1600,Fpass2=3000,Apass1=1,Astop=30,Apass=1.

yy=filter(hnh,1,y);

%高通滤波,滤波器在FDATool中设计,并导到工空间,因本人的低音太重,高音不足

%Hpass,FIR,Equiripple,Minmumorder,Fs=22050,Fstop=10,Fpass=4000,Astop=20,Apass=1

wavwrite(yy,22050,'

shao2.wav'

%将经混响后的信转换为语音,shao2.wav的语音中的中低频分量将有所衰减.

1).在MATLAB中打开名为musicfilter.m的程序(暂时不运行)

2)按本程序m文件中注释的参数分别设计带阻和高通滤波器,并通过File-Export-填hns和hnh,将设计的滤波器系数导到工作空间。

3).运行该程序,将在work中产生另一个新的语音文件lei4.wav

4).通过试听对比shao.wav和shao2.wav语音,看语音有可不同。

四、语音混响实验

%%%%%延时混响%%%%%%%

%读入原始声音

n=1200;

%设定延迟时间t=n/fs秒,改变该数据可改变混响深度(时间间隔)

N=60;

%y设定延迟级数为N级,改变该数据可改变次数

x1=[x;

zeros(N*n,1)];

%将x通过补零延长到经N级延时后的长度

fori=1:

N%进行N次延时,第一次延时在x前补n个0,后补(N-1)*n个0

x2=[zeros(i*n,1);

x;

zeros((N-i)*n,1)];

%第i次延时在x前补i*n个0,后补(N-i)*n个0

x1=x1+1/(2*i)*x2;

%将经延时的信号x1跟x逐次相加

end

wavwrite(x1,22050,'

shao3.wav'

%将混响后的数据转换为声音

1).在MATLAB中打开名为dlaymusic.m的程序

2).运行该程序,将在work中产生另一个新的语音文件shao3.wav

3).通过试听对比shao.wav、shao2.wav和shao3.wav语音,看语音有可不同。

4).修改本程序中的n和N,并重复2)和3)的步骤。

五、语音合成实验

%%%%%将两首语音全成一首%%%%%%

m1=wavread('

beiguo.wav'

%读取一首语音m1

m2=wavread('

wang.wav'

%读取另一首语音m2

iflength(m1)>

length(m2)%比较两首语音的长度,将短的补成跟长的相等

m3=[m2;

zeros((length(m1)-length(m2)),1)];

else

m3=[m1;

zeros((length(m2)-length(m1)),1)];

m=0.6*m1+m3;

%将两个语音相加,为分辩明,将其中一个衰减

wavwrite(m,22050,'

mu3.wav'

%将合成后的信转为语音

1).在MATLAB中打开名为musicadd.m的程序

2).运行该程序,将在work中产生另一个新的语音文件mu3.wav

3).通过试听对比beiguo.wav、wang.wav和mu3.wav语音,看语音有否不同。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2