Bonjour,
Je vous propose 2 méthodes pour faire parler une application (sous Windows) selon les actions réalisées dans celle-ci.
Première méthode
Pour commencer, nous posons 3 boutons sur une forme.
Ensuite, nous mettons comobj dans les clauses uses.
Nous déclarons la procédure que nous allons créer :
Créons la procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private procedure Parler(Vx: Word);
Codons les boutons de manière à faire parler l'application :
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 procedure TForm1.Parler(Vx: Word); var SavedCW: Word; SpVoice: Variant; begin SpVoice:= CreateOleObject('SAPI.SpVoice'); //Optionnel : Réglage vitesse et volume de la voix SpVoice.Rate:= 0;//Vitesse de la voix de -10 à 10 SpVoice.Volume:= 100;//Volume de la voix de 0 à 100 //Changer le masque d'interruption FPU pour éviter les exceptions SavedCW:= Get8087CW; try Set8087CW(SavedCW or $4); Case Vx of //Ce qui peut être dit par l'application 0 : SpVoice.Speak('Bonjour', 0); 1 : SpVoice.Speak('Vous avez utilisé la première procédure', 0); 2 : SpVoice.Speak('Au revoir', 0); end; finally //Restaurer le masque FPU Set8087CW(SavedCW); end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Button1Click(Sender: TObject); begin Parler(0); end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Button2Click(Sender: TObject); begin Parler(1); end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.Button3Click(Sender: TObject); begin Parler(2); Close; end;Important : Pour que l'application prononce les caractères accentués correctement, il faut ajouter l'option -FcUTF8 aux options de compilation passées à FPC (dans l'EDI Lazarus Projet / Options du projet.../ Options du compilateur / Options personnalisées) et compiler ensuite.
Deuxième méthode
Avec les mêmes composants, nous allons obtenir un résultat identique à celui de la méthode proposée précédemment.
Ici aussi, nous mettons comobj dans les clauses uses.
Nous déclarons la procédure que nous allons créer :
Créons la procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private Procedure Speaker(Vk: Widestring);
Codons les boutons de manière à faire parler l'application :
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 Procedure TForm1.Speaker(Vk: Widestring); var SavedCW: Word; SpVoice: Variant; begin SpVoice:= CreateOleObject('SAPI.SpVoice'); //Optionnel : Réglage vitesse et volume de la voix SpVoice.Rate:= 0;//Vitesse de la voix de -10 à 10 SpVoice.Volume:= 100;//Volume de la voix de 0 à 100 //Changer le masque d'interruption FPU pour éviter les exceptions SavedCW:= Get8087CW; try Set8087CW(SavedCW or $4); SpVoice.Speak(Vk, 0); finally //Restaurer le masque FPU Set8087CW(SavedCW); end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Button1Click(Sender: TObject); begin Speaker('Bonjour'); end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Button2Click(Sender: TObject); begin Speaker('Vous avez utilisé la deuxième procédure'); end;Comme dans la première méthode, il faut ajouter -FcUTF8 aux options de compilation avant de compiler le projet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.Button3Click(Sender: TObject); begin Speaker('Au revoir'); Close; end;
Maintenant, à vous de choisir la méthode qui vous semblera la plus judicieuse à utiliser dans vos projets.
Partager