语音信号处理实验指导书

合集下载

语音信号处理实验指导书

语音信号处理实验指导书

《语音信号处理》实验指导书姚丽娜电子信息学院目录实验一语音信号的特征提取 (3)实验二语音信号的基音周期提取 (11)实验一语音信号的特征提取一、实验目的1、熟练运用MATLAB软件进行语音信号实验。

2、熟悉短时分析原理、MFCC、LPC的原理。

3、学习运用MATLAB编程进行MFCC、LPC的提取。

4、学会利用短时分析原理提取MFCC、LPC特征序列。

二、实验仪器设备及软件PC机、MATLAB三、实验原理1、MFCC语音识别和说话人识别中,常用的语音特征是基于Mel频率的倒谱系数(即MFCC)。

MFCC参数是将人耳的听觉感知特性和语音的产生机制相结合。

Mel频率可以用如下公式表示:f=⨯+2595log(11/700)mel在实际应用中,MFCC倒谱系数计算过程如下;①将信号进行分帧,预加重和加汉明窗处理,然后进行短时傅里叶变换并得到其频谱。

② 求出频谱平方,即能量谱,并用M 个Mel 带通滤波器进行滤波;由于每一个频带中分量的作用在人耳中是叠加的。

因此将每个滤波器频带内的能量进行叠加,这时第k 个滤波器输出功率谱x'(k)。

③ 将每个滤波器的输出取对数,得到相应频带的对数功率谱;并进行反离散余弦变换,得到L 个MFCC 系数,一般L 取12~16个左右。

MFCC 系数为'1log ()cos[(0.5)/],1,2,,M k Cn x k k n M n L π==-=∑④ 将这种直接得到的MFCC 特征作为静态特征,再将这种静态特征做一阶和二阶差分,得到相应的动态特征。

2、 LPC由于频率响应H (e jw )反映声道的频率响应和被分析信号的谱包络,因此用 log │H (e jw )│反傅里叶变换求出的LPC 倒谱系数。

通过线性预测分析得到的合成滤波器的系统函数1()1/(1)p i i i H z a z -==-∑,其冲击响应为()h n 。

()h n 的倒谱为()h n ∧,_^1()()n n H z h n z+∞∧-==∑就是说^()H z 的逆变换()h n ∧是存在的。

语音信号处理实验大纲

语音信号处理实验大纲

语音信号处理
一、实验课程名称:语音信号处理
二、实验课程英文名称: Speech signal processing
三、实验课程编号: 0451714
四、实验课程性质:非独立设课
五、学时安排:理论课程学时42 实验课程学时12
六、实验课程学分:0学分
七、实验课程类型:专业课
八、实验课程要求:必修课
九、课程适用专业:电子信息科学与技术
十、教学目的:
使学生掌握语音信号各种处理方法的原理、算法、用matlab的编程方法和仿真。

通过实际应用和亲身体验,加深对所学知识的理解,增强动手能力。

十一、实验教学项目表
实验课教学内容项目表(必做)
十一、实验报告要求:
1.编写程序;
2.验证调试实验并写出调试结果,需指导教师确认。

十二、实验成绩评定:
分数分配:
预习:10%,操作:60%,实验报告:60%,创新能力:10%;
实验总计6个,满分20分,第一和第二个实验每个4分,第三、四、五、六个实验每个3分。

十三、教材及参考书:
1.《语音信号处理》.胡航编著.哈尔滨工业大学出版社
2.《语音信号处理实验指导书》自编
学院签署意见表。

语音信号处理

语音信号处理

实验四 减谱法语音增强技术研究一、实验目的本实验要求掌握减谱法语音增强的原理,会利用已学的相关语音特征,构建语音特征矢量,然后自己设计减谱法语音增强程序(也可参考相关文献),能显示干净语音和加噪语音信号及处理后的结果语音信号波形,分析实验结果,写出报告。

二、实验原理谱减法的基本原理谱相减方法是基于人的感觉特性,即语音信号的短时幅度比短时相位更容易对人的听觉系统产生影响,从而对语音短时幅度谱进行估计,适用于受加性噪声污染的语音。

由于语音是短时平稳的,所以在短时谱幅度估计中认为它是平稳随机信号,假设)(m s 、)(m n 和)(m y 分别代表语音、噪声和带噪语音,)(ωs S 、)(ωn S 和)(ωy S 分别表示其短时谱。

假设噪声)(m n 是与语音)(m s 不相关的加性噪声。

于是得到信号的加性模型:)()()(m n m s m y += (4-1)对功率谱有 )()()()(|)(||)(||)(|**222ωωωωωωωw w w w w w w N S N S N S Y +++= (4-4)原始语音的估值为 ]|)([||)(||)(|222ωωωw w w N E Y S -=∧(4-5)只要在频域用(4-5)式得到纯净语音的谱估计,就可以根据(4-6)式得到增强后的语音。

[])()(ˆ)(ˆωϕωj w e s IFFT m s=(4-6)根据前面分析,我们可以给出谱相减算法的整个算法流程,如图4-1所示:图4-1 谱减法的算法流程三、实验程序1、噪声叠加到信号上的比较%在噪声环境下语音信号的增强 %语音信号为读入的声音文件 %噪声为正态随机噪声 clear;input=wavread('C:\Users\Administrator\Desktop\yuyinxinhao\b1.wav');带噪count=length(input);noise1=0.1*randn(1,count);signal=input;for i=1:countvoice1(i)=signal(i)+noise1(i);endnoise2=0.01*randn(1,count);for i=1:countvoice2(i)=signal(i)+noise2(i);endnoise3=randn(1,count);signal=input;for i=1:countvoice3(i)=signal(i)+noise3(i);endn=1:count;figure %对比纯净语音信号,噪音信号和带噪语音信号subplot(3,1,1);plot(n,signal);title('纯净信号')subplot(3,1,2);plot(n,noise1);title('噪音信号')subplot(3,1,3);plot(n,voice1);title('带噪信号')figure %对比纯净语音信号频谱,噪音信号和带噪信号频谱Fss=fft(signal);subplot(3,1,1);plot(n,abs(Fss));title('纯净信号频谱')Fss1=fft(noise1);subplot(3,1,2);plot(n,abs(Fss1));title('噪音信号频谱')Fv1=fft(voice1);subplot(3,1,3)plot(n,abs(Fv1));title('带噪信号的频谱')figure %对比纯净语音信号,噪音信号和带噪语音信号subplot(3,1,1);plot(n,signal);title('纯净信号')subplot(3,1,2);plot(n,noise2);title('噪音信号')subplot(3,1,3);plot(n,voice2);title('带噪信号')figure %对比纯净语音信号频谱,噪音信号和带噪信号频谱Fss=fft(signal);subplot(3,1,1);plot(n,abs(Fss));title('纯净信号频谱')Fss2=fft(noise2);subplot(3,1,2);plot(n,abs(Fss2));title('噪音信号频谱')Fv2=fft(voice2);subplot(3,1,3)plot(n,abs(Fv2));title('带噪信号的频谱')figure %对比纯净语音信号,噪音信号和带噪语音信号subplot(3,1,1);plot(n,signal);title('纯净信号')subplot(3,1,2);plot(n,noise3);title('噪音信号')subplot(3,1,3);plot(n,voice3);title('带噪信号')figure %对比纯净语音信号频谱,噪音信号和带噪信号频谱Fss=fft(signal);subplot(3,1,1);plot(n,abs(Fss));title('纯净信号频谱')Fss3=fft(noise3);subplot(3,1,2);plot(n,abs(Fss3));title('噪音信号频谱')Fv3=fft(voice3);subplot(3,1,3)plot(n,abs(Fv3));title('带噪信号的频谱')2、利用减谱法的基本原理给语音信号降噪噪声为0.1*randn(1,coun) 纯净信号为输入信号%在噪声环境下语音信号的增强%语音信号为读入的声音文件%噪声为正态随机噪声clear;input=wavread('C:\Users\Administrator\Desktop\yuyinxinhao\b1.wav'); count=length(input);noise=1*randn(1,count);signal=input';for i=1:countvoice(i)=signal(i)+noise(i);endFv=fft(voice);anglev=angle(Fv);Fn=fft(noise);power1=(abs(Fv)).^2;power2=(abs(Fn)).^2;power3=power1-power2;power4=sqrt(power3);Fs=power4.*exp(j*anglev);sound=ifft(Fs);n=1:count;%纯净语音信号频谱Fss=fft(signal);figure %对比纯净语音信号和输出信号subplot(2,1,1)plot(n,signal);title('纯净信号')subplot(2,1,2)plot(n,sound);title('输出信号')figure %对比纯净语音信号频谱和输出语音信号频谱subplot(2,1,1)plot(n,abs(Fss));title('纯净信号频谱')subplot(2,1,2)plot(n,abs(Fs));title('输出信号频谱')max_v=max(voice); %对带噪信号抽样值点进行归一化处理re_voice=voice/max_v;%对输出信号抽样点值进行归一化处理max_s=max(sound);re_sound=sound/max_s;%读出带噪语音信号,存为'1001.wav'wavwrite(re_voice,5500,16,'1001');%读出处理后语音信号,存为'1002.wav'wavwrite(re_sound,5500,16,'1002')3、利用改进的减谱法给语音信号降噪噪声为0.1*randn(1,coun) 纯净信号为输入信号%在噪声环境下语音信号的增强%语音信号为读入的声音文件%噪声为正态随机噪声clear;input=wavread('C:\Users\Administrator\Desktop\yuyinxinhao\b1.wav'); count=length(input);noise=0.1*randn(1,count);signal=input';for i=1:countvoice(i)=signal(i)+noise(i);endFv=fft(voice);anglev=angle(Fv);Fn=fft(noise);power1=(abs(Fv)).^2;power2=(abs(Fn)).^2;for i=1:countif(power1(i)>=3*power2(i))power3(i)=power1(i)-3*power2(i);elsepower3(i)=0.01*power2(i);endendpower4=sqrt(power3);Fs=power4.*exp(j*anglev);sound=ifft(Fs);n=1:count;%纯净语音信号频谱Fss=fft(signal);figure %对比纯净语音信号和输出信号subplot(2,1,1)plot(n,signal);title('纯净信号')subplot(2,1,2)plot(n,sound);title('输出信号')figure %对比纯净语音信号频谱和输出语音信号频谱subplot(2,1,1)plot(n,abs(Fss));title('纯净信号频谱')subplot(2,1,2) plot(n,abs(Fs)); title('输出信号频谱')四、实验结果1、噪声叠加到信号上的比较 (1)噪声为0.1*randn(1,count)020004000600080001000012000140001600018000-0.200.2纯净信号-0.500.5噪音信号020004000600080001000012000140001600018000-0.500.5带噪信号050100纯净信号频谱020004000600080001000012000140001600018000050噪音信号频谱02000400060008000100001200014000160001800050100带噪信号的频谱(2)噪声为0.01*randn(1,count)020004000600080001000012000140001600018000-0.200.2020004000600080001000012000140001600018000-0.0500.05噪音信号020004000600080001000012000140001600018000-0.20.2带噪信号020004000600080001000012000140001600018000050100纯净信号频谱0200040006000800010000120001400016000180005噪音信号频谱02000400060008000100001200014000160001800050100带噪信号的频谱(3)噪声为randn(1,count)-0.200.2020004000600080001000012000140001600018000-505噪音信号20004000600080001000012000140001600018000-505带噪信号2、利用减谱法的基本原理给语音信号降噪噪声为0.1*randn(1,coun) 纯净信号为输入信号20004000600080001000012000140001600018000-0.2-0.100.10.2纯净信号20004000600080001000012000140001600018000-0.50.5输出信号020406080纯净信号频谱50100输出信号频谱3、利用改进的减谱法给语音信号降噪噪声为0.1*randn(1,coun) 纯净信号为输入信号 (1)参数取a=3,b=0.01-0.2-0.100.10.2纯净信号20004000600080001000012000140001600018000-0.1-0.0500.050.1输出信号020406080纯净信号频谱204060输出信号频谱(2)参数取a=10,b=0.0120004000600080001000012000140001600018000-0.2-0.100.10.2纯净信号20004000600080001000012000140001600018000-0.1-0.0500.050.1输出信号020406020004000600080001000012000140001600018000020406080输出信号频谱(3)参数取a=0.8,b=0.01-0.2-0.10.10.2纯净信号-0.4-0.20.20.4输出信号0200040006000800010000120001400016000180000204060020406080输出信号频谱(4)参数取a=3,b=0.0001-0.2-0.10.10.2纯净信号020004000600080001000012000140001600018000-0.1-0.050.050.1输出信号0204060020406080输出信号频谱(5)参数取a=3,b=0.1-0.2-0.10.10.2纯净信号-0.2-0.10.10.2输出信号0200040006000800010000120001400016000180000204060020406080输出信号频谱五、实验分析1、噪声叠加到信号上时,噪声会对信号产生较大影响,噪声加强会使信号被噪声淹没;噪声减弱,对信号的影响减小;2、用减谱法的基本原理対带噪信号进行处理后,信号质量明显提升,从而得到较纯净的语音信号;3、用改进的减谱法対带噪信号进行处理后,信号质量更好,语音信号更纯净。

语音信号处理(电气与电子工程学院)

语音信号处理(电气与电子工程学院)

四、实验条件
计算机、高分辨麦克、matlab 及相关软件。 五、实验步骤
可以使用已有工作空间文件也可以自己录制一段语音(录制方法见附加内容)
1、听一下 we_be10k(可用 sound) 2、使用函数 specgram_ex3p19.显示语谱图和语音波形。对比调用参数窗长 20ms (200 点)、帧间隔 1ms(10 点)和参数窗长 5ms(50 点)、帧间隔 1ms(10 点); 再对比窗长>20ms 或小于 5ms,以及帧间隔>1ms 时的语谱图说明宽带语谱图、窄 带语谱图与时频分辨率的关系及如何得到时频折中。
1-3
在自相关法中
1-1,1-3 变为
P
∑αk rn [i − k ] = rn [i − 0],i = 1, 2,3,...p
k =1
1-4
P
En = Rn [0] − ∑αk Rn [k ]
k =1
1-5
由 1-4 可列出方程组 1-6
⎛ ⎜ ⎜
Rn Rn
[0] [1]
Rn [1] Rn [0]
图2
图3
7
采用 MATLAB 中的录音函数 wavrecord()进行语音信号的录制。同样,选 择三种频率不同的采样率对同一语音信号进行采样,试听回放效果,进行比较。
二、实验涉及的 MATLAB 子函数 Wavrecord 功能:录制语音 调用格式: filename=wavrecord(N, fs, ‘dtype’);录制一段 N/fs 秒长度的语音信号,采样率为 fs Hz,缺省值为 11025Hz,dtype 是录制声音的数据类型。具体可通过 help wavrecord 命令查阅。 y=wavrecord(N, fs, ch);与上面语句不同的是最后一个参数,ch 是指录音的声 道,ch 为 1 是单声道,ch 为 2 是双声道。 Wavread 功能:把数据文件的声音数据赋给变量 x。 【x,fs,bits】=wavread(’filename’);把数据文件的声音数据赋给变量 x,同 时把 x 的采样频率 fs 和数据的位数 bits 放进 MATLAB 的工作空间。 Sound 功能:将变量 x 的数据转换成 MATLAB 的数据文件保存。 调用格式: Sound(x,fs,bits); Save 功能:将变量 x 的数据转换成 MATLAB 的数据文件保存。 调用格式: Save‘filename’x;将数据转换成文件名与‘filename’相同,扩展名为.mat 的数据并保存,以便用 MATLAB 的各种工具进行处理。

语音信号处理试验教程

语音信号处理试验教程

语音信号处理试验实验一:语音信号时域分析实验目的:(1)录制两段语音信号,内容是“语音信号处理”,分男女声。

(2)对语音信号进行采样,观察采样后语音信号的时域波形。

实验步骤:1、使用window自带录音工具录制声音片段使用windows自带录音机录制语音文件,进行数字信号的采集。

启动录音机。

录制一段录音,录音停止后,文件存储器的后缀默认为.Wav。

将录制好文件保存,记录保存路径。

男生女生各录一段保存为test1.wav和test2.wav。

图1基于PC机语音信号采集过程。

2、读取语音信号在MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。

通过使用wavread函数,理解采样、采样频率、采样位数等概念!Wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。

[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。

y=wavread(file,N),读取前N点的采样值放在向量y中。

y=wavread(file,[N1,N2]),读取从N1到N2点的采样值放在向量y中。

3、编程获取语音信号的抽样频率和采样位数。

语音信号为test1.wav和test2.wav,内容为“语音信号处理”,两端语音保存到工作空间work文件夹下。

在M文件中分别输入以下程序,可以分两次输入便于观察。

[y1,fs1,nbits1]=wavread('test1.wav')[y2,fs2,nbits2]=wavread('test2.wav')结果如下图所示根据结果可知:两端语音信号的采样频率为44100HZ,采样位数为16。

4、语音信号的时域分析语音信号的时域分析就是分析和提取语音信号的时域参数。

进行语音分析时,最先接触到并且夜市最直观的是它的时域波形。

语音信号处理实验指导书汇编

语音信号处理实验指导书汇编

数字语音信号处理实验指导书编写曹建荣山东建筑大学信息与电气工程学院2011年10月前言语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。

通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。

同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。

语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。

虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。

20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。

随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。

近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。

为了深入理解语音信号数字处理的基础理论、算法原理、研究方法和难点,根据数字语音信号处理教学大纲,结合课程建设的需求,我们编写了本实验参考书。

语音信号处理综合实验

语音信号处理综合实验

语音信号处理综合实验电子信息科学与技术09380049 陈俊浩一:实验目的通过利用matlab设计仿真实验,理解如下知识点:1.信号的采样及混迭2.信号的频谱分析3.信号的幅度调制解调的方法4.理想滤波器的时频域特性5.数字滤波器的设计二:实验要求1.录制一段个人自己的语音信号2.采用合适的频率,对录制的信号进行采样,画出采样后语音信号的时域波形和频谱图3.给原始语音信号加噪声,画出加噪声后的语音信号和频谱图4.设计一个频域的理想带通信道5.对这语音信号进行幅度调制,画出调制后的语音信号和频谱图6.利用理想带通信道对信号进行传输7.对接受到的信号进行解调,画出解调后的语音信号和频谱图8.设计性能良好的滤波器对信号进行滤波9.对语音进行回放,并与滤波后的语音信号进行对比三:实验过程1.首先利用windows操作系统自带的录音机录取一段声音,保存为‘cjh.wav’;再利用wavread函数将这个语音文件读进matlab中,然后对这段语音进行采样,采样频率为fs=22050Hz,语音持续时间为2.5s,用sound函数听这段语音信号;2.用plot函数画出这段语音信号的时域波形,用fftshift函数对信号进行快速傅里叶变换,并调整y轴的幅度,画出原始信号的频谱图;3.为了给原始信号加噪声,用randn函数产生一段随机噪声,然后加到原始信号中,然后用sound函数听加了噪音以后的信号,和原始信号相对比,可听到有一些“沙沙”的噪声;用plot函数画出加了噪音以后的时域波形,然后再将其进行快速傅里叶变换,然后画出其频域波形4.直接用matlab的逻辑语句,设计一个理想的带通信号,其截至频率为fl=4000Hz,fh=8000Hz;5.设定载波频率,用matlab的modulate函数对其进行幅度调制,画出调制以后的信号的时域波形,然后再将其通过傅里叶变换,然后画出其频谱图;6.用matlab中的demod函数将已经调制以后的信号进行解调,在用和上述一致的方法画出解调以后的时域和频域波形;7.由于人的声音频率一般比较低,而且由画出来的原始信号的频域波形可知,信号的能量都集中在低频的范围,我们可以考虑设计一个低通滤波器对其进行滤波,然后将滤波以后的信号就行回放,与原始信号进行对比。

语音信号处理实验指导书

语音信号处理实验指导书

语音信号处理实验指导书实验一:语音信号的采集与播放实验目的:了解语音信号的采集与播放过程,掌握采集设备的使用方法。

实验器材:1. 电脑2. 麦克风3. 扬声器或者耳机实验步骤:1. 将麦克风插入电脑的麦克风插孔。

2. 打开电脑的录音软件(如Windows自带的录音机)。

3. 在录音软件中选择麦克风作为录音设备。

4. 点击录音按钮开始录音,讲话或者唱歌几秒钟。

5. 点击住手按钮住手录音。

6. 播放刚刚录制的语音,检查录音效果。

7. 将扬声器或者耳机插入电脑的音频输出插孔。

8. 打开电脑的音频播放软件(如Windows自带的媒体播放器)。

9. 选择要播放的语音文件,点击播放按钮。

10. 检查语音播放效果。

实验二:语音信号的分帧与加窗实验目的:了解语音信号的分帧和加窗过程,掌握分帧和加窗算法的实现方法。

实验器材:1. 电脑2. 麦克风3. 扬声器或者耳机实验步骤:1. 使用实验一中的步骤1-5录制一段语音。

2. 将录制的语音信号进行分帧处理。

选择合适的帧长和帧移参数。

3. 对每一帧的语音信号应用汉明窗。

4. 将处理后的语音帧进行播放,检查分帧和加窗效果。

实验三:语音信号的频谱分析实验目的:了解语音信号的频谱分析过程,掌握频谱分析算法的实现方法。

实验器材:1. 电脑2. 麦克风3. 扬声器或者耳机实验步骤:1. 使用实验一中的步骤1-5录制一段语音。

2. 将录制的语音信号进行分帧处理。

选择合适的帧长和帧移参数。

3. 对每一帧的语音信号应用汉明窗。

4. 对每一帧的语音信号进行快速傅里叶变换(FFT)得到频谱。

5. 将频谱绘制成图象,观察频谱的特征。

6. 对频谱进行谱减法处理,去除噪声。

7. 将处理后的语音帧进行播放,检查频谱分析效果。

实验四:语音信号的降噪处理实验目的:了解语音信号的降噪处理过程,掌握降噪算法的实现方法。

实验器材:1. 电脑2. 麦克风3. 扬声器或者耳机实验步骤:1. 使用实验一中的步骤1-5录制一段带噪声的语音。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

语音信号处理实验指导书实验一 语音信号采集与简单处理一、 实验目的、要求 (1)掌握语音信号采集的方法(2)掌握一种语音信号基音周期提取方法 (3)掌握短时过零率计算方法 (4)了解Matlab 的编程方法 二、 实验原理 基本概念: (a )短时过零率:短时内,信号跨越横轴的情况,对于连续信号,观察语音时域波形通过横轴的情况;对于离散信号,相邻的采样值具有不同的代数符号,也就是样点改变符号的次数。

对于语音信号,是宽带非平稳信号,应考察其短时平均过零率。

其中sgn[.]为符号函数⎪⎩⎪⎨⎧<=>=0 x(n)-1sgn(x(n))0 x(n)1sgn(x(n))短时平均过零的作用 1.区分清/浊音:浊音平均过零率低,集中在低频端; 清音平均过零率高,集中在高频端。

2.从背景噪声中找出是否有语音,以及语音的起点。

(b )基音周期基音是发浊音时声带震动所引起的周期性,而基音周期是指声带震动频率的倒数。

基音周期是语音信号的重要的参数之一,它描述语音激励源的一个重要特征,基音周期信息在多个领域有着广泛的应用,如语音识别、说话人识别、语音分析与综合以及低码率语音编码,发音系统疾病诊断、听觉残障者的语音指导等。

因为汉语是一种有调语言,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息,有区别意义的功能,所以,基音的提取和估计对汉语更是一个十分重要的问题。

∑--=-=1)]1(sgn[)](sgn[21N m n n n m x m x Z由于人的声道的易变性及其声道持征的因人而异,而基音周期的范围又很宽,而同—个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词发音音调的影响,因而基音周期的精确检测实际上是一件比较困难的事情。

基音提取的主要困难反映在:①声门激励信号并不是一个完全周期的序列,在语音的头、尾部并不具有声带振动那样的周期性,有些清音和浊音的过渡帧是很难准确地判断是周期性还是非周期性的。

②声道共振峰有时会严重影响激励信号的谐波结构,所以,从语音信号中直接取出仅和声带振动有关的激励信号的信息并不容 易。

③语音信号本身是准周期性的(即音调是有变化的),而且其波形的峰值点或过零点受共振峰的结构、噪声等的影响。

④基音周期变化范围大,从老年男性的50Hz 到儿童和女性的450Hz ,接近三个倍频程,给基音检测带来了一定的困难。

由于这些困难,所以迄今为止尚未找到一个完善的方法可以对于各类人群(包括男、女、儿童及不向语种)、各类应用领域和各种环境条件情况下都能获得满意的检测结果。

尽管基音检测有许多困难,但因为它的重要性,基音的检测提取一直是一个研究的课题,为此提出了各种各样的基音检测算法,如自相关函数(ACF)法、峰值提取算法(PPA)、平均幅度差函数(AMDF)法、并行处理技术、倒谱法、SIFT 、谱图法、小波法等等。

三、使用仪器、材料微机(带声卡)、耳机,话筒。

四、 实验步骤 (1)语音信号的采集利用Windows 语音采集工具采集语音信号,将数据保存wav 格式。

采集一组浊音信号和一组清音信号,信号的长度大于3s 。

(2)采用短时相关函数计算语音信号浊音基音周期,考虑窗长度对基音周期计算的影响。

采用倒谱法求语音信号基音周期。

(3)计算短时过零率,清音和浊音的短时过零率有何区别。

五、实验过程原始记录(数据,图表,计算) 短时过零率短时相关函数P j j n s n s j R N jn n n n ,,1)()()(1=-=∑-=∑--=-=10)]1(sgn[)](sgn[21Nm n n nm x m x Z六、实验结果,及分析图一清浊音图二浊音自相关函数图三清音自相关函数实验结果分析:清音短时过零率高,浊音过零率低。

浊音、清音自相关函数可以看出,浊音存在基音周期,清音不存在基音周期。

浊音的基音周期是自相关函数峰值之间的时间差。

七、实验参考程序1.段时能量a1=zeros(1,620);K=450;R=zeros(1,250);duanshnl=0;maxx=0;speech=zeros(1,1000);sp1=wavread('D:\语音信号处理试验\a.wav');%8000采样频率maxx=max(sp1);speech(1:1000)=sp1(1:1000);duanshnl=speech(1:1000)*speech(1:1000)';duanshnl=duanshnl/(maxx^2)plot(sp1(1:400));hold onsp=wavread('D:\语音信号处理试验\s.wav');%8000采样频率speech(1:1000)=sp(1:1000);qduanshnl=speech(1:1000)*speech(1:1000)';qduanshnl=qduanshnl/(maxx^2)plot(sp(1:400),'r')2 短时过零率close alla1=zeros(1,620);K=450;R=zeros(1,250);duanshnl=0;maxx=0;speech=zeros(1,1000);sp1=wavread('D:\语音信号处理试验\a.wav');%11000采样频率sp=wavread('D:\语音信号处理试验\f.wav');%11000采样频率L=mean(sp);sp=sp-L;L2=mean(sp1);sp1=sp1-L2;%以下程序计算短时过零率m1=0;m2=0;for i=1:2000if sp1(i)>0spp1(i)=1;elsespp1(i)=-1;endendfor i=1:2000if sp(i)>0spp(i)=1;elsespp(i)=-1;endendfor i=2:2000m1=m1+0.5*abs(spp1(i)-spp1(i-1));m2=m2+0.5*abs(spp(i)-spp(i-1)); % m2 >> m1endplot(sp1(1:2000),'r');hold onplot(sp(1:2000));3 相关函数法计算基音周期a1=zeros(1,620);K=450;R=zeros(1,250);sp=wavread('e:\E\letter\a1.wav');%11000采样频率for i=1:250for j=1:601-1-iR(i)=R(i)+sp(j)*sp(j+i);endendplot(R/14)hold onR=zeros(1,250);sp=wavread('e:\E\letter\f1.wav');%11000采样频率f1=sp(3300:4000);%11000采样频率for i=1:250for j=1:601-1-iR(i)=R(i)+f1(j)*f1(j+i);endendplot(R/14,'r')4 倒谱法计算基音周期close alla1=zeros(1,620);K=500;sp=wavread('D:\a1.wav');%11000采样频率sound=zeros(1,K);speech=zeros(1,K);tt=zeros(1,K);hanning=zeros(1,K); for number=1:Khanning(number)=(1/2)*(1-cos((2*pi)*(number-1)/(K-1)));endsound=sp(K:2*K-1);tt=abs(fft(sound(1:K)));for i=1:Kspeech(i)=logm(tt(i));endspeech=real(ifft(speech));plot(speech,'g')hold onsound=sound.*hanning';tt=abs(fft(sound(1:K)));for i=1:Kspeech(i)=logm(tt(i));endspeech=real(ifft(speech));plot(speech,'r');sp=wavread('D:\f1.wav');%11000采样频率f1=sp(3000:4000);%11000采样频率%f1=sp(K:4000);sound=f1(K:2*K-1);tt=abs(fft(sound(1:K)));for i=1:Kspeech(i)=logm(tt(i));endspeech=real(ifft(speech));figureplot(speech,'g')hold onsound=sound.*hanning';tt=abs(fft(sound(1:K)));for i=1:Kspeech(i)=logm(tt(i));endspeech=real(ifft(speech));plot(speech,'r');实验二语音信号的频域处理一、实验目的、要求(1)掌握语音信号频域分析方法(2)了解语音信号频域的特点(3)了解谱减法作为频域语音增强的原理与编程实现(3)了解谱减法的缺点,并分析产生该缺点的原因二、实验原理语音虽然是一个时变、非平稳的随机过程。

但在短时间内可近似看作是平稳的。

因此如果能从带噪语音的短时谱中估计出“纯净”语音的短时谱,即可达到语音增强的目的。

由于噪声也是随机过程,因此这种估计只能建立在统计模型基础上。

利用人耳感知对语音频谱分量的相位不敏感的特性,这类语音增强算法主要针对短时谱的幅度估计。

短时话幅度估计概述 设一帧加窗后的带噪语音为()()()01y n s n d n n N =+≤≤- (2.1)其中()s n 为纯净语音,()d n 假设为平稳加性高斯噪声。

将()y n 在一组基{()}k n φ上展开,使展对系数为各不相关的随机变量。

设()y n 的相关函数为(,)y R n m ,由K -L 展开得知{()}k n φ满足1()()(,)()N k y k m K n R n m m λφφ-==∑ (2.2)则()y n 的展开式为110()()()()N k k K N k k n y n Y nY y n n φφ-=-=⎧=⎪⎪⎨⎪=⎪⎩∑∑ (2.3) 如果()y n 的相关长度小于帧长N ,则()k n φ的近似函数为2()k nk n j N πϕ⎛⎫=⎪⎝⎭(2.4)可见()y n 的展开过程实际上相当于离散博里叶交换,其展开系数(为傅里叶变换系数。

相关文档
最新文档