数字语音信号处理实验.docx
- 文档编号:28533140
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:11
- 大小:70.17KB
数字语音信号处理实验.docx
《数字语音信号处理实验.docx》由会员分享,可在线阅读,更多相关《数字语音信号处理实验.docx(11页珍藏版)》请在冰豆网上搜索。
数字语音信号处理实验
数字语音信号处理实验
学号:
1228401060
姓名:
唐榆
专业:
信息工程
日期:
2014年12月21日
目录
前言---------------------------------------------------------------2
一,实验目的--------------------------------------------------3
二,实验原理-----------------------------------------------------3
1.短时能量---------------------------------------------------------------------3
2短时平均过零率-------------------------------------------------3
3.短时自相关函数------------------------------------------------4
三,算法流程及结果------------------------------------------4
语音端点的检测与估计--------------------------------------------------4
处理结果-----------------------------------5
基音频率提取及男女判别-----------------------------------------5
处理结果-----------------------------------5
四,实验总结----------------------------------6
五,参考文献----------------------------------------------------6
六,附程序--------------------------------------------------------6
前言
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。
语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。
虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。
随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:
进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。
近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。
一,实验目的:
1,掌握基于MATLAB编程实现语音信号端点检测,利用MATLAB对信号进行分析和处理,学会利用短时过零率和短时能量,对语音信号的端点进行检测。
2,编写程序求解语音信号的短时过零率、短时能量、短时自相关特征,分析实验结果,并能掌握借助时域分析方法所求得的参数分析语音信号的基音周期及共振峰。
3,通过基音频率判断男女。
二,实验原理:
1.短时能量
由于语音信号的能量随时间变化,清音和浊音之间的能量差别相当显著。
因此对语音的短时能量进行分析,可以描述语音的这种特征变化情况。
定义短时能量为:
,其中N为窗长
特殊地,当采用矩形窗时,可简化为:
在用短时能量反映语音信号的幅度变化时,不同的窗函数以及相应窗的长短均有影响。
hamming窗的效果比矩形窗略好。
但是,窗的长短影响起决定性作用。
窗过大(N很大),等效于很窄的低通滤波器,不能反映幅度En的变化;窗过小(N很小),短时能量随时间急剧变化,不能得到平滑的能量函数。
短时能量函数的应用:
1)可用于区分清音段与浊音段。
En值大对应于浊音段,En值小对应于清音段。
2)可用于区分浊音变为清音或清音变为浊音的时间(根据En值的变化趋势)。
3)对高信噪比的语音信号,也可以用来区分有无语音(语音信号的开始点或终止点)。
无信号(或仅有噪声能量)时,En值很小,有语音信号时,能量显著增大。
2.短时平均过零率
过零率可以反映信号的频谱特性。
当离散时间信号相邻两个样点的正负号相异时,我们称之为“过零”,即此时信号的时间波形穿过了零电平的横轴。
统计单位时间内样点值改变符号的次数具可以得到平均过零率。
定义短时平均过零率:
其中
为符号函数,
,在矩形窗条件下,可以简化为
短时平均过零率的应用:
1)区别清音和浊音。
例如,清音的过零率高,浊音的过零率低。
此外,清音和浊音的两种过零分布都与高斯分布曲线比较吻合。
2)从背景噪声中找出语音信号。
语音处理领域中的一个基本问题是,如何将一串连续的语音信号进行适当的分割,以确定每个单词语音的信号,亦即找出每个单词的开始和终止位置。
3)在孤立词的语音识别中,可利用能量和过零作为有话无话的鉴别。
3、短时自相关函数
自相关函数用于衡量信号自身时间波形的相似性。
清音和浊音的发声机理不同,因而在波形上也存在着较大的差异。
浊音的时间波形呈现出一定的周期性,波形之间相似性较好;清音的时间波形呈现出随机噪声的特性,样点间的相似性较差。
因此,我们用短时自相关函数来测定语音的相似特性。
短时自相关函数定义为:
令
,并且
,可以得到:
浊音是周期信号,浊音的短时自相关函数呈现明显的周期性,自相关函数的周期就是浊音信号的周期,根据这个性质可以判断一个语音信号是清音还是浊音,还可以判断浊音的基音周期。
浊音语音的周期可用自相关函数中第一个峰值的位置来估算。
所以在语音信号处理中,自相关函数常用来作以下两种语音信号特征的估计:
1)区分语音是清音还是浊音;
2)估计浊音语音信号的基音周期。
三,算法流程及结果:
语音端点的检测与估计:
一,读取一段录音作为音频样本,幅度归一化,用matlab画出其时域的图像;
二,设置帧长,帧移,无语音段的时间,计算无语音短的帧数,语音总帧数,计算每帧对应的时间;
三,设置一段语音结束后静音最大长度,有语音段最小长度;
四,计算这段语音信号的短时能量和短时过零率,计算初始无话段区间能量和过零率的平均值,设置能量和过零率的阈值;
五,用双门限法进行语音端点检测;
六,计算有语音段的开始和结束位置,并且在时域图上标出。
处理结果:
输出每段语音的起止,长度:
1244219
2557319
38510521
411513319
514416219
617119121
719622328
基音频率提取及男女判别:
一,设置分帧的帧长和帧移,计算帧之间的重叠部分,计算各帧对应的时间坐标,进行基音的端点检测;
二,用带通数字滤波器滤波,再进行分帧;
三,设置基音周期的最小和最大值,用自相关函数提取基音周期,并进行平滑处理;
四,画出每一段有语音段的采样点图,计算开始帧和结束帧的时间,并且去掉首尾过渡段,求平均,再利用采样率计算基音频率;
五,根据基音频率判别男女。
处理结果:
上图为每段有语音段的基音周期
输出的基音频率(Hz)和判别结果:
8.227573e+01
man
四,实验总结
通过本次实验,我学习了matlab在数字语音信号处理上的使用,利用语音信号的短时过零率、短时能量、短时自相关特征,分析语音信号的端点和基音频率。
由于水平有限,本实验多数代码取自教材,但我在在理解的基础上对代码进行注释和少量修改,通过实验加深了对理论知识的理解,并且能把学到的理论知识用到实践中。
五,参考文献;
《MATLAB在语音信号分析和合成中的应用》
六,附程序
1,端点检测程序:
[x,fs]=wavread('yuyin2.wav');%读入数据文件
x=x/max(abs(x));%幅度归一化
N=length(x);%取信号长度
time=(0:
N-1)/fs;%计算时间
pos=get(gcf,'Position');%作图
set(gcf,'Position',[pos
(1),pos
(2)-100,pos(3),(pos(4)-200)]);
plot(time,x);
title('端点检测');
ylabel('幅值');axis([0max(time)-11]);grid;
xlabel('时间/s');
wlen=4000;inc=1550;%分帧参数,帧长为4000,帧移为1550
IS=0.8;overlap=wlen-inc;%设置IS,IS为无语音的长度
NIS=fix((IS*fs-wlen)/inc+1);%计算NIS,NIS为无语音段的帧数
fn=fix((N-wlen)/inc)+1;%求帧数
frameTime=frame2time(fn,wlen,inc,fs);%计算每帧对应的时间
[voiceseg,vsl,SF,NF]=vad_ezm1(x,wlen,inc,NIS);%端点检测
fork=1:
vsl%画出起止点位置
nx1=voiceseg(k).begin;nx2=voiceseg(k).end;
nxl=voiceseg(k).duration;%语音段的帧数
fprintf('%4d%4d%4d%4d\n',k,nx1,nx2,nxl);%输出每段语音的起止,长度
line([frameTime(nx1)frameTime(nx1)],[-1.51.5],'color','r','LineStyle','-');
line([frameTime(nx2)frameTime(nx2)],[-1.51.5],'color','r','LineStyle','--');
end
二,基音频率提取和性别判别:
runSet_II%参数设置
runPart_II%读入文件,分帧和端点检测
%滤波器系数
b=[0.012280-0.0395080.0421770.000000-0.0421770.039508-0.012280];
a=[1.000000-5.52714612.854342-16.11030711.479789-4.4101790.713507];
xx=filter(b,a,x);%带通数字滤波
yy=enframe(xx,wlen,inc)';%滤波后信号分帧
lmin=fix(fs/500);%基音周期的最小值
lmax=fix(fs/60);%基音周期的最大值
period=zeros(1,fn);%基音周期初始化
period=ACF_corr(yy,fn,voiceseg,vosl,lmax,lmin);%用自相关函数提取基音周期
T0=pitfilterm1(period,voiceseg,vosl);%平滑处理
%作图
sum=0;
fork=1:
vosl
nx1=voiceseg(k).begin;%有语音段起止点
nx2=voiceseg(k).end;
nxl=voiceseg(k).duration;
fprintf('%4d%4d%4d%4d\n',k,nx1,nx2,nxl);
allframes=fs*max(time)/inc;%计算语音信号的总帧数
frametime1=((nx1)/allframes)*max(time)+0,1;%选取其中一段语音段,计算其开始帧和结束帧的时间,并且去掉首尾过渡段。
frametime2=((nx2)/allframes)*max(time)-0.1;
figure;
subplot;plot(frameTime,T0);holdon;
xlim([frametime1frametime2]);title('每段有语音段的基音周期');%计算每段有语音段的基音周期
grid;xlabel('时间/s');ylabel('样点数');
sum=sum+mean(plot(frameTime,T0));
fprintf('%4d\n',sum);
end
average=fs/(sum/k);%计算平均基音频率
fprintf('%4d\n',average);
if(average<200)%若基音频率大于200Hz,判断为女,反之判断为男
disp('man');
else
disp('woman');
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 语音 信号 处理 实验