语音信号处理论文1 - 图文

更新时间:2024-06-19 09:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

吉林工程技术师范学院课程设计论文

第一章 绪论

1.1选题目的、意义

语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的

学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为计算机、自动化系统等建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化和自动化程度。

语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。 语音信号处理技术的应用极其广泛,涉及工业、军事、交通、医学、民用等各个领域,其中最重要的包括语音编码、语音合成、语音识别以及语音增强等。

1.2设计要求

本次课程设计是用MATLAB对含噪的语音信号同时在时域和频域进行滤波处理和分析,

在MATLAB应用软件下设计一个简单易用的图形用户界面(GUI),来解决一般应用条件下的各种语音信号的处理。

1.3研究内容及难点

对所采集的语音信号加入干扰噪声,对语音信号进行回放,感觉加噪前后声音的

变化,分析原因,得出结论。并对其进行FFT频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析,阐明原因,得出结论。

用所设计的滤波器对含噪语音信号进行滤波。对滤波后的语音信号进行FFT频谱分析。画出处理过程中所得各种波形及频谱图。对语音信号进行回放,感觉滤波前后声音的变化。比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行频谱分析,阐明原因,得出结论。

1

吉林工程技术师范学院课程设计论文

第二章 语音信号处理理论基础

2.1 系统基本概述

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。

目前,随着数字化信号处理技术的不断提高,单片机,数字信号处理器以及语音处理大规模集成电路的进步,语音合成,语音识别,语音存储和回放技术的应用越来越广泛.本文提出的体积小巧,功耗低的数字化语音存储与回放系统将完全可以替代传统的语音录放系统.

2.2 系统基本原理

语音采集原理是,人耳能听到的声音是一种频率范围为20Hz20kHz,而一般语音频率最高为3.4kHz.语音的采集是指语音声波信号经麦克风和高频放大器转换成有一定幅度的模拟量电信号,然后再转换成数字量的全过程.

本次设计的基本原理是对语音的录音和放音进行数字化控制.其中,关键技术在于:为了增加语音存储时间,提高存储器的利用率,采用了非失真压缩算法对语音信号进行压缩后再存储,而在回放是再进行解压缩;同时,对输入语音信号进行数字滤波以抑制杂音和干扰,从而确保了语音回放的可靠质量.

通过设计一个GUI实验箱,并添加相应的控制控件,添加一个声音文件,通过MATLAB编程,使其通过各种按钮实现语音信号处理的各种功能,最后做成一个完整的语音信号处理实验箱。

2

吉林工程技术师范学院课程设计论文

第三章 系统方案论证

3.1 设计理论依据

3.1.1采样定理

在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5-10倍;采样定理又称乃奎斯特定理。

3.1.2 采样频率

采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调、衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也就越精确,采样频率与声音频率之间有一定的关系,根据奈奎斯特理论,只有采样频率高于声音信号最高频率的2倍的时候,才能把数字信号表示的声音还原成为原来的声音,这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。

3.1.3 采样位数与采样频率

采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时候使用数字声音信号的二进制为数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。

采样位数和采样频率对于音频接口来说是最为重要的两个基本指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6dB。采样位数越多则捕捉到的信号越精确。对于采样率来说你可以想象它类似一个照相机。显然采样率越高,计算机提取的图片越多,对于原始 的还原也越加精确。

3

吉林工程技术师范学院课程设计论文

第四章 GUI设计实现

4.1 整体图

4.1 GUI图

4.2 GUI各形成图

4.2.1 语音信号的短时分析 Matlab编程实验步骤:

1.新建M文件,扩展名为“.m”,编写程序; 2.选择File/Save命令,将文件保存在F盘中; 3.在Command Window窗中输入文件名,运行程序; Matlab部分函数语法格式:

读wav文件: x=wavread(`filename`) 数组a及b中元素相乘: a.*b

创建图形窗口命令: figure 绘图函数: plot(x)

坐标轴: axis([xmin xmax ymin ymax]) 坐标轴注解: xlabel(`?`) ylabel(`?`)

4

吉林工程技术师范学院课程设计论文

图例注解: legend( `?`)

一阶高通滤波器: y=filter([1-0.09375],1,x) 分帧函数: f=enframe(x,len,inc)

x为输入语音信号,len指定了帧长,inc指定帧移,函数返回为n×len的一个矩阵

[x]=wavread('3.wav'); sound(x); figure;

subplot(4,1,1); plot(x);

axis([1 length(x) -1 1]); ylabel('Speech');

enhance=filter([1-0.9375],1,x); FrameLen=240; FrameInc=80;

yframe=enframe(x,FrameLen,FrameInc); amp1=sum(abs(yframe),2); subplot(4,1,2); plot(amp1);

axis([1 length(amp1) 0 max(amp1)]); ylabel('Amp');

legend('amp1=∑│x│');

amp2=sum(abs(yframe.*yframe),2); subplot(4,1,3); plot(amp2);

axis([1 length(amp2) 0 max(amp2)]); ylabel('Energy'); legend('amp1=∑│x*x│');

tmp1=enframe(x(1:end-1),FrameLen,FrameInc); tmp2=enframe(x(2:end),FrameLen,FrameInc); signs=(tmp1.*tmp2)<0; diffs=(tmp1-tmp2)>0.02;

5

吉林工程技术师范学院课程设计论文

zcr=sum(signs.*diffs,2); subplot(4,1,4); plot(zcr);

axis([1 length(zcr) 0 max(zcr)]); ylabel('ZCR'); legend('zcr');

4.2语音信号的短时分析

4.2.2 分析语音信号的短时谱特性

% specgram_hw3p20(x, winlgh, frmlgh, sampling_rate) % function to compute a spectrogram % x = input waveform

% winlgh = window length in samples % frmlgh = frame length in samples % sampling_rate = samples/sec

%sampling_rate = 10000; % sampling rate lfft = 1024; lfft2 = lfft/2; %winlgh = 200; %frmlgh = 10;

% (128) window length (in samples) % frame interval (in samples) % FFT length

noverlap = winlgh - frmlgh; % x = x(1:4500); x = 2.0*x/max(abs(x));

etime = length(x)/sampling_rate;

spec = abs(specgram(x, lfft, sampling_rate, winlgh, noverlap)); subplot(211);

6

吉林工程技术师范学院课程设计论文

plot((1:length(x))/sampling_rate,x) xlabel('Time (s)'); title('SPEECH');

axis([0 etime -2.5 2.5]); grid; subplot(212)

imagesc(0:.010:etime, 0:1000:(sampling_rate/2), log10(abs(spec)));axis('xy')

xlabel('Time (ms)'),ylabel('Frequency (Hz)'); title('SPECTROGRAM');

4.3分析语音信号的短时谱特性

4.2.3 语音信号倒谱与复倒谱的分析 clc; clear; tic,

[y,fs]=wavread('speech_10k.wav'); L=length(y); fw=y.*hamming(L); r=real(log(fft(fw,L))) pfw=cceps(fw); rpfw=rceps(fw); z=rpfw(1:30); p=pfw(31:L)

logz=real(exp(fft(z,L))); logp=real(fft(p));

7

吉林工程技术师范学院课程设计论文

subplot(3,2,1);plot(y);title('原始波形') subplot(3,2,3);plot(pfw);title('复倒谱') subplot(3,2,5);plot(rpfw);title('实倒谱')

subplot(3,2,6);plot(logz);title('倒谱域滤波后的对数幅度谱') subplot(3,2,4);plot(r);title('对数幅度谱') subplot(3,2,2);plot(fw);title('加海明窗后的波形')

4.4 语音信号倒谱与复倒谱的分析

4.2.4 运用自相关方法估计语音信号的声道参数

speech1_10k=wavread('speech1_10k.wav',[1024 1273]);%取250点的语音信号 sw=speech1_10k.*hamming(250);%a加汉明窗 Rsw=xcorr(sw');%a自相关

t=0.1:0.1:25;subplot(1,2,1);plot(t,sw);xlabel('ms');title('加窗后时域波形'); subplot(1,2,2); t=0.1:0.1:length(Rsw)/10;plot(t,Rsw);xlabel('ms');title('加窗后自关波形');

Rsw4=[Rsw(250:253);Rsw(249:252);Rsw(248:251);Rsw(247:250)];%生成4*4 自相关阵 Rsw6=[Rsw(250:255);Rsw(249:254);Rsw(248:253);Rsw(247:252);Rsw(246:251);Rsw(245:250)];%生成6*6自相关阵

rea4=inv(Rsw4)*Rsw(251:254)';%求预测系数4 rea6=inv(Rsw6)*Rsw(251:256)';%求预测系数6 A4=sqrt(Rsw(250)-Rsw(251:254)*rea4);%求增益 A6=sqrt(Rsw(250)-Rsw(251:256)*rea6);%求增益

8

吉林工程技术师范学院课程设计论文

w=pi/512:pi/512:pi;%生成输出频率范围 j=sqrt(-1);

FW4=rea4'*[exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4)];%在频率范围求预测频响

FW6=rea6'*[exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4);exp(-j*w*5);exp(-j*w*6)];%在频率范围求预测频响 HW4=A4./(1-FW4);%由预测频响求 HW6=A6./(1-FW6);%由预测频响求 FW2=fft(sw,1024);%信号傅立叶变换 FW3=FW2(1:512);

w=(1/1024:1/1024:0.5)*10000; figure;

subplot(2,2,1);plot(w,log(abs(FW3)));xlabel('频率hz');title('加窗后信号频谱');

subplot(2,2,2);plot(w,log(abs(HW4)),'g');xlabel('频率hz');title('4极点模型频率响应');

subplot(2,2,3);plot(w,log(abs(HW6)),'r');xlabel('频率hz');title('6极点模型频率响应');

subplot(2,2,4);plot(w,log(abs(FW3)),w,log(abs(HW4)),w,log(abs(HW6)));xlabel('频率hz');title('三者比较');

4.5运用自相关方法估计语音信号的声道参数

9

吉林工程技术师范学院课程设计论文

4.2.5 基音周期检测实验 clear

Y=wavread('ah02.wav',[1 1800]);

x1=Y(271:510);x2=Y(271:510);x3=Y(271:510); %自相关法 r=zeros(1,240); for k=1:240 for n=1:240-k

r(k)=r(k)+x1(n)*x1(n+k); end end j=1:240;

subplot(2,2,2);plot(j,r);title('自相关法处理后的波形') subplot(2,2,1);plot(j,x1);title('原函数') %三电平法 for k1=1:1:240 if x2(k1)>0 x2(k1)=1; else if x2(k1)==0 x2(k1)=0; else if x2(k1)<0 x2(k1)=-1; end end end end j=1:240;

subplot(2,2,3);plot(j,x2);title('三电平法处理后的波形') %中心消波法

10

吉林工程技术师范学院课程设计论文

for k1=1:1:240 ma=abs(max(x3)); tc=0.6*ma; if x3(k1)>tc

x3(k1)=x3(k1)-tc; else if x3(k1)<-tc x3(k1)=x3(k1)+tc; else

x3(k1)=0; end end end j=1:240;

subplot(2,2,4);plot(j,x3);title('中心消波法处理后的波形')

4.6 基音周期检测实验

4.2.6 语音信号增强实验 clear clc

winsize=256; % 窗长 winsize=256; % 窗长 n=0.04; % 噪声水平

[speech,fs,nbits]=wavread('ah02.wav'); % 读入数据 size=length(speech);

numofwin=floor(size/winsize); % 帧数 %加窗

11

吉林工程技术师范学院课程设计论文

ham=hamming(winsize)'; %Generates Hamming Window hamwin=zeros(1,size); %Vector for window gain enhanced=zeros(1,size); %Vector for enhanced speech %产生带噪信号

x=speech'+ n*randn(1,size); %Contaminates signal with white noise %噪声估计

noisy=n*randn(1,winsize); %Sample of noise N = fft(noisy);

nmag= abs(N); %Estimated noise magnitude spectrum for q=1:2*numofwin-1

frame=x(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2); P percent overlap hamwin(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2)=hamwin(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2)+ham; %Window gain %对带噪语音进行DFT y=fft(frame.*ham);

mag = abs(y); %Magnitude Spectrum phase = angle(y); %Phase Spectrum %幅度谱减 for i=1:winsize if mag(i)-nmag(i)>0 clean(i)= mag(i)-nmag(i); else;clean(i)=0; end end

%在频域中重新合成语音 fff=exp(j*phase); spectral=clean.*fff; %IDFT并重叠相加

enhanced(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2)=enhanced(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2)+real(ifft(spectral));

12

吉林工程技术师范学院课程设计论文

end

% 除去Hamming窗引起的增益 for i=1:size if hamwin(i)==0 enhanced(i)=0; else

enhanced(i)=enhanced(i)/hamwin(i); end

4.7语音信号增强实验

4.2.7 语音信号端点检测实验 clc clear

x=wavread('nihao'); x = x / max(abs(x));

13

吉林工程技术师范学院课程设计论文

FrameLen = 240; FrameInc = 80; amp1 = 10; amp2 = 2; zcr1 = 10; zcr2 = 5;

maxsilence = 8; minlen = 15; status = 0; count = 0; silence = 0;

tmp2 = enframe(x(2:end) , FrameLen, FrameInc); tmp1 = enframe(x(1:end-1), FrameLen, FrameInc); signs = (tmp1.*tmp2)<0; diffs = (tmp1 -tmp2)>0.02; zcr = sum(signs.*diffs, 2);

amp = sum(abs(enframe(filter([1 -0.9375], 1, x), FrameLen, FrameInc)), 2); amp1 = min(amp1, max(amp)/4); amp2 = min(amp2, max(amp)/8); h=1;

for n=1:length(zcr) switch status

case {0,1} if amp(n) > amp1 x1(h) = max(n-count-1,1); status = 2; silence = 0; count = count + 1;

elseif amp(n) > amp2 | zcr(n) > zcr2 % status = 1;

14

吉林工程技术师范学院课程设计论文

count = count + 1; else status = 0; count = 0; end

case 2,

if amp(n) > amp2 | zcr(n) > zcr2

count = count + 1; else silence = silence+1; if silence < maxsilence count = count + 1; elseif count < minlen status = 0; silence = 0; count = 0;

else status = 3; end end case 3,

count = count-silence/2; x2(h) = x1(h) + count -1; h=h+1;

status = 0 ; silence=0; count=0; end end

15

吉林工程技术师范学院课程设计论文

4.8 语音信号端点检测实验

16

吉林工程技术师范学院课程设计论文

第五章 总结与心得体会

通过本次课程设计完成了对语音信号的读取与打开,与课题的要求十分相符;初略的完成了界面的设计,但也存在相当的不足,达到了打开语音文件,显示已定波形。语音信号处理时语音学与数字信号处理技术相结合的交叉学科,将语音当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,体现了数字信号处理技术。

本次课程设计时希望将数字信号处理技术应用于某一实际领域,这里就是指对语音的处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需要将这些离散的量提取出来,就可以对其进行处理了。

本次课设,用到了处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。

最后,还利用了MATLAB的另一强大功能—GUI界面设计。设计出了一个简易的用户应用界面,可以让人实现界面操作。

通过本次课程设计让我更加了解了语音信号处理在现实中的强大的应用空间,同时查阅了很多相关的资料,应用MATLAB软件来完成,熟练掌握了MATLAB软件,本次课程设计要求用GUI设计模块,查阅了很多资料,更加深刻的了解了这方面知识。

本次课程设计,我明白了理论的学习需要在实践中才能得到巩固。在课程设计中,只有动手慢慢研究,才能真正了解MATLAB的运用以及各个基本函数的调用方法,掌握GUI实验箱的设计方法及在MATLAB软件平台中可以直接设计数字滤波器的各个函数的调用,对设计GUI实验箱的所有函数的运用有了比较好的认识。

通过这个课程设计,我学到了很多MATLAB和语音信号的知识,提高了自己在语音信号设计方面的知识能力,动手能力和思维能力都得到了一定的提升,希望自己以后可以更多的继续学习这一门课程设计方面的知识。

17

本文来源:https://www.bwwdw.com/article/8ve3.html

Top