peut-on lire a haute voix un texte en Français d'un fichier

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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 ...
Dernière modification par klystron le dim. 14/déc./2014 16:45, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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 ...
Dernière modification par klystron le dim. 14/déc./2014 16:50, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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...
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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 ?
~~~~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
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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
Dernière modification par falsam le dim. 14/déc./2014 18:05, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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 :D
Dernière modification par klystron le dim. 14/déc./2014 17:32, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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
Dernière modification par falsam le lun. 15/déc./2014 1:23, modifié 3 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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.

8O

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
Dernière modification par klystron le dim. 14/déc./2014 17:46, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: peut-on lire a haute voix un texte en Français d'un fich

Message par falsam »

Montre la ligne de code que tu as modifiée.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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 ...
Dernière modification par klystron le dim. 14/déc./2014 17:53, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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.

Code : Tout sélectionner

RunProgram("C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl")
la voix de Virgine fonctionne correctement quand tu la sélectionne ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: peut-on lire a haute voix un texte en Français d'un fich

Message 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 8O
Dernière modification par klystron le dim. 14/déc./2014 18:05, modifié 1 fois.
Répondre