基于MATLAB的语音信号时频域参数分析

更新时间:2023-06-24 11:18:16 阅读: 评论:0

科技广场2007.922
[y, fs, nbits]=wavread(waveFile);y=y*2^nbits/2;
% waveReadInt: Same as wavread, but return inte-ger value of y
创文宣传标语
% Usage: [y, fs, nbits]=wavReadInt(waveFile)
% If nbits=8, then -128<=y<=127
幼儿手指操
孕妇喝什么好% If nbits=16, then -32768<=y<=32767
waveFile='lcq.wav'; frameSize=256; overlap=128;
[y, fs, nbits]=wavReadInt(waveFile);
fprintf('Length of %s is %g sec.\n', waveFile,length(y)/fs);
frameMat=buffer(y, frameSize, overlap);
frameNum=size(frameMat, 2);volume1=zeros(frameNum,1);
volume2=zeros(frameNum, 1);
蔡伦竹海
for i=1:frameNum
frame=frameMat(:,i);
frame=frame-mean(frame);
% zero-justified
木瓜的吃法大全volume1(i)=sum(abs(frame));
% method 1
volume2(i)=10*log10(sum(frame.^2));
% method 2
end
time=(1:length(y))/fs;
frameTime=((0:frameNum-1)*(frameSize-overlap)+0.5*frameSize)/fs;
subplot(3,1,1); plot(time, y); ylabel(waveFile);
subplot(3,1,2); plot(frameTime, volume1, '.-');
ylabel('Volume (Abs. sum)');
subplot(3,1,3); plot(frameTime, volume2, '.-');
ylabel('Volume (Decibels)');
xlabel('Time (sec)');
图一两种短时能量分析结果
2.1.2短时过零率分析
过零就是信号通过零值。对于连续语音信号,可以考察其时域波形通过时间轴的情况。对于离散时间信号,如果相邻的取样值改变符号则称为过零。由此可以计算过零数,过零数就是样本改变符号的次数。单位时间内的过零数称为平均过零数。语音信号x(n)的短时平均过零数定义为: Zn=S{abs{sgn[x(n)]-sgn[x(n-1)]}.w(n-m)}。短时过零分析通常用在端点侦测,特别是用来估计清音的起始位置和结束位置。
下面给出了计算过零率两种方式的MATLAB代码,图二显示了分析结果。
waveFile='lcq';frameSize=256;overlap=0;
[y, fs, nbits]=wavReadInt(waveFile);frameMat=buffer(y, frameSize, overlap);
zcr1=sum(frameMat(1:end-1, :).*frameMat(2:end, :)<0);% Method 1
zcr2=sum(frameMat(1:end-1, :).*frameMat(2:end, :)<=0);% Method 2
time=(1:length(y))/fs;frameNum=size(frameMat, 2);
frameTime=((0:frameNum-1)*(frameSize-overlap)+0.5*frameSize)/fs;
subplot(2,1,1);  plot(time, y);  ylabel(waveFile);
subplot(2,1,2);  plot(frameTime, zcr1, '.-',frameTime, zcr2, '.-');
离别祝福的诗句
title('ZCR');  xlabel('Time (sec)');legend('Method1', 'Method 2');
图二两种短时零率分析结果
从图二可以清楚得看出,清音的过零率要大于浊音的过零率。
2.1.3基音的估计
浊音信号的周期称为基音周期,它是声带振动频率的倒数,基音周期的估计称为基音检测。基音检测是语音处理中的一项重要技术,它在有调语音辨意、低速率语音编码、说话人识别等方面起着非常关键的作用。但在实现过程中,由于声门激励波形不是一个完全的周期脉冲串,再加上声道影响去除不易、基音周期定位困难、背景噪声影响强烈等一系列因素,基音检测面临着很大的困难。现在已有很多性能优越的基音检测算法,自相关基因检测算法就是一种基于语音时域分析理论较好的算法[6]。在这里基于声音文件比较稳定的基础上,使用观察法获取基音周期,下面给出了实现代码,图三给出了直观的结果。征兵体检时间
waveFile='lcq01.wav';[y, fs, nbits]=wavread(waveFile);
index1=11000;frameSize=256;index2=index1+frameSize-1;
frame=y(index1:index2); subplot(2,1,1);  plot(y);
grid on title(waveFile); line(index1*[1 1], [-11], 'color', 'r');
line(index2*[1 1], [-1 1], 'color', 'r'); subplot(2,1,2); plot(frame, '.-');
grid on  point=[7, 189];
2.2频域分析
短时傅立叶分析
在运用离散时间傅立叶变换分析语音信号的变化时,笔触
于MATLAB
23
科技广场2007.924

本文发布于:2023-06-24 11:18:16,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1052682.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:基音   语音   检测   分析   时间   信号   零数   称为
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图