zhenfu.m

来自「语音处理平台 可以分析语音能量 第一振峰频率等数据」· M 代码 · 共 91 行

M
91
字号
%振幅能量
close all;
clc;

PV=[235 180 664 463];

m_gui_win_h=figure('Position',PV,...
		'Resize','off',...
		'Numbertitle','off',...%'color',BACK_COLOR,...
		'Name','各帧振幅能量');
    
set(m_gui_win_h,'MenuBar','none');

uicontrol('Style','frame',...
      'Position',[5 5 180 455],...
      'Callback',[]);

  
  uicontrol('Style','pushbutton',...
      'Position',[10 400 165 30],...
      'FontSize',10.0,...
      'String','载入语音',...
      'Callback','loadsp');
   
   m_gui_pb_speechegg_h=uicontrol('Style','pushbutton',...
      'Position',[10 350 165 30],...
      'FontSize',10.0,...
      'String','各帧振幅能量 ',...
      'Callback','zhenfu');

   m_gui_pb_formant_h=uicontrol('Style','pushbutton',...
      'Position',[10 300 165 30],...
      'FontSize',10.0,...
      'String','过零率',...
      'Callback','guoling');
   
   m_gui_pb_vocos_h=uicontrol('Style','pushbutton',...
      'Position',[10 250 165 30],...
      'FontSize',10.0,...
      'String','基音周期',...
      'Callback','jiyin');
   

   m_gui_pb_time_h=uicontrol('Style','pushbutton',...
      'Position',[10 200 165 30],...
      'FontSize',10.0,...
      'String','共振峰频率',...
      'Callback','gongzhen');

   
   m_gui_pb_vocalfold_h=uicontrol('Style','pushbutton',...
      'Position',[10 150 165 30],...
      'FontSize',10.0,...
      'String','自相关函数',...
      'Callback','zixiangguan');

   
   m_gui_pb_formanttrk_h=uicontrol('Style','pushbutton',...
      'Position',[10 100 165 30],...
      'FontSize',10.0,...
      'String','平均幅度差',...
      'Callback','fuducha');
uicontrol('Style','pushbutton',...
      'Position',[10 50 165 30],...
      'FontSize',10.0,...
      'String','返回',...
      'Callback','main_can_shu_fen_xi');
  
ax1=axes('Position',[235 180 664 463]);
axes('Position',[.36 .1 .60 .77],'Box','on','Visible','on');
s=A;
fs=FS;
n=5;fc1=60;fc2=900;
[b,a]=butter(n,[fc1/(fs/2) fc2/(fs/2)]);
y=filter(b,a,s);
total=length(y);
    W=rectwin(640);
    for i=1:(total/160-3)
        for j=1:640,
             B(i,j)=y(j+(i-1)*160)*W(j);
        end
    end
    [nrows,ncols]=size(B);
for i=1:nrows,
    M(i)=0;
    for j=1:ncols,
        M(i)=abs(B(i,j))+M(i);
    end
end
plot(M);xlabel('语音帧数');ylabel('语音短时振幅能量');title('语音短时能量分析');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?