Bonjour
Dans le carde de mon mini-projet notre professeur m'a demandé de traduire en code Simulik un code sous MATLAB qui fait la conversion d'un texte en parole .
J'ai besoin de votre aide !
Merci d'avance
Version imprimable
Bonjour
Dans le carde de mon mini-projet notre professeur m'a demandé de traduire en code Simulik un code sous MATLAB qui fait la conversion d'un texte en parole .
J'ai besoin de votre aide !
Merci d'avance
Bonjour,
Si tu veux qu'on t'aide il va falloir nous en dire un peu plus.
Quel est le code MATLAB de base?
Qu'as-tu fais pour le moment sous Simulink?
Quels sont les points qui te posent problème?
Duf
Bonjour,
Merci pour votre réponse Duf
Le code Matlab est le suivant:
Pour l'instant je me suis bien habitué à la bibliothèque signal processing blocksetCode:
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 function wav = tts(txt,voice,pace,fs) %TTS text to speech. % TTS (TXT) synthesizes speech from string TXT, and speaks it. The audio % format is mono, 16 bit, 16k Hz by default. % % WAV = TTS(TXT) does not vocalize but output to the variable WAV. % % TTS(TXT,VOICE) uses the specific voice. Use TTS('','List') to see a % list of availble voices. Default is the first voice. % % TTS(...,PACE) set the pace of speech to PACE. PACE ranges from % -10 (slowest) to 10 (fastest). Default 0. % % TTS(...,FS) set the sampling rate of the speech to FS kHz. FS must be % one of the following: 8000, 11025, 12000, 16000, 22050, 24000, 32000, % 44100, 48000. Default 16. % % This function requires the Microsoft Win32 Speech API (SAPI). % % Examples: % % Speak the text; % tts('I can speak.'); % % List availble voices; % tts('I can speak.','List'); % % Do not speak out, store the speech in a variable; % w = tts('I can speak.',[],-4,44100); % wavplay(w,44100); % % See also WAVREAD, WAVWRITE, WAVPLAY. % Written by Siyi Deng; 12-21-2007; if ~ispc, error('Microsoft Win32 SAPI is required.'); end if ~ischar(txt), error('First input must be string.'); end SV = actxserver('SAPI.SpVoice'); TK = invoke(SV,'GetVoices'); if nargin > 1 % Select voice; for k = 0:TK.Count-1 if strcmpi(voice,TK.Item(k).GetDescription) SV.Voice = TK.Item(k); break; elseif strcmpi(voice,'list') disp(TK.Item(k).GetDescription); end end % Set pace; if nargin > 2 if isempty(pace), pace = 0; end if abs(pace) > 10, pace = sign(pace)*10; end SV.Rate = pace; end end if nargin < 4 || ~ismember(fs,[8000,11025,12000,16000,22050,24000,32000,... 44100,48000]), fs = 16000; end if nargout > 0 % Output variable; MS = actxserver('SAPI.SpMemoryStream'); MS.Format.Type = sprintf('SAFT%dkHz16BitMono',fix(fs/1000)); SV.AudioOutputStream = MS; end invoke(SV,'Speak',txt); if nargout > 0 % Convert uint8 to double precision; wav = reshape(double(invoke(MS,'GetData')),2,[])'; wav = (wav(:,2)*256+wav(:,1))/32768; wav(wav >= 1) = wav(wav >= 1)-2; delete(MS); clear MS; end delete(SV); clear SV TK; pause(0.2); end % TTS;
Le point qui me pose problème est: Comment passer d'un code avec des If et des elseif a des blocs sous SUMULINK
Bonne journée à vous !
Une façon de faire est d'utiliser les blocs Switch ou Multiport Switch (dans Signal Routing).
Sinon le bloc IF existe aussi dans Simulink.
Merci Duf pour votre réponse,
mais je vois pas comment programmer ce bloc pour qu'il réalise la fonction demander ? si vous pouvez me donner un coup de main !
Merci d'avance ;)