Merci d'avance ..
Thanks ..
maintenant la nationalité apparait dans la liste des voix ..
Declare MyStopEvent()
Declare MyStartEvent()
Declare MyPositionEvent(letter.l)
Enumeration
#fenetre
#liste
#bouton_parle
#text
#text2
#text3
#text4
#vitesse
#fichier
#volume
#pitch
EndEnumeration
type=TTSInit(0,0,0) ; First we initialize the tts support.
Debug type
voices.l = TTSEngCount() ; Get the highest voice index.
If voices > -1 ; If there are any voice installed...
Debug "There are " + Str (voices+1)+ " voices installed in your system"
;Remember that voice index starts from 0
For i=0 To voices
name$=TTSEngName(i) ; Retrieve each voice name.
Debug "Voice index = " + Str (i)+ " , Voice name = " +name$
Next i
Else
MessageRequester ( "erreur" , "je ne trouve pas de voix" + Chr (10)+ "installé sur le system" , #PB_MessageRequester_Ok )
End
EndIf
CallDebugger
;{**********lit le reglage*****************
OpenFile ( #fichier , "init.txt" )
param$= ReadString ( #fichier )
vitesse$= ReadString ( #fichier )
vitesse= Val (vitesse$)
volume$= ReadString ( #fichier )
volume= Val (volume$)
pitch$= ReadString ( #fichier )
pitch= Val (pitch$)
Debug param$
CloseFile ( #fichier )
voix= Val (param$)
Debug voix
;}***************************
TTSSelect(voix) ; choisi la voix sauvé
TTSSpeak( "Bonjour" ) ; Speak!
OpenWindow ( #fenetre , 374, 121, 200, 170,name$, #PB_Window_SystemMenu | #PB_Window_TitleBar )
SetWindowPos_ ( WindowID ( #fenetre ), -1, 230, 230, 0, 0, #SWP_NOSIZE )
;{ ***** dessin de l'interface **********************
; bouton parle/stop
CreateGadgetList ( WindowID ( #fenetre ))
ButtonGadget ( #bouton_parle , 5, 25, 120, 40, "Parle" )
Resultat = ComboBoxGadget ( #liste , 5, 2, 150, 150 )
; liste des voix
For i=0 To voices
name$=TTSEngName(i) ; Retrieve each voice name.
language$ = TTSEngLang(i) ; arg1.l = voice index
AddGadgetItem ( #liste , -1, language$ ) ; ajoute dans la liste les noms trouvé+nationalité
Next i
name$=TTSEngName( voix) ; cherche le nom
language$ = TTSEngLang(voix) ; cherche le nom+nationalité
SetGadgetState ( #liste , voix) ; active la voix lu par defaut dans la liste
SetWindowTitle ( #fenetre , name$) ; change le titre de la fenetre
; tracbar horizontal (vitesse de la voix)
TextGadget ( #text2 , 2,70, 50, 15, "Vitesse" )
Resultat = TrackBarGadget ( #vitesse , 40, 65, 100, 50, 0, 20, #PB_TrackBar_Ticks )
SetGadgetState ( #vitesse , vitesse)
; tracbar horizontal (volume de la voix)
TextGadget ( #text3 , 2,120, 50, 15, "Volume" )
Resultat = TrackBarGadget ( #volume , 40, 110, 100, 50, 0,100 , #PB_TrackBar_Ticks )
SetGadgetState ( #volume , volume)
CallDebugger
; tracbar vertical (pitch)
TextGadget ( #text4 , 160,145, 50, 30, "pitch" )
Resultat = TrackBarGadget ( #pitch , 160, 50, 50, 100, 0,20, #PB_TrackBar_Vertical )
SetGadgetState ( #pitch , pitch)
TextGadget ( #text , 2,155, 50, 15, "By Dobro" , #PB_Gadget_FrontColor )
SetGadgetColor ( #text , #PB_Gadget_FrontColor , RGB ($42,$42,$FF))
Result.l = TTSInit(@MyStartEvent(),@MyStopEvent(),@MyPositionEvent())
;} ***************************************************
Repeat
EventID = WaitWindowEvent ()
Select EventID
Case #PB_Event_Gadget
Select EventGadget ()
Case #bouton_parle ; apuis sur le bouton parle
If Result ; If the SAPI enviroment is initialized...
TTSSelect(voix) ; You can choose the voice index you like.
text$ = GetClipboardText ()
SetGadgetText ( #bouton_parle , "Parle" )
If lit=1
lit=0
TTSStop()
Goto fin
EndIf
lit=1
SetGadgetText ( #bouton_parle , "Stop" )
pitch= GetGadgetState ( #pitch )
pitch2=pitch-10
volume= GetGadgetState ( #volume )
TTSSetVolume( volume)
vitesse= GetGadgetState ( #vitesse )
vitesse2=vitesse-10
TTSSetSpeed(vitesse2) ; vitesse de diction -50=lent ; +50= tres rapide
TTSSetPitch(pitch2)
; virginie parle
text$ = RemoveString (text$, "Very Happy" ,1)
text$ = RemoveString (text$, "Crying or Very sad" ,1)
text$ = RemoveString (text$, "Smile" ,1)
text$ = RemoveString (text$, "Sad" ,1)
text$ = RemoveString (text$, "Surprised" ,1)
text$ = RemoveString (text$, "Shocked" ,1)
text$ = RemoveString (text$, "Confused" ,1)
text$ = RemoveString (text$, "Cool" ,1)
text$ = RemoveString (text$, "Laughing" ,1)
text$ = RemoveString (text$, "Mad" ,1)
text$ = RemoveString (text$, "#Mad" ,1)
text$ = RemoveString (text$, "Razz" ,1)
text$ = RemoveString (text$, "Embarassed" ,1)
text$ = RemoveString (text$, "#evil" ,1)
text$ = RemoveString (text$, "Twisted Evil" ,1)
text$ = RemoveString (text$, "Rolling Eyes" ,1)
text$ = RemoveString (text$, "Wink" ,1)
text$ = RemoveString (text$, "Exclamation" ,1)
text$ = RemoveString (text$, "Question" ,1)
text$ = RemoveString (text$, "Idea" ,1)
TTSSpeak(text$) ; Speak!
EndIf
Case #vitesse
Case #liste ; choix dans la liste combo
voix = GetGadgetState ( #liste )
name$=TTSEngName( voix) ; cherche le nom
SetWindowTitle ( #fenetre , name$)
fin:
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
If Result ; Once again, if the SAPI is initialized...
;{**********Sauve le reglage*****************
If OpenFile ( #fichier , "init.txt" )<>0
WriteStringN ( #fichier , Str (voix))
WriteStringN ( #fichier , Str (vitesse))
WriteStringN ( #fichier , Str (volume))
WriteStringN ( #fichier , Str (pitch))
Debug voix
CloseFile ( #fichier )
Else
MessageRequester ( "erreur" , "je ne peux pas sauver les paramêtres" , #PB_MessageRequester_Ok )
End
EndIf
;}***************************
TTSSelect(voix) ; choisi virginie
TTSSpeak( "Au Revoir ." ) ; Speak!
Delay (1000)
TTSEnd() ; Free SAPI resources.
EndIf
End
Procedure MyStopEvent() ; And this will fire when...
SetGadgetText ( #bouton_parle , "Parle" )
EndProcedure
Procedure MyStartEvent() ; This procedure will fire when...
SetGadgetText ( #bouton_parle , "stop" )
EndProcedure
Procedure MyPositionEvent(letter.l) ; This one will fire at...
EndProcedure