Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/03/2022, à 15:45

pescadou999

Tkinter et Playsound

Bonjour,
Voici un petit exemple de ce qui me chagrine, la fenetre tk devrait apparaitre et ensuite la voix devrait dire Hello les gars
Mais la voix donne le message AVANT de créer la fenêtre tk, c'est gênant surtout dans un long script où tous les messgaes sont lus avant d'afficher la fen tk et ses widgets
Qu"en pensez vous ? (tous les modules sont installés
Merci d'avance si vous avez une réponse
Pierre

f

from tkinter import *
root=Tk()
from gtts import gTTS

def makeMP3(words,language="fr"):
		import playsound
		tts = gTTS(words, lang=language)
		tts.save("tmp.mp3")
		playsound.playsound("tmp.mp3") 

makeMP3("Hello les gars")
root.mainloop()

Hors ligne

#2 Le 10/03/2022, à 18:25

Vobul

Re : Tkinter et Playsound

Ça me semble logique que makeMP3 soit executé avant que la fenêtre s'affiche car il est appellé avant.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

En ligne

#3 Le 10/03/2022, à 18:40

pescadou999

Re : Tkinter et Playsound

Bin non c'est pas logique car root=Tk() doit déclencher l"apparition de la fenetre AVANT

Hors ligne

#4 Le 11/03/2022, à 07:30

Compte supprimé

Re : Tkinter et Playsound

Bonjour,
Ceci est lié au fait que ta fonction bloque le mainloop():
Tant que ta fonction garde la main le mainloop() n'est pas exécuté.

Avec tkinter, (programmation événementielle) le mainloop() ne doit jamais être bloqué.
note: les import doivent tous se faire en début de programme

#5 Le 11/03/2022, à 08:54

pescadou999

Re : Tkinter et Playsound

oui tu as raison c'est le mainloop() qui est bloqué
comme ceci ça marche , avec le Button qui ne bloque pas le mainloop()
merci

from tkinter import *
from gtts import gTTS
import playsound

def parle():
	tts = gTTS("Hello les gars",lang="fr")
	tts.save("tmp.mp3")
	playsound.playsound("tmp.mp3")

root=Tk()

root.title("test")

bouton=Button(root,text="parle",command=parle)
bouton.grid()

root.mainloop()
 

Hors ligne