Page 4 sur 6
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 16:41
par klystron
c'est la voix Microsoft anna
impossible de pouvoir changer de voix ... c'est un probleme de W7 ?
il me semble l'avoir déjà signaler à microsolt , mais ils s'en foute ...
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 16:44
par falsam
klystron a écrit :c'est la voix Microsoft anna
Tu as bien éxécuté le code précédent qui permet d'obtenir un debug de la liste des voix ?
http://www.purebasic.fr/french/viewtopi ... 59#p169459
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 16:46
par klystron
oui j'ai executé ton dernier code , mais la voix c'est celle de anna Microsoft ...
il y a un bug sur W7 je crois bien
dans l'installation des voix on ne peut pas changer , tu peut y mettre 10 voix nouvelles, cela ne changera pas car les carrés ou l'on doit valider les voix ne marchent pas ...
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 16:48
par falsam
klystron a écrit :impossible de changer de voix les boutons sont innibés ?...
Hey ! mais le numéro de la voix est à modifier dans le code que je t'ai donné.
C'est dans ces ligne là que tu modifies le numéro
Code : Tout sélectionner
;Sélection du numéro de la voix : (0 première voix)
SpeechObjectTokens\Item(1, @Token.ISpeechObjectToken)
Moi j'ai mis 1 mais peut etre que ta voix n'est pas en cette position.
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 16:51
par klystron
attends je regardes sur le tableau
la 1ere c'est pierre
la 4eme c'est virgine 16khz
donne moi le numero de la ligne ( du code pb )
4eme position c'est donc 3 car 0 c'est la premiere ?
c'est un bug de leur narration sur Windows 7...
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:18
par Ar-S
klystron a écrit :attends je regardes sur le tableau
la 1ere c'est pierre
la 4eme c'est virgine 16khz
donne moi le numero de la ligne ( du code pb )
4eme position c'est donc 3 car 0 c'est la premiere ?
c'est un bug de leur narration sur Windows 7...
J'ai déjà changé les voix sur W7 sans soucis. C'est bizarre. Tu as bien un compte admin sur ton pc ?
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:20
par klystron
oui bien sur
impossible de pouvoir changer la voix sur leur installation.
la narration est figé sur une voix anglaise.
il me semble avoir signaler ce probleme a Microsoft il y a quelque temps deja
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:22
par falsam
klystron a écrit :attends je regardes sur le tableau
la 4eme c'est virgine 16khz
c'est un bug de leur narration sur Windows 7...
Non non pas de bug
Vers la ligne 100 tu as
Code : Tout sélectionner
;Sélection du numéro de la voix : (0 première voix)
SpeechObjectTokens\Item(1, @Token.ISpeechObjectToken)
Remplace 1 par 3 et essayes à nouveau
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:24
par klystron
ok j'y vais
j'ai mis 3 resultat anna
j'ai mis 4 resultat anna
tu as un pc avec Windows 7 ?
sur mon tableau ou il y a les voix, je ne peut pas changer une voix de la liste, toutes les boutons sont bloqués avec la voix en anglais .
si quelqu'un a un utilitaire pour aller voir sur mon pc ?
il verra sur piece

Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:31
par falsam
Une fois la voix de virginie correctement installée et paramétrée dans le code Pure Basic. Voila une nouvelle démo avec table de multiplication. NE PAS OUBLIER DE PARAMETRER LE NUMERO DE LA VOIX SOUHAITE DANS CE CODE.
Code : Tout sélectionner
; Contributor : Traduction en Pure Basic du code de Sapero par Nico
;Installation de la voix française Virginie si celle d'origine ne fonctionne pas
;http://s242132022.onlinehome.fr/Download/PureBasic/RSSolo4FrenchVirginie.zip
#CLSCTX_INPROC_SERVER=1
;/Valeur pour SpeechVoiceSpeakFlags
#SVSFDefault = 0
#SVSFlagsAsync = 1
#SVSFPurgeBeforeSpeak = 2
#SVSFIsFilename = 4
#SVSFIsXML = 8
#SVSFIsNotXML = 16
#SVSFPersistXML = 32
#SVSFNLPSpeakPunc = 64
#SVSFNLPMask = 64
#SVSFVoiceMask = 127
#SVSFUnusedFlags = -128
Interface ISpeechObjectToken Extends IDispatch
get_Id( ObjectId)
get_DataKey( ISpeechDataKey.l)
get_Category( ISpeechObjectTokenCategory.l)
GetDescription( Locale.l,Description)
SetId( Id,CategoryID,CreateIfNotExist)
GetAttribute( AttributeName,*AttributeValue)
CreateInstance( pUnkOuter,SpeechTokenContext,Object)
Remove( ObjectStorageCLSID)
GetStorageFileName( ObjectStorageCLSID,KeyName,FileName,SpeechTokenShellFolder,*FilePath)
RemoveStorageFileName( ObjectStorageCLSID,KeyName,DeleteFile)
IsUISupported( TypeOfUI,*ExtraData,*Object,*Supported)
DisplayUI( hWnd,Title,TypeOfUI,*ExtraData,*Object )
MatchesAttributes( Attributes,*Matches)
EndInterface
Interface ISpeechObjectTokens Extends IDispatch
get_Count(a.l)
Item(Index.l,Token.ISpeechObjectToken)
get__NewEnum(ppEnumVARIANT.IUnknown )
EndInterface
Interface ISpeechVoice Extends IDispatch
get_Status(*ISpeechVoiceStatus .l)
get_Voice(*ISpeechObjectToken)
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
Texte1.s="SAPI.SpVoice"
*Tampon1=AllocateMemory((Len(Texte1)+1)*2)
PokeS(*Tampon1,Texte1,-1,#PB_Unicode)
Texte2.s="{269316D8-57BD-11D2-9EEE-00C04F797396}"
*Tampon2=AllocateMemory((Len(Texte2)+1)*2)
PokeS(*Tampon2,Texte2,-1,#PB_Unicode)
If CLSIDFromProgID_(*Tampon1, @Clsid.CLSID)=#S_OK
If CLSIDFromString_(*Tampon2, @Refiid.CLSID)=#S_OK
CoInitialize_(0)
If CoCreateInstance_(Clsid, #Null, #CLSCTX_INPROC_SERVER, Refiid, @SpeechVoice.ISpeechVoice)=#S_OK
SpeechVoice\GetVoices(0, 0, @SpeechObjectTokens.ISpeechObjectTokens)
SpeechObjectTokens\get_Count(@Count)
;Sélection du numéro de la voix : (0 voix par défaut configurée dans le panneau de configuration)
SpeechObjectTokens\Item(0, @Token.ISpeechObjectToken)
;Vitesse d'éxécution (0 Normal. Une valeur négative réduit la vitesse. Une valeur positive augmentge la vitesse )
speechvoice\put_Rate(0)
;Paramétrage du volume (0 à 100)
speechvoice\put_Volume(50)
;Fin du paramétrage
SpeechVoice\put_Voice(Token)
SpeechObjectTokens\Release()
;Il est temps de dire quelques chose en français.
;Une table de multiplication
Texte3.s="Bonjour Klystron. Je m'appelle Virginie."+#CRLF$
Texte3 + "Je serais votre assistante virtuelle."+#CRLF$
Texte3 + "Nous allons voir aujourd'hui, la table de multiplication par deux."+#CRLF$
texte3 + "Commençons." + #CRLF$
For n=0 To 10
texte3 + Str(n) + " fois 2 =" + Str(n*2) + #CRLF$
Next
Texte3 + #CRLF$
Texte3 + "J'espére que j'ai pu vous aider."+#CRLF$
Texte3 + "A bientôt."+#CRLF$
*Tampon3=AllocateMemory((Len(Texte3)+1)*2)
PokeS(*Tampon3,Texte3,-1,#PB_Unicode)
temp=#SVSFDefault
bstrText = SysAllocString_(*Tampon3)
SpeechVoice\Speak(bstrText, 0, @temp)
SysFreeString_(bstrText)
FreeMemory(*Tampon3)
SpeechVoice\Release()
EndIf
CoUninitialize_()
EndIf
EndIf
FreeMemory(*Tampon1)
FreeMemory(*Tampon2)
End
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:41
par klystron
je suis désolé mais je viens de lancer ton programme code, en changeant les numero de la liste a savoir :
mis 1 anna
mis 2 anna
mis 3 anna
mis 4 anna
et meme j'ai 0 anna toutes en anglais.
pourtant la voix de virginie 16khz est bien dans la liste
je ne comprend pas , car je mets les mises a jour Windows régulièrement
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:43
par falsam
Montre la ligne de code que tu as modifiée.
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:47
par klystron
;Sélection du numéro de la voix : (0 prémiere voix)
SpeechObjectTokens\Item(4, @Token.ISpeechObjectToken)
je mets a jour Windows régulièrement pourtant .
je ne sais pas ce qu'il se passe ?, je crois leur avoir signaler ce probleme .mais ils s'en foute
il me semble avoir vu ce probleme sur un forum il y a longtemps ...
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:52
par falsam
klystron a écrit :;Sélection du numéro de la voix : (0 prémiere voix)
SpeechObjectTokens\Item(4, @Token.ISpeechObjectToken)
Le numéro de la voix commençant à 0, remplace 4 par 3. Mais tu as fais le test et ça ne fonctionne pas apparemment.
Si je reviens sur ce code qui exécute la panneau de configuation des voix.
la voix de Virgine fonctionne correctement quand tu la sélectionne ?
Re: peut-on lire a haute voix un texte en Français d'un fich
Publié : dim. 14/déc./2014 17:54
par klystron
oui sur le tableau la voix de virginie est tres claire, elle fonctionne bien sur le tableau .
il me semble qu'il y a une astuce , mais je ne l'a connais pas.
peut-être avec un forum a ce sujet là ?...
si non en s'en passera
