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