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

Résolu
pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

6 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
peut-être en ajoutant
root.wait_visibility()

avant la ligne 11.
0
pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
non malheureusement pas
0
pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
"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   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention  
 
root.wait_visibility() n'a aucun effet sur mes sons
0
pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
dans le wait_visibility(), il n'y a rien dans les parenthese ??
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
merci je reviens dès que possible
0
pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Tu n'as pas répondu au #10.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
peux-tu marquer la discussion comme résolue?
0
pescadou9999 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
je ne vois pas ou indiquer ça
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
en cliquant sur
...
en dessous de la question de départ.
0