Microsoft agent faites parler vos applications delphi

Contenu du snippet

Et voui, c'est possible de faire parler ses applications sans passer des heures a s'enregistrer dire un mot !
normalement, si vous avez MS XP, tout est dans votre machine, sinon, l suffit d'aller faire un tour sur le site de microsoft, http://www.microsoft.com/msagent/ , et de telecharger tout ce que vous trouver a telecharger sur http://www.microsoft.com/msagent/downloads.htm.
le mieu serrait d'avoir au moins sur votre machine Microsoft Agent and localization support
Microsoft Agent character files
Text-to-speech engines
SAPI 4.0 runtime support

Puis pour commander votre application a la voie, Speech recognition engines devrai suffire.

Une fois le tout telecharger, On va Importer un controle active X. dans Delphi, vous faites composant --> importer un controle active X, dans la liste vous Sélectionnez Microsoft Agent Control; Cliquez sur installer.
Choisissez le paquet où vous souhaitez installer le contrôle ActiveX. Confirmer la construction (ou la reconstruction) du paquet. Delphi vous a installé dans la barre de composants (sous l'onglet ActiveX) un nouveau composant nommé Agent, le petit bonhomme !!!!
------------------------------------------------------------------------------------------------
Maintenant que le tout est installé correctement, vous pouvez (enfin) commencer a programmer.
VOus inserez le composant dans une fiche, et ... au code maintenant

{ pour les exemples, il vous faut peedy ...

Source / Exemple :


Ajoutez la déclaration de la variable Peedy comme suit:

var
  Form1: TForm1;
  Peedy:IAgentCtlCharacterEx;

[--------------------------------------]

Faire apparaître le personnage
La première chose à demander à notre composant Agent est de charger un personnage nommé Peedy et dont les caractéristiques se trouvent dans le fichier 'Peedy.acs'. Puis, de lui demander de se montrer. On peut, par exemple, implémenter l'événement OnShow de la Form1 ainsi : 

procedure TForm1.FormShow(Sender: TObject);
begin
  Agent1.Connected:=True;  
  Agent1.Characters.Load('Peedy', 'Peedy.acs');// chargement du personnage Peedy
                                               // (Characters en anglais veut dire Personnages)
  Peedy:=IAgentCtlCharacterEX(Agent1.Characters.Character('Peedy'));
// Ainsi Peedy représentera, parmi tous les personnages que contient Agent1
                                               // le personnage Peedy chargé précédemment
  Peedy.Show(False);                           // Pour le faire apparaître. 
end;

[-----------------------------------]

Faire parler le personnage
Il faut indiquer à Peedy le langage à utiliser :

Ajouter, toujours dans l'événement OnShow, la ligne suivante :

Peedy.LanguageID:=$40C;//ou $409 pour l'anglais US
Attention à choisir un langage dont vous avez téléchargé le TextToSpeech sur le site Microsoft.

 

Ajoutez un bouton sur votre fiche et implémentez son événement OnClick ainsi:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Peedy.Speak('Bonjour monde !','');
end;

Lancez le programme cliquez sur votre bouton, Peedy parle !

-------------------------------------------------------------------
Mise a jour du dimanche :-P
-------------------------------------------------------------------

// pour syncroniser avec des action, 
{Ajoutez la déclaration de la variable Requete1 sous la déclaration de Peedy }

Peedy: IAgentCtlCharacterEx;
Requete1:IAgentCtlRequest;

{ Puis dans le code : }
begin
{code}
  Peedy.Speak('Bonjour monde','');
  Requete1:=Peedy.Speak('Hello word !','');// on identifie ce "Speak"
  genie.wait (requete1) ;

{SUite du code ...
end ;

Conclusion :


Voila.
Je pense que vous aller y arriver. Ce n'est pas dure, mais ça demande un peu de reflexion.

Un jour peut-étre, je mettrais comment annimer le personnage, et attendre qu'il ai fini de parler ! mais pour le moment, ceci doit vous suffire .

Et merci a Bardou Michel !

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.