toujours dans mon exploration de l'agent windows
et dans le but de pouvoir integrer le Sapi4 a ma petite librairie "Speak"
j'ai decouvert , le moyen de faire parler l'agent microsoft (qui utilise Sapi4 et les voix de Pierre, Véronique... a récuperer donc)
sans que l'agent ne soit visible (on le colle en dehors de l'ecran

)
mais surtout Sans la bulle qui s'affichait a chaqu'une de ces paroles !!
c'est une petite arnaque pour avoir acces aux voix sapi4 du coup !!
voici le code simplifié !!
ps: je vais aussi modifier le code exemple des agents, parce que mes découvertes, m'ont permis de gérer comme il faut le pitch (hauteur de voix)
et la vitesse , ainsi que le volume , je modifierai donc, le listing plus
dans 3 minutes !!

faudra regarder les commentaire dans le code
Code : Tout sélectionner
IncludePath "..\"
XIncludeFile "COMate.pbi"
Define.COMateObject oAgent, oGenie
oAgent = COMate_CreateObject("Agent.Control.1")
If oAgent
oAgent\SetProperty("Connected = #True")
; **************************** Merlin ***********************
oAgent\Invoke("Characters\Load('Merlin','Merlin.acs')") ;
oAgent\SetProperty("Characters('Merlin')\Balloon\Style=#false") ; fait disparaitre la bulle !!!! ; agent.Characters ("CharacterID").Balloon.Style [ = style]
oGenie = oAgent\GetObjectProperty("Characters('Merlin')")
; *************************************************************
If oGenie
; on fait apparaitre le genie en dehors de l'ecran
; oGenie\Invoke("hollow")
oGenie\Invoke("MoveTo("+StrU(-200)+", "+StrU(100)+", 3000)") ; x,y,vitesse de deplacement
oGenie\Invoke("show") ; active le genie
Delay(3000)
;
oGenie\Invoke("LanguageID=$40C") ; $40C force a parler français ($409 pour l'anglais et la reconnaissance vocale)
;************** comment changer la voix !! *****************************
; aller dans la base de registre cherchez la chaine qui caracterise la voix !!
;hklm\Software\Microsoft\
; Debug oGenie\GetStringProperty("TTSModeID")
veronique.s="{0879A4E0-A92C-11d1-B17B-0020AFED142E}" ;voix française
pierre.s="{0879A4E1-A92C-11d1-B17B-0020AFED142E}" ;voix fançaise
carmen.s="{2CE326E0-A935-11d1-B17B-0020AFED142E}" ; voix espagnole a telecharger
julio.s="{2CE326E1-A935-11d1-B17B-0020AFED142E}" ; voix espagnole a telecharger
oGenie\SetProperty("TTSModeID='"+pierre.s+"'") ; choisi pierre si présent
ch$="'\Chr='Whisper'\'" ;Monotone;Whisper,Normal
ch$="'bonjour, je vais vous parler de Purebasic'"
oGenie\Invoke("Speak("+ch$+")")
oGenie\Invoke("play('Hide')")
Delay(3000)
oGenie\Release()
EndIf
oAgent\Release()
EndIf