资源描述:
《语音信号特征提取程序设计代码.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主程序:%fs=22050;%抽样频率x=wavread('2.wav');figure(1);subplot(211);plot(x);title('原始语音信号波形','fontsize',16,'fontweight','bold');xlabel('样点数','fontsize',16,'fontweight','bold');ylabel('幅值','fontsize',16,'fontweight','bold');gridon;N=128;n=0:N-1;y=fft(x);mag=abs(y);f=(0:length(y)-1)'*fs/l
2、ength(y);%进行对应的频率转换figure(1);subplot(212);plot(f,mag);title('原始信号频谱图','fontsize',16,'fontweight','bold');xlabel('频率(Hz)','fontsize',16,'fontweight','bold');ylabel('幅值','fontsize',16,'fontweight','bold');gridon;y=wavread('2.wav');%预加重figure();subplot(211);plot(x);xlabel('样点数','fon
3、tsize',16,'fontweight','bold');ylabel('原始波形(幅值)','fontsize',16,'fontweight','bold');xx=double(y);subplot(212);plot(xx);xlabel('样点数','fontsize',16,'fontweight','bold');ylabel('预加重波形(幅值)','fontsize',16,'fontweight','bold');%对指定帧位置进行加窗处理Q=y';N=256;%窗长Hamm=hamming(N);%加窗(汉明窗)Rect=rec
4、twin(N);%加窗(矩形窗)frame=60;%需要处理的帧位置M=Q(((frame-1)*(N/2)+1):((frame-1)*(N/2)+N));Frame=M.*Hamm';%加窗后的语音帧frame=M.*Rect';figure();subplot(211);plot(Frame);ylabel('汉明窗','fontsize',16,'fontweight','bold');subplot(212);plot(frame);ylabel('矩形窗','fontsize',16,'fontweight','bold');%语音信号分帧f
5、igure();subplot(211);plot(y);xlabel('样点数','fontsize',16,'fontweight','bold');ylabel('原始','fontsize',16,'fontweight','bold');y=enframe(y,256,80);subplot(212);plot(y);xlabel('帧数','fontsize',16,'fontweight','bold');ylabel('分帧','fontsize',16,'fontweight','bold');%端点检测[x1,x2]=vad(x);%
6、调用函数vad实现%浊音,取13270--13510个点%短时自相关函数temp=y(13271:13510);Rn1=zeros(1,240);fornn=1:240forii=1:240-nnRn1(nn)=Rn1(nn)+temp(ii)*temp(nn+ii);endendfigure(6);subplot(211);jj=1:240;plot(jj,Rn1,'b');title('浊音自相关函数','fontsize',16,'fontweight','bold');xlabel('帧数','fontsize',16,'fontweight',
7、'bold');ylabel('短时自相关函数','fontsize',16,'fontweight','bold');gridon;%清音,取12120--12360个点%短时自相关函数temp=y(12121:12360);Rn2=zeros(1,240);fornn=1:240forii=1:240-nnRn2(nn)=Rn2(nn)+temp(ii)*temp(nn+ii);endendfigure(6);subplot(212);jj=1:240;plot(jj,Rn2,'b');title('清音自相关函数','fontsize',16,'f
8、ontweight','bold');xlabel('帧数','fontsize