⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiyin.m

📁 语音处理平台 可以分析语音能量 第一振峰频率等数据
💻 M
字号:
%基音周期
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);
for i=1:(total/160-3)
    for j=1:640,
        W(j)=0.54-0.46*cos(2*pi*(j-1)/640);
        H(i,j)=y(j+(i-1)*160)*W(j);
    end
end  
[nrows,ncols]=size(H);
%---------循环camdf方法--------------------------------------------------
for i=1:nrows,
   for k=0:ncols-1,
       D(k+1)=0;
       for n=0:ncols-1,
           D(k+1)=D(k+1)+abs(H(i,mod(k+n,ncols)+1) - H(i,n+1));
      end
  end
  %------------搜索最小值的点的算法不对,导致得到的基音频率不对。
  N(1:nrows,1:ncols)=200;%   N(j)用于存放局部极小值点
  for j=2:ncols/2
      if D(j)<D(j-1),
          N(i,j)=D(j);
          j=j+1;
      end
      
  end
  [Y,I]=min(N(i,:));
  T(i)=I/16;
end
plot(T);xlabel('语音帧数');ylabel('语音基音周期/ms');title('语音基音周期分析');

⌨️ 快捷键说明

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