语音信号处理实验

2025-08-16

实验一 语音信号采集与处理

一、 实验目的、要求 (1)掌握语音信号采集的方法

(2)掌握一种语音信号基音周期提取方法 (3)掌握短时过零率计算方法 (4)了解Matlab的编程方法 二、 实验原理 基本概念: (a)短时过零率:

短时内,信号跨越横轴的情况,对于连续信号,观察语音时域波形通过横轴的情况;对于离散信号,相邻的采样值具有不同的代数符号,也就是样点改变符号的次数。

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

Zn?12N?1m?0?sgn[xn(m)]?sgn[xn(m?1)]其中sgn[.]为符号函数

?sgn(x(n))???sgn(x(n))??1 x(n)?0

?-1 x(n)?0短时平均过零的作用 1.区分清/浊音:

浊音平均过零率低,集中在低频端; 清音平均过零率高,集中在高频端。

2.从背景噪声中找出是否有语音,以及语音的起点。 (b)基音周期

基音是发浊音时声带震动所引起的周期性,而基音周期是指声带震动频率的倒数。基音周期是语音信号的重要的参数之一,它描述语音激励源的一个重要特征,基音周期信息在多个领域有着广泛的应用,如语音识别、说话人识别、语音分析与综合以及低码率语音编码,发音系统疾病诊断、听觉残障者的语音指导等。因为汉语是一种有调语言,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息,有区别意义的功能,所以,基音的提取和估计对汉语更是一个十分重要的问题。

由于人的声道的易变性及其声道持征的因人而异,而基音周期的范围又很

1

宽,而同—个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词发音音调的影响,因而基音周期的精确检测实际上是一件比较困难的事情。基音提取的主要困难反映在:①声门激励信号并不是一个完全周期的序列,在语音的头、尾部并不具有声带振动那样的周期性,有些清音和浊音的过渡帧是很难准确地判断是周期性还是非周期性的。②声道共振峰有时会严重影响激励信号的谐波结构,所以,从语音信号中直接取出仅和声带振动有关的激励信号的信息并不容 易。③语音信号本身是准周期性的(即音调是有变化的),而且其波形的峰值点或过零点受共振峰的结构、噪声等的影响。④基音周期变化范围大,从老年男性的50Hz到儿童和女性的450Hz,接近三个倍频程,给基音检测带来了一定的困难。由于这些困难,所以迄今为止尚未找到一个完善的方法可以对于各类人群(包括男、女、儿童及不向语种)、各类应用领域和各种环境条件情况下都能获得满意的检测结果。

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

微机(带声卡)、耳机,话筒。 四、 实验步骤 (1)语音信号的采集

利用Windows 语音采集工具采集语音信号,将数据保存wav格式。 采集一组浊音信号和一组清音信号,信号的长度大于3s。

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

(3)计算短时过零率,清音和浊音的短时过零率有何区别。 五、实验过程原始记录(数据,图表,计算) 短时过零率

Zn?12N?1m?0?sgn[xn(m)]?sgn[xn(m?1)]短时相关函数

N?1Rn(j)??sn?jn(n)sn(n?j)j?1,?,P

2

六、实验结果,及分析

图一 清浊音

图二 浊音自相关函数

图三 清音自相关函数

实验结果分析:

清音短时过零率高,浊音过零率低。

浊音、清音自相关函数可以看出,浊音存在基音周期,清音不存在基音周期。浊音的基音周期是自相关函数峰值之间的时间差。

七、思考题

语音信号短时平均能量、短时平均过零数及基音周期分析的主要用途是什么?

答:(1)可以从语音中区别出浊音来,因为浊音时短时平均能量的值要比清音时短时平均能量的值大很多;

3

(2)可以用来区别声母和韵母的分界、无声和有声的分界等最为一种超音段信息,用于语音识别中。

(3)浊音时能量集中于较低频率段内,具有较低的过零率,而清音时能量集中于较高频率段内,具有较高的过零率

八、实验参考程序

1.短时能量

a1=zeros(1,620);K=450;R=zeros(1,250);

duanshnl=0;maxx=0;speech=zeros(1,1000); sp1=wavread('C:\\MATLAB6p5\\work\\a1.wav');?00采样频率 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 on

sp=wavread(' C:\\MATLAB6p5\\work\\a1.wav ');?00采样频率 speech(1:1000)=sp(1:1000);

qduanshnl=speech(1:1000)*speech(1:1000)'; qduanshnl=qduanshnl/(maxx^2) plot(sp(1:400),'r')

2 短时过零率

close all

a1=zeros(1,620);K=450;R=zeros(1,250); duanshnl=0;maxx=0;speech=zeros(1,1000); sp1=wavread(' C:\\MATLAB6p5\\work \\a2.wav'); sp=wavread(' C:\\MATLAB6p5\\work \\s.wav');

4

L=mean(sp);sp=sp-L;L2=mean(sp1);sp1=sp1-L2; %以下程序计算短时过零率 m1=0;m2=0; for i=1:2000 if sp1(i)>0 spp1(i)=1; else

spp1(i)=-1; end end

for i=1:2000 if sp(i)>0 spp(i)=1; else

spp(i)=-1; end end

for i=2:2000

m1=m1+0.5*abs(spp1(i)-spp1(i-1));

m2=m2+0.5*abs(spp(i)-spp(i-1)); % m2 >> m1 end

plot(sp1(1:500),'r'); hold on

plot(sp(1:500));

3 相关函数法计算基音周期

a1=zeros(1,620);K=450;R=zeros(1,250);

5


语音信号处理实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:CANOPEN

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219