Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :

Microsoft Agent avec Delphi

2002

Par Benoit Vermersch - vermerschb@mailup.net

 

Introduction

Bienvenue dans le monde des Microsoft Agents, Eh oui les petits personnages que vous pouvez voir dans Office, ça vous dirait de pouvoir en mettre dans vos applications. En plus, vous pourrez donner à votre agent la possibilité de parler et d'utiliser la reconnaissance vocale. N'est-ce pas formidable ?. Seul petit hic les composants sont peut-être un peu gros à télécharger. Mais cet obstacle va probablement disparaître par l'arrivée en masse du haut débit plus accessible.

Installation

Pour pouvoir utiliser les composants agents, vous devez télécharger pas mal de composants :

- Un personnage : dans ce tutoriel, nous allons utiliser Claude . Cliquez ici pour le télécharger (2,4 Mo)

- Microsoft Agent 2.0 (392 Ko)

- Text to speech fr : voix du personnage

- SpeechApi

Une fois que tous les composants sont installés, il nous reste plus qu'à installer Microsoft Agent dans Delphi.

- Composants (components) / Importer un contrôle ActiveX ( import an ActiveX control).

- Sélectionner dans la liste : Microsoft Agent 2.0 puis cliquer sur installer

- Un nouveau composant nommé TAgent se trouve maintenant dans la palette ActiveX

1- Afficher le personnage

- Premièrement, déposer un composant TAgent sur la form

- Déclarer une variable :

Var

Form1: TForm1;
Claude:IAgentCtlCharacterEX;

- Maintenant, il faut tout simplement insérer un code dans l'événement OnShow (ou OnCreate) de votre form :

Agent1.Connected:=True;
Agent1.Characters.Load('Claude', 'Claude.acs');// on charge Claude
Claude:=IAgentCtlCharacterEX(Agent1.Characters.Character('Claude'));//Claude est désigné comme agent de l'application
Claude.Show(False); // Pour le faire apparaître.
Claude.LanguageID:=$40C;//Pour indiquer que Claude doit parler en français

- Enregistrer votre projet puis exécutez-le. Normalement, Le personnage apparaît en haut à gauche de votre écran

Si cela ne fonctionne pas, vous avez peut-être mal installé les composant ou copié le code.

2.0 Animation

A- Demander au personnage de s'animer

Faire apparaître un personnage, c'est bien beau, l'animer c'est encore mieux

- D'abord voici la liste des action que peuvent réaliser les agents

'Acknowledge'
'Alert'
'Announce'
'Blink'
'Confused'
'Congratulate'
'Decline'
'DoMagic1'
'DoMagic2'
'DontRecognize'
Caption = 'Explain'
'GestureDown'
'GestureLeft'
'GestureRight'
'GestureUp'
'GetAttention'
'GetAttentionContinued'
'GetAttentionReturn'
'Greet'
'Hearing_1'
'Hearing_2'
'Hearing_3'
'Hide'
'Idle1_1'
'Idle2_1'
'Idle1_4'
'Idle1_3'
'Idle1_2'
'Idle2_2'
'Idle3_1'
'Idle3_2'
'LookDown'
'LookDownBlink'
'LookDownReturn'
'LookDownLeft'
'LookDownLeftBlink'
'LookDownLeftReturn'
'LookRight'
'LookRightBlink'
'LookRightReturn'
'LookUp'
'LookUpBlink'
'LookUpReturn'
'LookUpLeft'
'LookUpLeftBlink'
'LookUpReturn'
'LookUpRight'
'LookUpRightBlink'
'LookUpRightReturn'
'MoveDown'
'MoveLeft'
'MoveRight'
'MoveUp'
'Pleased'
'Process'
'Processing'
'ReadContinued'
'Read'
'ReadReturn'
'Reading'
'RestPose'
'Sad'
'Search'
'Show'
'Searching'
'StartListening'
'StopListening'
'Surprised'
'Suggest'
'Think'
Thinking'
'Uncertain'
'Wave'
'Write'
'WriteReturn'
'WriteContinued'
'Writing'

- Tout d'abord, placez un composant TButton sur la form et mettez son Caption à Bonjour

- Par exemple, pour que Claude vous salut, mettez le code suivant dans l'évènement OnClick de Button1 :

Claude.Play('Wave');// la structure de base est NomduPerso.play('nomdel'action')

- Enregistrez puis testez votre application, vous verrez que Claude vous fait un signe de la main

B- Demander au personnage de se déplacer

- Placez un autre bouton sur la form et mettez son Caption sur Bouge

Nous allons maintenant demander à Claude de se déplacer avec une commande presque aussi simple que pour l'animation.

Claude.MoveTo(24,68,1000);//24 68 sont des valeurs en pixels , 1000 désigne la vitesse de déplacement de l'agent

Voilà, maintenant vous savez animer et déplacer un agent, c'est déjà pas mal, maintenant, nous allons ordonnerà l'agent de parler :

3-0 Faire parler votre agent

A- L'utilisateur écoute seulement

- Posez un 4-ème bouton sur votre fiche en mettant son Caption à Parle

Puis collez le code suivant dans son événement OnClick

Claude.Speak('Bonjour, je m''appelle Claude, et vous ?','');//structure de base = NomduPerso.Speak('texte','');

- Enregistrez puis testez votre projet et admirez le résultat, moi je trouve ça cool

B- L'utilisateur peut choisir le texte à écouter

- Placez un Edit sur votre form

- Placez un Bouton sur votre form avec son Caption sur Parle 2

- Ensuite insérez le code suivant dans l'événement Onclick de ce bouton :

Claude.Speak(Edit1.Text,'');//voilà c'est encore plus simple

Maintenant, nous allons faire la même chose mais avec un RichEdit

- Placez un composants RichEdit sur votre form

- Placez un autre bouton avec pour Caption Parle 3

- Mettez dans l'avènement OnClick de ce bouton le code suivant :

procedure TForm1.Button5Click(Sender: TObject);

var i:integer;
S:string;

begin
for i:=0 to RichEdit1.Lines.Count-1 do
begin
S:=RichEdit1.Lines[i];
if S<>'' then Claude.Speak(S,'');
end;

end;

- Voilà, vous savez faire parler Claude et utiliser ses fonctionnalités. Je vous souhaites une bonne continuation avec les agents Microsoft

Source du programme

Benoit Vermersch, Math sup lycée Ste Geneviève (Versailles), vermerschb@mailup.net,

http://www.phidelagents.fr.st

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -