Sign in

Not a member? | Forgot your Password?

Search matlab

Search tips

Find us on Facebook!





Subscribe to matlab

Search tips

Free PDF Downloads

A Quadrature Signals Tutorial: Complex, But Not Complicated

Understanding the 'Phasing Method' of Single Sideband Demodulation

Complex Digital Signal Processing in Telecommunications

Introduction to Sound Processing

C++ Tutorial

Introduction of C Programming for DSP Applications

Fixed-Point Arithmetic: An Introduction

Cascaded Integrator-Comb (CIC) Filter Introduction

Discussion Groups

FIR Filter Design Software

See Also

Embedded SystemsFPGA

Discussion Groups | Matlab DSP | Load/ Record wave file

Technical discussion about Matlab and issues related to Digital Signal Processing.

  

Post a new Thread



Is this thread worth a thumbs up?

0

Load/ Record wave file - shanaka nishantha - Oct 8 15:28:59 2008

hi, im new to matlab. im doing speech lie detector project. main part is
record, save, load recorded voice from wave file ..etc...

i did recording , stop and paly back parts and wave signal display in plot as
well.
but i have problem in saving recorded voice and loading it again and plotting
it. can some one pls help me to fix that error..
_______________________________________________

function varargout = Main(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',†††††† mfilename, ...
†††††††††††††††††† 'gui_Singleton',† gui_Singleton, ...
†††††††††††††††††† 'gui_OpeningFcn', @Main_OpeningFcn, ...
†††††††††††††††††† 'gui_OutputFcn',† @Main_OutputFcn, ...
†††††††††††††††††† 'gui_LayoutFcn',† [] , ...
†††††††††††††††††† 'gui_Callback',†† []);
if nargin && ischar(varargin{1})
††† gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
††† [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
††† gui_mainfcn(gui_State, varargin{:});
end

function Main_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
handles.status=0;
handles.stat=0;
handles.dat=0;
handles.stp=0;
handles.data=0;
handles.FileName='audio1';
handles.samplerateD100;
handles.bitrate;
handles.chanles=1;
set(handles.figure1,'CloseRequestFcn',@closeGUI);
% Update handles structure
guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.
function varargout = Main_OutputFcn(hObject, eventdata, handles) 

varargout{1} = handles.output;
% --- Executes on button press in btnRec.
function btnRec_Callback(hObject, eventdata, handles)
if handles.status==0
††† handles.status=1;
††† handles.stat=0;
††† handles.dat=0;
††† handles.stp=0;
††† handles.data=1;
†††
handles.r=audiorecorder(handles.samplerate,handles.bitrate,handles.chanles);
††† record(handles.r);
else
††† disp('Warning: Recording Is Already In Progress.')
††† disp(' To Begin A New Recording You Must First Stop The Current Sesion.')
end
guidata(hObject,handles);
% --- Executes on button press in btnStop.
function btnStop_Callback(hObject, eventdata, handles)

if handles.status==1
††† handles.status=0;
††† handles.stat=0;
††† handles.dat=1;
††† handles.stp=1;
††† stop(handles.r);
††† handles.y=getaudiodata(handles.r,'double');
††† if handles.chanles==2
††††††† m2=max(handles.y(:,2));
††††††† n2=max(-handles.y(:,2));
††††††† n2ęs(n2);
††††††† if m2>n2
††††††††††† p2=m2;
††††††† else
††††††††††† p2=n2;
††††††† end
††††††† scale=0.95/p2;
††††††† handles.y(:,2)=scale*handles.y(:,2)
††† end
††† m=max(handles.y(:,1));
††† n=max(-handles.y(:,1));
††† nęs(n);
††† if m>n
††††††† p=m;
††† else
††††††† p=n;
††† end
††† scale=0.95/p;
††† handles.y(:,1)=scale*handles.y(:,1)
††† plot(handles.y)
else
††† disp('Warning: To Stop, Recording Must Be In Progress Or Paused.')
end
guidata(hObject,handles);

% --- Executes on button press in btnPlay.
function btnPlay_Callback(hObject, eventdata, handles)
% hObject††† handle to pl (see GCBO)
% eventdata† reserved - to be defined in a future version of MATLAB
% handles††† structure with handles and user data (see GUIDATA)
%play(handles.r);
if (handles.dat==1)&&((handles.stp==1)||(handles.stat==1))
††† handles.y=getaudiodata(handles.r,'double');
††† if handles.chanles==2
††††††† m2=max(handles.y(:,2));
††††††† n2=max(-handles.y(:,2));
††††††† n2ęs(n2)
††††††† if m2>n2
††††††††††† p2=m2;
††††††† else
††††††††††† p2=n2;
††††††† end
††††††† scale=0.95/p2;
††††††† handles.y(:,2)=scale*handles.y(:,2)
††† end
††† m=max(handles.y(:,1));
††† n=max(-handles.y(:,1));
††† nęs(n)
††† if m>n
††††††† p=m;
††† else
††††††† p=n;
††† end
††† scale=0.95/p;
††† handles.y(:,1)=scale*handles.y(:,1)
††† sound(handles.y,handles.samplerate,handles.bitrate);
else if handles.data==0
††††††† disp('There Is Currently No Audio Saved In Audio Recorder')
††† else
††††††† disp('Worning: To Play, Recorder Must Be Paused Or Stoped')
††† end
end
guidata(hObject,handles);
% --- Executes on button press in btnLoad.
function btnLoad_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile('*.wav','Select Data File');
†† 
†† if filename ~= 0
††† ††† 
††† ††† cd(pathname);
††††† 
††††† %† Get data and sampling rate
††††† [data,R_fs] = wavread([pathname filename]);
††††† if min(size(data))>1
†††††††† error('Can''t load stereo data')
††††† end
† 
end
% --- Executes on button press in btnSave.
function btnSave_Callback(hObject, eventdata, handles)
[filename, pathname] = uiputfile('*.wav', 'Save Data to Wave File');
††† if filename ~= 0
††† ††† wavwrite(z_data,hObject,[pathname filename])
††† end
% --- Executes on button press in btnExit.
function btnExit_Callback(hObject, eventdata, handles)
selection = questdlg('Do you want to Exit?',...
†††††††††††††††††††† 'Lie Detector',...
†††††††††††††††††††† 'Yes','No','Yes');
switch selection,
†† case 'Yes',
††† delete(gcf)
†† case 'No'
†††† return
end