IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Microsoft Agents avec Delphi

Ce tutoriel vous apprend comment inclure dans vos applications des Microsoft Agents, les petits personnages que vous pouvez voir dans Office.

3 commentaires

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Image non disponible Image non disponible

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.

II. 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 (3,6 Mo) ;

Image non disponible

Une fois que tous les composants sont installés, il nous ne 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.

III. Afficher le personnage

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

Déclarer une variable :

 
Sélectionnez
Var 
Form1: TForm1;
Claude:IAgentCtlCharacterEX;

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

 
Sélectionnez
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

Enregistrez 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 composants ou copié le code.

IV. Animation

IV-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 actions 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 salue, mettez le code suivant dans l'événement OnClick de Button1 :

 
Sélectionnez
Claude.Play('Wave'); // la structure de base est
                     // NomduPerso.play('nomdelaction')

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

Image non disponible

IV-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 :

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

Image non disponible

Voilà, maintenant vous savez animer et déplacer un agent, c'est déjà pas mal.

Maintenant, nous allons ordonner à l'agent de parler.

V. Faire parler votre agent

V-A. L'utilisateur écoute seulement

Posez un 4e bouton sur votre fiche en mettant son Caption à « Parle », puis collez le code suivant dans son événement OnClick :

 
Sélectionnez
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 :

Image non disponible

V-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 :

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

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

  • placez un composant RichEdit sur votre form ;
  • placez un autre bouton avec pour Caption « Parle 3 » ;
  • mettez dans l'événement OnClick de ce bouton le code suivant :
 
Sélectionnez
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 souhaite une bonne continuation avec les agents Microsoft.

Source du programme

, Math Sup Lycée Ste Geneviève (Versailles)

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2019 Benoît Vermersch. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.