Faire parler votre application Delphi avec Acapela Multimedia
Publié le 07/06/2006 Dans Programmation
1. Installation
2. On lance Delphi!
3. » Et si on codait?
4. Et ça donne?
Et si on codait?
On est donc parti! On va donc commencer par créer le composant dans le FormCreate.

Le ConnectEngine est obligatoire pour pouvoir commencer à utiliser Acapela. Les 3 paramètres sont obligatoires et ne peuvent être que ces valeurs, pas trop de problème donc pour le moment.

  1. procedure TForm1.FormCreate(Sender: TObject); 
  2. begin 
  3.   FSpeech := TAASpeechCtrl.Create(self); 
  4.   if FSpeech.ConnectEngine(10'') <> 0 then 
  5.     raise Exception.Create('Unable to connect to the API'); 
  6.   FSpeechVoice := -1
  7. end;


Après création du contrôle, on peut maintenant faire la liste des voix disponibles. Pour la démonstration, seules les voix francophones ont été installées, mais il existe des dizaines de voix dans toutes les langues les plus courantes.

  1. procedure TForm1.Button1Click(Sender: TObject); 
  2. var 
  3.  i: Integer; 
  4. begin 
  5.   case FSpeech.Enumerate of 
  6.     EAS_NOT_CONNECTED: 
  7.       raise Exception.Create('API Not connected'); 
  8.     EAS_NOT_ENOUGH_MEMORY: 
  9.       raise Exception.Create('Not enough memory'); 
  10.     EAS_SRV_NOTRUNNING: 
  11.       raise Exception.Create('SRV Not Running'); 
  12.   end
  13.   for i:=0 to FSpeech.VoiceCount-1 do 
  14.     ListBox1.Items.Add(FSpeech.Voice[ i ].Speaker); 
  15. end;


Si tout s'est bien déroulé jusqu'ici, il ne reste maintenant plus qu'à faire parler notre application... Et rien de plus simple à vrai dire.

On sélectionne tout d'abord la voix dans la listbox et on utilise le .cmd au lieu du .speaker. Une fois la voix chargée, il suffit d'utiliser la fonction speak avec le texte à annoncer.

  1. procedure TForm1.Button2Click(Sender: TObject); 
  2. begin 
  3.   if ListBox1.ItemIndex = -1 then 
  4.     raise Exception.Create('Please select a voice first'); 
  5.   if FSpeechVoice <> ListBox1.ItemIndex then 
  6.   begin 
  7.     if FSpeechVoice <> -1 then 
  8.       FSpeech.Unload; 
  9.     FSpeechVoice := ListBox1.ItemIndex; 
  10.     FSpeechVoiceID := FSpeech.Load(FSpeech.Voice[FSpeechVoice].Cmd); 
  11.   end
  12.   FSpeech.Speak(Memo1.Text, FSpeechVoiceID); 
  13. end;


Pour être un tant soit peu soigneux, il ne faudrait pas non plus oublier d'unloader de moteur TTS (Text To Speech), d'appeler la méthode de fermeture du moteur et de le libérer.

  1. procedure TForm1.FormDestroy(Sender: TObject); 
  2. begin 
  3.   FSpeech.Unload; 
  4.   FSpeech.DisconnectEngine; 
  5.   FreeAndNil(FSpeech); 
  6. end;


C'était un bref aperçu, on peut utiliser ce code pour commencer à faire parler son application Delphi, mais il est encore possible de paramétrer pleins de choses comme la vitesse, le pitch, le volume et de réagir à toute une série d'événement pour savoir quand le TTS a terminé de parler, etc, etc...

Tout cela est parfaitement documenté dans le fichier AcaMul-ActiveX-6.pdf d'Acapela.
Commentaires
Editer  Citer
Faire parler votre application Delphi avec Acapela Multimedia
Caroline et Pierre peuvent aller se rhabiller, c'est trop naze :rofl:

Mais Bruno et Claire wouw p'tain respect, on dirait des vrais :prosterne:
Par ovh, Publié le 07/06/2006 @ 20:56:17
Editer  Citer
Faire parler votre application Delphi avec Acapela Multimedia
Ce sont des voix haute qualité bruno et claire. Claire est réellement... claire :grin:

C'est assez impressionant à écouter et à faire parler sur sa propre machine. Dommage que l'on ne puisse s'amuser que 30 jours avec ce petit jouet sinon je me ferais un plaisir de programmer l'un ou l'autre automatisme pour m'annoncer des événements. (en gros comme le nabaztag, mais sur ma machine :joce: )
Par zion, Publié le 07/06/2006 @ 20:58:27
Editer  Citer
Faire parler votre application Delphi avec Acapela Multimedia
lol Caroline et Pierre :grin:

Ca me rapelle la lecture audio de texte sur les macs.
Ca existe tjrs dans OS X ?
Par didix, Publié le 07/06/2006 @ 21:22:31
Editer  Citer
Faire parler votre application Delphi avec Acapela Multimedia
Et ou on trouve l'API ? :heink:
Par cauet, Publié le 17/10/2006 @ 01:29:14

Poster un commentaire
Vous devez être identifié pour accéder à cette fonctionnalité

Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?