



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档语音信号的分帧加窗的matlab实现function Seg=segment(signal,W,SP,Window)if nargin3 SP=.4;endif nargin2 W=256;endif nargin4 Window=hamming(W);endWindow=Window(:); %make it a column vectorL=length(signal);SP=fix(W.*SP);N=fix(L-W)/SP +1); %number of segmentsIndex=(repmat(1:W,N,1)+repmat(0:(N-1)*SP,1,W);hw=repmat(Window,1,N);Seg=signal(Index).*hw;语音信号处理预加重、加窗分帧matlab程序%获取语音信号filename,pathname=uigetfile(*.wav,choose a audio file:);wavin,fs,nbits=wavread(pathname filename);wav_l=length(wavin); %采样点数,length()返回值是标量frame_l=0.04*fs; %根据fs选择帧长, step_l=floor(0.5*frame_l); %设置帧移 num_frame=floor(wav_l-frame_l)/step_l)+1; %确定帧数 win_ham=hamming(frame_l); %在做fft之前,为移除直流分量和加重高频分量,采用汉明窗,对信号进行加权 %加窗处理用来消除分帧时带来的截断效应 %加窗,分帧(矩阵每一行为一帧)for i=1:num_frame n1=(i-1)*step_l+1; n2=(i-1)*step_l+frame_l; zy(i,:)=(win_ham).*(yt(n1:n2); %存储每一帧噪音(行向量) %win_ham、yt是列向量,需转置 yy(i,:)=(win_ham).*(wavin(n1:n2); %存储每一帧纯净语音end关于matlab中的语音识别在用DFT求得倒普之后。为什么需要加上倒普提升窗口呢? 谢谢!窗函数是这样的:w = 1+6*sin(pi*1:12./12); 为什么要这样计算呢? 以下是具体的程序%文件mfcc.mfunction ccc=gbfcosmfcc(x)%归一化mel滤波器组系数bank=melbankm(24,256,16000,0,0.5,m);bank=full(bank);bank=bank/max(bank(:);%DCT系数,12*24for k=1:12 n=0:23; dctcoef(k,:)=cos(2*n+1)*k*pi/(2*24);end%归一化倒谱提升窗口w=1+6*sin(pi*1:12./12);w=w/max(w);%预加重滤波器xx=double(x);xx=filter(1 -1,1,xx);xx=x; %zhang add%语音信号分帧%xx=enframe(xx,256,80);xppl=length(xx);j=1;for i=65:80:xppl-256, xx1(j,:)=xx(i:i+256-1); j=j+1;endxx=xx1;%计算每帧的MFCC参数for i=1:size(xx,1) y=xx(i,:); s=y.*hamming(256); t=abs(fft(s); t=t.2; t=t+2*realmin; log(bank*t(1:129) c1=dctcoef*log(bank*t(1:129) c11=Disfrcthe(1,24)*log(bank*t(1:129) c2=c1.*w; m(i,:)=c2;end%差分参数dtm=zeros(size(m);for i=3:size(m,1)-2 dtm(i,:)=-2*m(i-2,:)-m(i-1,:)+m(i+1,:)+2*m(i+2,:);enddtm=dtm/3;%合并mfcc参数和一阶差分mfcc参数ccc=m dtm;%去除首尾两帧,因为这两帧的一阶差分参数为0ccc=ccc(3:size(m,1)-2,:);return利用MATLAB录制并保存声音文件R = audiorecorder( 44100, 16 ,2 ) ;%创建一个保存音频信息的对象,它包含采样率,时间和录制的音频信息等等record(R); %开始录制,此时对着麦克风说话即可。pause(R); %暂停录制。play(R)%播放录制的声音。myspeech = getaudiodata(R);%得到以n*2列数字矩阵存储的刚录制的音频信号。save sp myspeechplot(myspeech)%画出波形声音信号时域分析程序wavwrite(myspeech,44100,16,myspeech);%myspeech表示要存入的波形矩阵,44100表采样率,16 为以16bits存储,myspeech为存储的文件名。waveFile=myspeech;y, fs, nbits=wavread(myspeechfile);a=0.95;y2 = filter(1, -a, 1, y);time=(1:length(y)/fs;wavwrite(y2, fs, nbits, whatFood_preEmphasis.wav); subplot(2,1,1);plot(time, y);title(Original wave: s(n);subplot(2,1,2);plot(time, y2);title(sprintf(After pre-emphasis: s_2(n)=s(n)-a*s(n-1), a=%f, a);subplot(2,1,1);set(gca, unit, pixel);axisPos=get(gca, position);uicontrol(string, Play, position, axisPos(1:2), 60, 20, callback, sound(y, fs);subplot(2,1,2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行长治市潞州区2025秋招小语种岗笔试题及答案
- 农发行丽水市缙云县2025秋招数据分析师笔试题及答案
- 农发行大同市天镇县2025秋招小语种岗笔试题及答案
- 国家能源蚌埠市淮上区2025秋招半结构化面试模拟30问及答案
- 成都青白江区中储粮2025秋招笔试题库含答案
- 保山隆阳区中储粮2025秋招笔试性格测评题专练及答案
- 成都彭州中储粮2025秋招网申填写模板含开放题范文
- 区域买卖合同(集合15篇)
- 关于弟子规的演讲稿15篇
- 刘秀祥先进事迹心得体会
- 急性心力衰竭急救
- 2024年中国充电基础设施服务质量发展报告
- 2024小学科学教师职称考试模拟试卷及参考答案
- 农村房产放弃协议书
- 2025年中国热镀锡铜线数据监测报告
- 母女亲子断绝协议书范本
- 物联网导论(第四版)课件:感知技术
- 客户关系管理(CRM)系统项目总结报告范文
- 抖音外卖合同协议
- 装卸设备安全管理制度
- 做有温度的护理人
评论
0/150
提交评论