首页 > 编程知识 正文

语音信号处理实验(语音信号处理 实验1 语音端点检测)

时间:2023-05-06 09:08:52 阅读:122566 作者:1090

clcclear[x,fs]=audioread ('写自己的文件路径………………wav ); x=x (3360,1 ); 帧长度=512; %越大,帧编号越平滑=fix (length (x )/framelength ); %计算短时能量for i=1:framenumber; e(I )=0; forj=(帧长度* (I-1 )1) :13360帧长度* (I ) I; e(I )=e ) I ) x(j ) ^2; 结束; 结束; 总时间=长度(x )/fs; Fori=1:长度(x; 点时间(I )=总时间* I /长度(x ) x; endfor i=1:framenumber; 帧时间(I )=总时间* I /帧编号; 结束子打印(3,1,1 )打印(plot )点时间,x ); title (原始语音波形) subplot (3,1,2 ) plot (帧时间,e ); meane=mean(e ) 1:10 ); vare=STD(e ) 1:10 ); ET=MeanE VarE; % 10*ET是阈值,表示线line([0totaltime]、[10*ET 10*ET]、' color '、' g '、' LineWidth ',1 ); title (语音短时能量) ) %画界线的flag=0; %上阈值,下阈值标志lineset=-1; for i=1:framenumber; if(e ) I ) 10*ET flag==0) %向上通过阈值,起点line ([帧时间(if(e )帧时间(I ) ]、[0 max(E ) e]、' color lineset=[linesetframetime(I ) ] %边界x是为下一个边界flag=1保留的,endif(e ) I ) 10*ET flag==1在阈值以下[0 max(E ) e]、' color '、' r' lineset=[linesetframetime(I ) ] flag=0; endendlineset=lineset (2: end; subplot (3,1,3 ) plot point time,x ); %划线forI=1:length(lineset ); line([lineset(i(I ) lineset ) I ) ]、[-max(x ) x )-0.5 max(x ) x ]、' color '、' r '、' LineWidth ',) endtitle (“识别后的声音波形”

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。