I. 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.
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) ;
|
- Microsoft Agent 2.0 (392 Ko) ;
- Text-to-Speech fr (5,4 Mo) : voix du personnage ;
- SpeechAPI.
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 :
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
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'
|
'Hide'
|
'LookUpLeftBlink'
|
'StopListening'
|
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 :
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 :
|
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 :
Claude.MoveTo(24
,68
,1000
); // 24 et 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.
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 :
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 :
|
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 :
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 :
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.
, Math Sup Lycée Ste Geneviève (Versailles)