TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plus)
Re: Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plus)
Mise à jour du code, voir premier post.
Salut Erix14,
Pour Cortana, je n'ai pas installé Window 10 encore, je ne sais pas trop ce qui change par rapport à Speech Recognition SDK Plateform 11.
			
			
									
									
						Salut Erix14,
Pour Cortana, je n'ai pas installé Window 10 encore, je ne sais pas trop ce qui change par rapport à Speech Recognition SDK Plateform 11.
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Salut nico, sous Window 10 ce n'est pas Cortana qui parle, ce qui est dommage, car elle parle divinement bien, elle sait même chanter.
Je ne sais pas si tu connais https://www.voxygen.fr, tu peux tester les voix sur leur site, Cortana est au même niveau.
Si l'utilisation de Cortana entre dans les mœurs ces prochaines années, chaque application digne de ce nom devra, en plus d'avoir des raccourcis clavier, avoir des interactions avec Cortana, voir cet exemple : https://msdn.microsoft.com/fr-fr/librar ... 85616.aspx
			
			
									
									
						Je ne sais pas si tu connais https://www.voxygen.fr, tu peux tester les voix sur leur site, Cortana est au même niveau.
Si l'utilisation de Cortana entre dans les mœurs ces prochaines années, chaque application digne de ce nom devra, en plus d'avoir des raccourcis clavier, avoir des interactions avec Cortana, voir cet exemple : https://msdn.microsoft.com/fr-fr/librar ... 85616.aspx
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
J'ai du mal à saisir, alors question:
Pourquoi ce n'est pas Cortana qui parle, la voix est juste dédiée pour l'intéractivité?
Pour faire fonctionner Cortana, il faut faire une App Métro?
			
			
									
									
						Pourquoi ce n'est pas Cortana qui parle, la voix est juste dédiée pour l'intéractivité?
Pour faire fonctionner Cortana, il faut faire une App Métro?
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
(Hélas) Oui Cortana est la voix de l'assistante perso de W10 uniquement, la voix de synthèse du PC est Hortense, pas mauvaise mais loin des intonations de Cortana (d'ailleurs je soupçonne même quelques digits tellement c'est blasant des fois).
Je ne pense pas qu'on soit limité à des APP par contre, vu que les fichiers de config peuvent être en XML (voir lien d'Erix)
			
			
									
									Je ne pense pas qu'on soit limité à des APP par contre, vu que les fichiers de config peuvent être en XML (voir lien d'Erix)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
						⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Oui, Cortana est utilisable pour tous types d'applications, elle est d’ailleurs incluse dans la suite bureautique Office 2016.
Cortana doit encore monter en puissance l'été prochain avec la mise à jour Redstone. Microsoft a de grandes ambitions pour elle et voudrait que toutes les applications l'utilisent.
Pour une application de gestion, le but de l'assistante serait qu'elle puisse répondre directement à une question simple "Quel est le chiffre d'affaires de l'année dernière ?". Mais sur Internet, je n'ai encore rien trouvé sur le protocole de retour à une question (Application => Cortana), alors que c'est évident qu'on puisse le faire.
			
			
									
									
						Cortana doit encore monter en puissance l'été prochain avec la mise à jour Redstone. Microsoft a de grandes ambitions pour elle et voudrait que toutes les applications l'utilisent.
Pour une application de gestion, le but de l'assistante serait qu'elle puisse répondre directement à une question simple "Quel est le chiffre d'affaires de l'année dernière ?". Mais sur Internet, je n'ai encore rien trouvé sur le protocole de retour à une question (Application => Cortana), alors que c'est évident qu'on puisse le faire.
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Si Spock passe par là, je serais enchanté qu'il présente ce code sur le Forum En.
			
			
									
									
						Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Ajout de la fonction SaveTextToWav, voir premier post.
			
			
									
									
						Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Correction et amélioration du code.
			
			
									
									
						Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Mise en place des liens de téléchargement pour le runtime et les voix, voir le premier post.
			
			
									
									
						Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Ajout de deux fonctions, GetAudioOutput et SetAudioOutput, voir premier post.
			
			
									
									
						Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Excellent tout ça nico merci.
			
			
									
									~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
						⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plu
Merci, pour mettre en place les events, ça va me prendre plus de temps, ce sera pas pour tout de suite, il va falloir que je scinde le code en include car ça va être encore beaucoup plus long.
			
			
									
									
						Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plus)
Bonjour,
J'ai testé le code de nico sur Windows 11, 64 bits, et j'ai une erreur à la ligne 978, parenthèse en trop !
J'ai corrigé et j'ai maintenant une erreur à la ligne 536, "accès mémoire invalide".
Pouvez-vous m'aider ?
			
			
									
									
						J'ai testé le code de nico sur Windows 11, 64 bits, et j'ai une erreur à la ligne 978, parenthèse en trop !
J'ai corrigé et j'ai maintenant une erreur à la ligne 536, "accès mémoire invalide".
Pouvez-vous m'aider ?
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plus)
Un beau déterrage.
Voilà un code fonctionnel. Sans les GetVoice
			
			
									
									Voilà un code fonctionnel. Sans les GetVoice
Code : Tout sélectionner
;************************************************************************************
; Ce code à été écrit par Sapero avec le language Aurora Compiler
; Traduit en Purebasic par Nico et modifié par GallyHC et Ar-s.
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; VALEUR POUR "SpeechVoiceSpeakFlags".
Enumeration
  #SVSFDefault            = 0
  #SVSFlagsAsync          = 1
  #SVSFPurgeBeforeSpeak   = 2
  #SVSFIsFilename         = 4
  #SVSFIsXML              = 8
  #SVSFIsNotXML           = 16
  #SVSFPersistXML         = 32
  #SVSFNLPSpeakPunc       = 64
  #SVSFNLPMask            = 64
  #SVSFVoiceMask          = 127
  #SVSFUnusedFlags        = -128
EndEnumeration
Enumeration
  #CLSCTX_INPROC_SERVER   = $1
  #CLSCTX_INPROC_HANDLER  = $2
  #CLSCTX_LOCAL_SERVER    = $4
  #CLSCTX_REMOTE_SERVER   = $10
  #CLSCTX_ALL             = (#CLSCTX_INPROC_SERVER | #CLSCTX_INPROC_HANDLER | #CLSCTX_LOCAL_SERVER | #CLSCTX_REMOTE_SERVER)
EndEnumeration
; ****************************************************************************
; ****************************************************************************
Interface ISpeechVoice Extends IDispatch
  get_Status(*ISpeechVoiceStatus .l)
  get_Voice(*ISpeechObjectToken.l)
  put_Voice(*ISpeechObjectToken.l)
  get_AudioOutput(*ISpeechObjectToken.l)
  put_AudioOutput(*ISpeechObjectToken.l)
  get_AudioOutputStream(*ISpeechBaseStream.l)
  put_AudioOutputStream(*ISpeechBaseStream.l)
  get_Rate(long.l)
  put_Rate(long.l)
  get_Volume(long.l)
  put_Volume(long.l)
  put_AllowAudioOutputFormatChangesOnNextSet(VARIANT_BOOL.l)
  get_AllowAudioOutputFormatChangesOnNextSet(VARIANT_BOOL.l)
  get_EventInterests(SpeechVoiceEvents .l)
  put_EventInterests(SpeechVoiceEvents .l)
  put_Priority(SpeechVoicePriority.l)
  get_Priority(SpeechVoicePriority.l)
  put_AlertBoundary(SpeechVoiceEvents.l)
  get_AlertBoundary(SpeechVoiceEvents.l)
  put_SynchronousSpeakTimeout(long.l)
  SynchronousSpeakTimeout(long.l)
  Speak(*Text, SpeechVoiceSpeakFlags.l, long.l)
  SpeakStream(*ISpeechBaseStream, SpeechVoiceSpeakFlags.l, long.l)
  Pause()
  Resume()
  Skip(*Type, NumItems.l, long.l)
  GetVoices(*RequiredAttributes.l, *OptionalAttributes, *ISpeechObjectTokens.l)
  GetAudioOutputs(*RequiredAttributes, *OptionalAttributes, *ISpeechObjectTokens.l)
  WaitUntilDone(msTimeout.l, VARIANT_BOOL.l)
  SpeakCompleteEvent(long.l)
  IsUISupported(*TypeOfUI, *ExtraData.VARIANT, VARIANT_BOOL.l)
  DisplayUI(hWndParent.l, *Title, *TypeOfUI, *ExtraData.VARIANT)
EndInterface 
; ****************************************************************************
; ****************************************************************************
Procedure.b isSAPIInstalled()
; VERIFICATION DE L'INSTALLATION DE SAPI 4 OU 5.
  Define a.i
  Define bresult.b = #False
  CoInitialize_(0)
  If CoCreateInstance_(?CLSID_SpVoice, 0, #CLSCTX_ALL, ?IID_ISpVoice, @a) = 0
         bresult = #True 
  Else
    If CoCreateInstance_(?CLSID_ITextToSpeech, 0, #CLSCTX_ALL, ?IID_ITextToSpeech, @a) = 0
      bresult = #True
      
      ;---********************************
      
      ;---**********
      
      
    EndIf
  EndIf
  CoUninitialize_()
  ProcedureReturn bresult 
  
EndProcedure
; ****************************************************************************
; ****************************************************************************
Procedure SAPISpeechtext(stext.s, speed=0)
  ;
   
  
  Define.i itemp, bstrtext
  Define text1.s
  Define *buffer1, *buffer2, *buffer3 
  Define clsid.CLSID, refiid.CLSID
  Define speechvoice.ISpeechVoice
  
  If isSAPIInstalled() = #True And stext <> #Null$
    text1 = "SAPI.SpVoice"
    *buffer1 = AllocateMemory((Len(text1) + 1) * 2)
    PokeS(*buffer1, text1, -1, #PB_Unicode)
    text1 = "{269316D8-57BD-11D2-9EEE-00C04F797396}"
    *buffer2 = AllocateMemory((Len(text1) + 1) * 2)
    PokeS(*buffer2, text1, -1, #PB_Unicode)
    If CLSIDFromProgID_(*buffer1, @Clsid.clsid)    = #S_OK
      If CLSIDFromString_(*buffer2, @Refiid.clsid) = #S_OK
        CoInitialize_(0)
        If  CoCreateInstance_(clsid, #Null, #CLSCTX_INPROC_SERVER, refiid, @speechvoice) = #S_OK
          *buffer3 = AllocateMemory((Len(stext) + 1) * 2)
          PokeS(*buffer3, stext, -1, #PB_Unicode)
          itemp    = #SVSFDefault
          bstrtext = SysAllocString_(*buffer3)
          ;
          ; EXEMPLE DE QUELQUES PARAMATRES.
          ;
          speechvoice\put_Rate(Speed)
          speechvoice\put_Volume(100)
          ;
          ; EXEMPLE DE QUELQUES PARAMATRES.
          ;
          speechvoice\Speak(bstrtext, 0, @itemp)
          SysFreeString_(bstrtext)
          FreeMemory(*buffer3)
          speechvoice\Release()
        EndIf
        CoUninitialize_()
      EndIf
    EndIf
    FreeMemory(*buffer1)
    FreeMemory(*buffer2)
    
  EndIf
  
EndProcedure
; ************************************************************************************************
; ********************************TON CODE ICI******************************************
 SAPISpeechtext("Bienvenue, jack 64, tu déterres un topic qui a dix ans, ce code là fonctionne.",0)
; ************************************************************************************************
 
; **************************EN BAS DE PAGE*****************************
; ****************************************************************************
DataSection
  CLSID_SpVoice:
    Data.l $96749377
    Data.w $3391,$11D2
    Data.b $9E,$E3,$00,$C0,$4F,$79,$73,$96
  IID_ISpVoice:
    Data.l $269316D8
    Data.w $57BD,$11D2
    Data.b $9E,$EE,$00,$C0,$4F,$79,$73,$96
  CLSID_ITextToSpeech:
    Data.l $EEE78591
    Data.w $FE22,$11D0
    Data.b $8B,$EF,$00,$60,$08,$18,$41,$DE
  IID_ITextToSpeech:
    Data.l $EEE78590
    Data.w $FE22,$11D0
    Data.b $8B,$EF,$00,$60,$08,$18,$41,$DE
  EndDataSection
  
 
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
						⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: TTS - Sapi 5 (XP et plus) et Speech SDK 11 (Vista et plus)
merci Ar-S,
est-il possible de mettre une autre voix que celle par défaut ?
			
			
									
									
						est-il possible de mettre une autre voix que celle par défaut ?