salut, j'ai rencontré un probléme sur le matlab , je souhaite que vous m'aidiez.
Le probléme consiste en création d'une interface graphique intutlée GUIDE sur le matlab.
Je fais un programme de reconnaissance vocale simple, je veux integrer une interface graphique dans laquelle je mettrais
deux boutons: l'un pour commencer l'enregistrement et l'autre pour afficher le résultat de la reconnaissance vocale ainsi déduit.
mais je n'ai pas parvenue à le faire .
Voici le code que j'ai utlilsé:
CODE SANS INTERFACE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
% utilisation des fichiers préenregistrés
clear all ;
clc ;
fs=44100;
[bonjour,fs] = wavread ('bonjour'); 
[Tunisie,fs] = wavread ('Tunisie');
[Salut,fs] = wavread ('Salut');
% frequence_echantillonage = fs;
% normalisation du son
%bonjour
maximum1 = max (abs(bonjour));
l1 = length(bonjour);
son1 = zeros(1,1);
for i=1:l1 
    son1(i)= bonjour(i)/maximum1 ;
end ;
 
%Tunisie
maximum2 = max (abs(Tunisie));
l2 = length(Tunisie);
son2 = zeros(1,1);
for i=1:l2 
    son2(i)= Tunisie(i)/maximum2 ;
end ;
 
%Salut
maximum3 = max (abs(Salut));
l3 = length(Salut);
son3 = zeros(1,1);
for i=1:l3 
    son3(i)= Salut(i)/maximum3 ;
end ;
 
%calcul transformé de Fourier rappide
tr1=abs(fft(son1));
tr2=abs(fft(son2));
tr3=abs(fft(son3));
 
%PROCESSUS DE RECONNAISSANCE VOCALE
t1 = 2;
temp= t1*20000;
in1=analoginput('winsound')
canal1=addchannel(in1,1);
in1.SampleRate=44100;
in1.SamplesPerTrigger=temp
in1.TriggerType=('Immediate');
 
start(in1);
[d,t]=getdata(in1);
stop(in1);
wavwrite(d,44100,'voix');
sound(d,44100);
 
%gestion de l audio enregistrée
voix=wavread('voix');
 
[s Fs]= wavread ('voix');
wavplay(s,Fs)
 
%normalisation
maximum1=max(abs(voix));
l1=length(voix);
son4=zeros(1,1);
for i=1:l1
    son4(i)=voix(i)/maximum1;
end
 
%transformation
tr4=abs(fft(son4));
 
%calcul d'erreur
error(1)=abs(mean(abs(tr4))-mean(abs(tr1)));
error(2)=abs(mean(abs(tr4))-mean(abs(tr2)));
error(3)=abs(mean(abs(tr4))-mean(abs(tr3)));
erreurminimum = min(error);
 
%comparaison d'erreur
if erreurminimum == error(1);
    disp('vous dites bonjour');
end
if erreurminimum == error(2);
    disp('vous dites Tunisie');
end
if erreurminimum == error(3);
    disp('vous dites Salut');
end
CODE AVEC INTERFACE GRAPHIC

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
function varargout = A(varargin)
% A MATLAB code for A.fig
%      A, by itself, creates a new A or raises the existing
%      singleton*.
%
%      H = A returns the handle to a new A or the handle to
%      the existing singleton*.
%
%      A('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in A.M with the given input arguments.
%
%      A('Property','Value',...) creates a new A or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before A_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to A_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
 
% Edit the above text to modify the response to help A
 
% Last Modified by GUIDE v2.5 18-May-2014 17:10:58
 
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @A_OpeningFcn, ...
                   'gui_OutputFcn',  @A_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
% End initialization code - DO NOT EDIT
 
 
% --- Executes just before A is made visible.
function A_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to A (see VARARGIN)
 
% Choose default command line output for A
handles.output = hObject;
 
% Update handles structure
guidata(hObject, handles);
 
% UIWAIT makes A wait for user response (see UIRESUME)
% uiwait(handles.figure1);
 
 
% --- Outputs from this function are returned to the command line.
function varargout = A_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Get default command line output from handles structure
varargout{1} = handles.output;
 
 
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
clear all;
% utilisation des fichiers préenregistrés
clear all ;
clc ;
fs=44100;
[bonjour,fs] = wavread ('bonjour'); 
[Tunisie,fs] = wavread ('Tunisie');
[Salut,fs] = wavread ('Salut');
% frequence_echantillonage = fs;
% normalisation du son
%bonjour
maximum1 = max (abs(bonjour));
l1 = length(bonjour);
son1 = zeros(1,1);
for i=1:l1 
    son1(i)= bonjour(i)/maximum1 ;
end ;
 
%Tunisie
maximum2 = max (abs(Tunisie));
l2 = length(Tunisie);
son2 = zeros(1,1);
for i=1:l2 
    son2(i)= Tunisie(i)/maximum2 ;
end ;
 
%Salut
maximum3 = max (abs(Salut));
l3 = length(Salut);
son3 = zeros(1,1);
for i=1:l3 
    son3(i)= Salut(i)/maximum3 ;
end ;
 
%calcul transformé de Fourier rappide
tr1=abs(fft(son1));
tr2=abs(fft(son2));
tr3=abs(fft(son3));
 
%PROCESSUS DE RECONNAISSANCE VOCALE
t1 = 2;
temp= t1*20000;
in1=analoginput('winsound')
canal1=addchannel(in1,1);
in1.SampleRate=44100;
in1.SamplesPerTrigger=temp
in1.TriggerType=('Immediate');
 
start(in1);
[d,t]=getdata(in1);
stop(in1);
wavwrite(d,44100,'voix');
sound(d,44100);
 
%gestion de l audio enregistrée
voix=wavread('voix');
 
[s Fs]= wavread ('voix');
wavplay(s,Fs)
 
%normalisation
maximum1=max(abs(voix));
l1=length(voix);
son4=zeros(1,1);
for i=1:l1
    son4(i)=voix(i)/maximum1;
end
 
%transformation
tr4=abs(fft(son4));
 
%calcul d'erreur
error(1)=abs(mean(abs(tr4))-mean(abs(tr1)));
error(2)=abs(mean(abs(tr4))-mean(abs(tr2)));
error(3)=abs(mean(abs(tr4))-mean(abs(tr3)));
erreurminimum = min(error);
enregistrer ;
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
 
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
clear all ;
if erreurminimum == error(1);
    disp('vous dites bonjour');
end
if erreurminimum == error(2);
    disp('vous dites Tunisie');
end
if erreurminimum == error(3);
    disp('vous dites Salut');
end
reconnaitre;