formant_modify.m
来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 369 行
M
369 行
%Callback function to modify formants
%Written by Albert Hsiao
%Modifications and interface by Karthik
%Modified by D. G. Childers 2/25/98
PV = [17 100 404 464];
s2 = 'Formant Modification Window';
% Open analysis window
while exist('formant_modify_fig')==1
try1 = 'get(formant_modify_fig,''position'');';
eval(try1,catch2);
if check ==0
clear formant_modify_fig;
check = 1;
break;
end
s1 = get(formant_modify_fig,'Name');
if ~strcmp(s1,s2)
clear formant_modify_fig;
break;
end
figure(formant_modify_fig);
break;
end;
if exist('formant_modify_fig')~=1;
formant_modify_fig= figure('Position',PV,...
'Resize','on',...
'Numbertitle','off',...
'Color',[0.5 0.5 0.5],...
'Name',s2);
end
clf;
uicontrol('Style','frame', ...
'Units','Normalized',...
'Position',[0.02 0.88 0.96 0.10],...
'BackGroundColor','white');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.03 .90 .6 .04],...
'BackgroundColor','white',...
'ForeGroundColor','blue',...
'String','Time Invariant Excitation Waveform ');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.6 0.90 0.2 0.04],...
'String','Total Frames',...
'HorizontalAlignment','left',...
'BackgroundColor','white',...
'ForegroundColor','blue');
source_Nframe_edit = uicontrol('Style','Edit',...
'Units','Normalized',...
'Position',[0.78 0.9 0.11 0.04],...
'String',Nframe);
uicontrol('Style','frame',...
'Units','Normalized',...
'Position',[0.02 0.16 0.46 0.71],...
'BackGroundColor','white');
if uvindicate(segment_no) == 1
uvstring = 'Voiced Segment';
else
uvstring = 'Unvoiced Segment';
end
uicontrol('Style','Text',...
'Units','Normalized',...
'Position',[0.03 0.78 .4 .05], ...
'String',uvstring,...
'BackGroundColor','white',...
'HorizontalAlignment','Center',...
'ForeGroundColor','blue');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.04 0.73 .2 .04],...
'BackGroundColor','white',...
'String','First formant');
formant_f1_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.04 .69 .1 .04], ...
'String',num2str(Ff1(segment_no,1)),...
'BackGroundColor','white',...
'Callback','for1_edit');
formant_f1_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[.15 .69 .3 .04], ...
'Value',Ff1(segment_no,1),...
'Min',0,...
'Max',10000,...
'Callback', 'for1_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.04 0.63 .2 .04],...
'BackGroundColor','white',...
'String','Second Formant');
formant_f2_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.04 .59 .1 .04], ...
'String',num2str(Ff1(segment_no,2)),...
'BackGroundColor','white',...
'Callback','for2_edit');
formant_f2_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[.15 .59 .3 .04], ...
'Value',Ff1(segment_no,2),...
'Min',0,...
'Max',10000,...
'Callback', 'for2_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.04 0.53 .2 .04],...
'BackGroundColor','white',...
'String','Third formant');
formant_f3_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.04 .49 .1 .04], ...
'String',num2str(Ff1(segment_no,3)),...
'BackGroundColor','white',...
'Callback','for3_edit');
formant_f3_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[.15 .49 .3 .04], ...
'Value',Ff1(segment_no,3),...
'Min',0,...
'Max',10000,...
'Callback', 'for3_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.04 0.43 .2 .04],...
'BackGroundColor','white',...
'String','Fourth formant');
formant_f4_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.04 .39 .1 .04], ...
'String',num2str(Ff1(segment_no,4)),...
'BackGroundColor','white',...
'Callback','for4_edit');
formant_f4_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[.15 .39 .3 .04], ...
'Value',Ff1(segment_no,4),...
'Min',0,...
'Max',10000,...
'Callback', 'for4_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.04 0.33 .2 .04],...
'BackGroundColor','white',...
'String','Fifth formant');
formant_f5_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.04 .29 .1 .04], ...
'String',num2str(Ff1(segment_no,5)),...
'BackGroundColor','white',...
'Callback','for5_edit');
formant_f5_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[.15 .29 .3 .04], ...
'Value',Ff1(segment_no,5),...
'Min',0,...
'Max',10000,...
'Callback', 'for5_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.04 0.23 .2 .04],...
'BackGroundColor','white',...
'String','Sixth formant');
formant_f6_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.04 .19 .1 .04], ...
'String',num2str(Ff1(segment_no,6)),...
'BackGroundColor','white',...
'Callback','for6_edit');
formant_f6_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[.15 .19 .3 .04], ...
'Value',Ff1(segment_no,6),...
'Min',0,...
'Max',10000,...
'Callback', 'for6_slider');
%Right frame with bandwidth
uicontrol('Style','frame',...
'Units','Normalized',...
'Position',[0.52 0.16 0.46 0.71],...
'BackGroundColor','white');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.55 0.73 .3 .04],...
'BackGroundColor','white',...
'String','First bandwidth');
formant_b1_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.55 .69 .1 .04], ...
'String',num2str(Fb1(segment_no,1)),...
'BackGroundColor','white',...
'Callback','bw1_edit');
formant_b1_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[0.66 .69 .3 .04], ...
'Value',Fb1(segment_no,1),...
'Min',0,...
'Max',6000,...
'Callback', 'bw1_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.55 0.63 .3 .04],...
'BackGroundColor','white',...
'String','Second bandwidth');
formant_b2_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.55 .59 .1 .04], ...
'String',num2str(Fb1(segment_no,2)),...
'BackGroundColor','white',...
'Callback','bw2_edit');
formant_b2_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[0.66 .59 .3 .04], ...
'Value',Fb1(segment_no,2),...
'Min',0,...
'Max',6000,...
'Callback', 'bw2_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.55 0.53 .3 .04],...
'BackGroundColor','white',...
'String','Third bandwidth');
formant_b3_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.55 .49 .1 .04], ...
'String',num2str(Fb1(segment_no,3)),...
'BackGroundColor','white',...
'Callback','bw3_edit');
formant_b3_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[0.66 .49 .3 .04], ...
'Value',Fb1(segment_no,3),...
'Min',0,...
'Max',6000,...
'Callback', 'bw3_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.55 0.43 .3 .04],...
'BackGroundColor','white',...
'String','Fourth bandwidth');
formant_b4_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.55 .39 .1 .04], ...
'String',num2str(Fb1(segment_no,4)),...
'BackGroundColor','white',...
'Callback','bw4_edit');
formant_b4_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[0.66 .39 .3 .04], ...
'Value',Fb1(segment_no,4),...
'Min',0,...
'Max',6000,...
'Callback', 'bw4_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.55 0.33 .3 .04],...
'BackGroundColor','white',...
'String','Fifth bandwidth');
formant_b5_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.55 .29 .1 .04], ...
'String',num2str(Fb1(segment_no,5)),...
'BackGroundColor','white',...
'Callback','bw5_edit');
formant_b5_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[0.66 .29 .3 .04], ...
'Value',Fb1(segment_no,5),...
'Min',0,...
'Max',6000,...
'Callback', 'bw5_slider');
uicontrol('Style','text',...
'Units','Normalized',...
'Position',[0.55 0.23 .3 .04],...
'BackGroundColor','white',...
'String','Sixth bandwidth');
formant_b6_edit = uicontrol('Style','edit',...
'Units','Normalized',...
'Position',[0.55 .19 .1 .04], ...
'String',num2str(Fb1(segment_no,6)),...
'BackGroundColor','white',...
'Callback','bw6_edit');
formant_b6_slider =uicontrol('Style','Slider',...
'Units','Normalized',...
'Position',[0.66 .19 .3 .04], ...
'Value',Fb1(segment_no,6),...
'Min',0,...
'Max',6000,...
'Callback', 'bw6_slider');
uicontrol('Style','frame',...
'Units','Normalized',...
'Position',[0.02 0.02 0.96 0.13],...
'BackGroundColor',[0.8 0.8 0.8]);
uicontrol('Style','Pushbutton',...
'Units','Normalized',...
'Position',[0.1 0.05 0.20 0.06],...
'String','Apply to all',...
'Callback','formant_apply_all');
uicontrol('Style','Pushbutton',...
'Units','Normalized',...
'Position',[0.35 0.05 0.20 0.06],...
'String','Reset',...
'Callback','formant_reset');
uicontrol('Style','Pushbutton',...
'Units','Normalized',...
'Position',[0.6 0.05 0.20 0.06],...
'String','Done',...
'Callback','formant_modify_quit');
plot_formant;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?