Synchro entre texte écrit et texte dit (playsound et tkinter

Résolu/Fermé
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022 - Modifié le 3 mars 2022 à 11:04
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 - 11 mars 2022 à 19:15
Bonjour,
Quand j'exécute le script suivant, avant de me donner la fenêtre Tk il me donne le son "Hello les gars" et ensuite montrer la fenetre tk.
Et pour de plus long scripts c'est gênant puisqu'on entend différentes lignes de son avant l'apparition de la fenêtre.
Je fais peut être une erreur, le "import playsound" est-il mal placé.
Merçi si vous pouvez m'aider.
Pierre

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()



Configuration: Linux / Firefox 97.0

6 réponses

yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480
3 mars 2022 à 11:35
bonjour,
as-tu essayé
playsound.playsound("tmp.mp3", False)
?
https://fr.acervolima.com/jouer-du-son-en-python/
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
3 mars 2022 à 11:54
Bonjour, merci de ta reponse
il donne ceci : NotImplementedError: block=False cannot be used on this platform yet
C'est à True par défaut
0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480 > pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
3 mars 2022 à 15:20
peut-être en ajoutant
root.wait_visibility()

avant la ligne 11.
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022 > yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024
3 mars 2022 à 18:30
non malheureusement pas
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022 > yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024
3 mars 2022 à 18:37
"Le module magicsound remplace le module playsound, devenue obsolète depuis 2020."
j"ai essayé mais ca ne change rien
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022 > yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024
3 mars 2022 à 19:13
et j'ai remarqué qu'il ne dit pas les messages qui sont dans une fonction DEF quoique ce soit la premiere chose qu'il fasse lors de l'appel à la fonction
0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480
4 mars 2022 à 11:44
quand je teste ceci, je vois clairement l'effet de
wait_visibility()
. toi pas (suivant que tu le supprimes ou pas)?
import time
import tkinter
root=tkinter.Tk()
print("invisible")
root.wait_visibility()
print("visible")
time.sleep(5)
print("5 secs plus tard")
root.mainloop()
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
10 mars 2022 à 09:40
root.wait_visibility() n'a aucun effet sur mes sons
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
10 mars 2022 à 14:06
invisible s'affiche
visible s'affiche
les deux simultanément avec la fenetre tk qui apparait
5 secondes plus tard le message "5secondes plus tard 's'affiche" , la fen tk ne disparait pas
Ca me semble tout à fait normal, root.wait_visibility() ne semble avoir aucun effet
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
10 mars 2022 à 14:11
dans le wait_visibility(), il n'y a rien dans les parenthese ??
0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480 > pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
10 mars 2022 à 15:20
rien entre parenthèses, en effet.
quand je retire
root.wait_visibility()
, j'ai un tout autre comportement. toi pas?
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022 > yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024
10 mars 2022 à 17:30
simplement que avec la fenetre apparait tout de suite
tandis que sans la fenetre apparait à la fin
Il n'existe pas grand chose comme doc sur l'utilisation simultanée de tkinter et python
merci
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
4 mars 2022 à 14:09
merci je reviens dès que possible
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
4 mars 2022 à 16:44
Voila, une "fausse" IA sans prétention c'est pour amuser les gamins, j'ai installé les modules nécessaires dans mon Xubuntu 20.04 LTS


<code python>

from tkinter import *
from gtts import gTTS
from playsound import playsound
from googlesearch import search


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

def mef(): #rechercher un mot sur google - trouve - et mettre url dans un fichier text.txt
labelsuite=Entry(fen)
labelsuite.grid(column=2, row=7)
suite=labelsuite.get()
label5=Label(fen,text= "je cherche : "+str(suite))
label5.grid(column=2,row=9)
for j in search("https://fr.wikipedia.org/wiki/"+str(suite)): #y a un probleme car il n'écrit pas "suite"
file=open("text.txt",'at')
file.write(j)
file.write('\n')
file.close()

def getEntry():
res = prenom.get()
label2= Label(fen, text="Bonjour " + str(res) + ", contente de notre connexion")
label2.grid(column=2,row=5)
makeMP3("Bonjour " + str(res) + ", contente de notre connexion") # il n y a que cette partie qu'elle dit après

label3= Label(fen, text="Maintenant, " +str(res)+", nous allons rechercher un mot sur internet")
label3.grid(column=2,row=6)
makeMP3("Maintenant" +str(res)+", quel mot veux tu rechercher ?")


fen = Tk()
fen.geometry("1000x600")

from gtts import gTTS
import os

fen.title("Intelligence artificielle - Test")

label1=Label(fen, text='**** j u l I A ****', bg="yellow", relief=GROOVE)
label1.grid(column=0,row=3)
makeMP3("Bonjour je suis une IA appelée Julia")



icone = PhotoImage(file='IA2.png')
faire2= Label(fen, image=icone)
faire2.grid(row=4, column=0)

faire3 = Label(fen, text="prog en Python")
faire3.grid()

faire4 = Label(fen, text="P.DUFLOS")
faire4.grid()

makeMP3("Humain, comment t'appelles tu ?")
label1= Label(fen, text= "Humain, comment t'appelles tu ?")
label1.grid()

prenom=Entry(fen)
prenom.grid()

bouton=Button(fen, text="ok",command = getEntry)
bouton.grid()

makeMP3("Nous allons chercher des mots sur Wikipedia et mémoriser les url trouvées")


bouton=Button(fen, text="chercher : ", command=mef())
bouton.grid(column=2, row=8)


#suite à écrire

fen.mainloop()
</code>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
10 mars 2022 à 09:45
Nouvelle version mais problemes de sons toujours pas résolus (tous les messages son sont dit avant l'ouverture de la fenetre tk donc ca ne ressemble plus à rien




#jeu 03 mar 2022 11:03:27 creation de la fenetre de travail+
from tkinter import *
from gtts import gTTS

from playsound import playsound
from googlesearch import search
res=""
suite=""

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

def mef(): #rechercher un mot sur google - trouve - et mettre url dans un fichier
global suite
labelsuite=Entry(fen)
suite=labelsuite.get()
labelsuite.grid(column=2, row=7)
for j in search("https://fr.wikipedia.org/wiki/"+str(suite)):
file=open("text.txt",'at')
file.write(j)
file.write('\n')
file.close()

def getEntry():
global res
prenom=Entry(fen)
res=prenom.get()
prenom.grid()
label2=Label(fen,text="Bonjour "+ res +" contente de notre connexion")
makeMP3("Bonjour " + res + "contente de notre connexion")
label2.grid(column=2,row=5)
label3=Label(fen, text="Maintenant, " +str(res)+", nous allons rechercher un mot sur internet")
makeMP3("Nous allons chercher des mots sur Wikipedia et mémoriser les url trouvées")
label3.grid(column=2,row=6)


fen = Tk()
fen.geometry("1000x800")

from gtts import gTTS
#fen.wait_visibility()
fen.title("Intelligence artificielle - Test")

label1=Label(fen, text='**** J U L I A ****', bg="yellow", relief=GROOVE,commande=makeMP3("Bonjour je suis une IA appelée Julia"))
label1.grid(column=0,row=3)



icone = PhotoImage(file='IA2.png')
faire2= Label(fen, image=icone)
faire2.grid(row=4, column=0)

faire3 = Label(fen, text="prog en Python")
faire3.grid()

faire4 = Label(fen, text="P.DUFLOS")
faire4.grid()

#makeMP3("Humain, comment t'appelles tu ?")
label1= Label(fen, text= "Humain, comment t'appelles tu ?", commande=makeMP3("Humain, comment t'appelles tu ?"))
label1.grid()

prenom=Entry(fen)
prenom.grid()

bouton=Button(fen, text="ok",command = getEntry)
bouton.grid()


bouton=Button(fen, text="chercher : ")
makeMP3("Nous allons chercher des mots sur Wikipedia et mémoriser les url trouvées")
bouton.grid()

label5=Label(fen,text= "je cherche : "+ suite)
commande=mef
label5.grid(column=2,row=9)


fen.mainloop()


0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480
10 mars 2022 à 09:58
Tu n'as pas répondu au #10.
0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480
10 mars 2022 à 20:07
quand tu partages du code, merci d'utiliser les balises comme expliqué en détails ici: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480
10 mars 2022 à 20:11
La partie qui est correcte, c'est ce que tu fais pour le bouton "ok". regarde bien comment tu as défini
command = getEntry
.
Le reste est largement incorrect.
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022 > yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024
11 mars 2022 à 12:00
whais y a des choses à corriger mais moi tant que le son n'est pas synchro (c'est le sujet de ce post) avec le texte dans la fenêtre ... C'est résolu.merci
0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480 > pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
11 mars 2022 à 14:36
peux-tu marquer la discussion comme résolue?
0
pescadou9999 Messages postés 24 Date d'inscription mardi 20 juin 2017 Statut Membre Dernière intervention 25 mars 2022
11 mars 2022 à 18:21
je ne vois pas ou indiquer ça
0
yg_be Messages postés 22756 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 mai 2024 1 480
11 mars 2022 à 19:15
en cliquant sur
...
en dessous de la question de départ.
0