pset.m

来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 168 行

M
168
字号
% Script : Create a graphical user interface (GUI) to 
%           (1) display the pitch contours of the target and source speech
%           (2) manually modify the pitch contour using the mouse.
%
% Pset.m is a call_function executed by "m_pb_pc" on figure(m_win_f).
%
%------------------------------------------%
% create the Pset_f Graphical User Interface %
%------------------------------------------%



if isempty(gci)
   
   Pset_f=figure('Units','Normalized',...
      'Numbertitle','off',...
      'Color','white',...
      'Position',[.165 .55 .35 .35 ],...
      'Name','Pitch Contour Modification');
   
   text1=uicontrol('Style','text',...
      'Units','normalized',...
      'Position',[0.1 0.5 0.8 0.15],...
      'BackGroundColor','white',...
      'String','Sorry, there is no GCI in this speech signal.');

   return_pb=uicontrol('Style','Pushbutton',...
      'Units','normalized','Position',[.2 .3 .6 .2],...
      'Callback','close(Pset_f);',...
      'String','Return');
   
else
   
   % set the temporary value
   if exist('gci3')==0
      gci1=gci;
   else
      gci1=gci3;
   end
   
   % estimae the factor of the pitch contour
   [p01,pw1,pb1,gcidx1,seglens1]=pctour(gci1);
   jitter=p01*pb1*randn(1,length(pw1));  %pitch jitter
   
   clear sp_xx sp_yy; % spline knots [sp_xx, sp_yy]
   
   Pset_f=figure('Units','Normalized',...
      'Numbertitle','off',...
      'Color','white',...
      'Position',[.165 .2 .15 .70 ],...
      'Name','Pitch Contour Modification');

   %----------------------------------------------------%
   % provide zooming, shifting and correcting functions %
   %----------------------------------------------------%
   

   pitch_text=uicontrol('Style','text',...
      'Units','normalized','Position',[0.05 .92 .9 .06],'String','Funda. Pitch:',...
      'BackGroundColor','white','ForeGroundColor','blue');
   
   pitch_pts=uicontrol('Style','text', ...
      'Unit','Normalized','Position',[0.05 .87 .9 .05],'String',num2str(p01),...
      'BackGroundColor','white');
   
   pitch_sh=uicontrol('Style','Slider', ...
      'Value',p01,'Min',20,'Max',150,...
      'Units','normalized','Position',[.05 .82 .9 .05],'Callback', 'pcshf');
   %callback function [pcshf.m]

   wave_text=uicontrol('Style','text',...
      'Units','normalized','Position',[0.05 .73 .9 .06],'String','Pitch Wave:',...
      'BackGroundColor','white','ForeGroundColor','black');
   
   wave_lab=uicontrol('Style','Popup', ...
      'String','add knob|delete knob','Units','normalized','Position',[0.05 .69 .9 .06],...
      'Callback', 'pclbl;');
   %callback function [pclbl.m]
   
   wave_fit=uicontrol('Style','Popup',...
      'String','line_fit|parabola-fit(1)|parabola-fit(2)|cubic-fit|default',...
      'Units','normalized','Position',[0.05 .61 .9 .06],...
      'Callback', 'pcfit;');
   %callback function [pcfit.m]
   
   wave_slt=uicontrol('Style','Pushbutton', ...
      'String','select knob',...
      'Units','normalized','Position',[.05 .53 .9 .06],...
      'Callback', 'UP=0;pcdra');
   %callback function [pcdra.m]
   
   wave_up=uicontrol('Style','Pushbutton', ...
      'String','up','Units','Normalized','Position',[0.05 .44 .4 .06],'Visible','off',...
      'Callback', 'UP=1;pcdra;');
   %callback function [pcdra.m]

   wave_down=uicontrol('Style','Pushbutton', ...
      'String','down','Visible','off',...
      'Units','Normalized','Position',[.55 .44 .4 .06],...
      'Callback', 'UP=-1;pcdra');
   %callback function [pcdra.m]
   
   
   pertb_text=uicontrol('Style','text',...
      'Units','normalized','Position',[0.05 .37 .9 .05],'String','Pitch Jitter:',...
      'BackGroundColor','white','ForeGroundColor','red');
   
   pertb_val=uicontrol('Style','text', ...
      'Unit','Normalized','Position',[0.05 .33 .9 .05],'String',num2str(pb1),...
      'BackGroundColor','white');
   
   pertb_cg=uicontrol('Style','Slider', ...
      'Units','normalized','Position',[.05 .28 .9 .05],...
      'Value',pb1,'Min',0,'Max',2*pb1,...
      'Callback', 'pctur;');
   %callback function [pctur.m]
   
   undo_pb=uicontrol('Style','Pushbutton', ...
      'String','Undo',...
      'Units','normalized','Position',[.2 .18 .6 .06],...
      'Callback','App=0;pcapp');
   %callback function [pcapp.m]
   
   apply_pb=uicontrol('Style','Pushbutton', ...
      'String','Apply' ,...
      'Units','normalized','Position',[.2 .1 .6 .06],...
      'Callback','App=1;pcapp');
   %callback function [pcapp.m]
   
   return_pb=uicontrol('Style','Pushbutton',...
      'Units','normalized','Position',[.2 .02 .6 .06],...
      'Callback','close(Pset_f);close(Pdis_f);close(Pcontour_f);clear nxx nyy nseg gci1 seglens1 pw1 pb1 knob_xx knob_yy knob_idx gcidx1 mwave jitter;',...
      'String','Return');
   
   
   %----------------------------------------------------------------%
   % create Pdis_f figure for displaying the pitch wave and jitter  %
   %----------------------------------------------------------------%
   
   Pdis_f=figure('Units','Normalized',...
      'Numbertitle','off',...
      'Color',[.5 .5 .5],...
      'Position',[.315 .52 .68 .4 ],...
      'Name','Pitch Wave and Jitter Display');
   whitebg(Pdis_f,'w');
   
   %----------------------------------------------------------------%
   % create Pcontour_f figure for displaying the pitch contour      %
   %----------------------------------------------------------------%
   
   Pcontour_f=figure('Units','Normalized',...
      'Numbertitle','off',...
      'Color',[.5 .5 .5],...
      'Position',[.315 .05 .68 .4 ],...
      'Name','Pitch Contour Display');

   whitebg(Pcontour_f,'w');
   
   %--------------------------------------------------%
   % plot the pitch contour on Pset_f  & Fcontour_f   %
   %--------------------------------------------------%
   
   clear mwave knob_xx knob_yy knob_idx;
   
   pcplt;  % call script to plot the pitch contour
   
end %%if gci1==[]

⌨️ 快捷键说明

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