gusucode.com > 端点检测和基于DTW和HMM的孤立词识别和连续语音识别 > code/record/record.m
function varargout = record(varargin) % RECORD Application M-file for record.fig % FIG = RECORD launch record GUI. % RECORD('callback_name', ...) invoke the named callback. % Last Modified by GUIDE v2.0 11-Nov-2001 21:12:03 if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Use system color scheme for figure: set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); guidata(fig, handles); if nargout > 0 varargout{1} = fig; end elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard catch disp(lasterr); end end %| ABOUT CALLBACKS: %| GUIDE automatically appends subfunction prototypes to this file, and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. This comment describes that mechanism. %| %| Each callback subfunction declaration has the following form: %| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN) %| %| The subfunction name is composed using the object's Tag and the %| callback type separated by '_', e.g. 'slider2_Callback', %| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'. %| %| H is the callback object's handle (obtained using GCBO). %| %| EVENTDATA is empty, but reserved for future use. %| %| HANDLES is a structure containing handles of components in GUI using %| tags as fieldnames, e.g. handles.figure1, handles.slider2. This %| structure is created at GUI startup using GUIHANDLES and stored in %| the figure's application data using GUIDATA. A copy of the structure %| is passed to each callback. You can store additional information in %| this structure at GUI startup, and you can change the structure %| during callbacks. Call guidata(h, handles) after changing your %| copy to replace the stored original so that subsequent callbacks see %| the updates. Type "help guihandles" and "help guidata" for more %| information. %| %| VARARGIN contains any extra arguments you have passed to the %| callback. Specify the extra arguments by editing the callback %| property in the inspector. By default, GUIDE sets the property to: %| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo)) %| Add any extra arguments after the last argument, before the final %| closing parenthesis. % -------------------------------------------------------------------- function varargout = push_record_Callback(h, eventdata, handles, varargin) global ud invoke(ud.hactx,'start'); % -------------------------------------------------------------------- function varargout = push_save_Callback(h, eventdata, handles, varargin) global ud hf = handles.figure_main; ht = handles.text_prompt; if ud.word>length(ud.samples) ud.samples{ud.word} = {}; end n = length(ud.samples{ud.word})+1; ud.samples{ud.word}{n} = ud.x; plot(ud.x,'Parent',ud.haxes); prompt = sprintf('当前词共有语音个数:%d', n); set(ht,'String',prompt); samples = ud.samples; save samples samples % -------------------------------------------------------------------- function varargout = push_play_Callback(h, eventdata, handles, varargin) global ud plot(ud.x,'Parent',ud.haxes); soundsc(ud.x); % -------------------------------------------------------------------- function varargout = list_word_Callback(h, eventdata, handles, varargin) global ud hf = handles.figure_main; ht = handles.text_prompt; ud.word = get(h, 'Value'); if ud.word>length(ud.samples) ud.samples{ud.word} = {}; end n = length(ud.samples{ud.word}); prompt = sprintf('当前词共有语音个数:%d', n); set(ht,'String',prompt); % -------------------------------------------------------------------- function varargout = push_start_Callback(h, eventdata, handles, varargin) global ud hf = handles.figure_main; ud.hactx = ACTXCONTROL('ACTVOICE.ActvoiceCtrl.1',[0 0 0 0], hf, 'sample'); ud.haxes = handles.axes_wave; ud.samples = {}; ud.word = 1;