Ich versuche eine Tkinter GUI zu erstellen, die wie ein persönlicher Assistent ist, aber ich habe die erste Hürde genommen :(Wenn ich die GUI aktualisiere und mit Spracherkennung lausche, friert es ein und sagt nicht reagiert! ich verstehe, dass ich Multi-Threading verwenden müssen, aber ich bin fest, wie es zu benutzen!Python Multithreading mit tkinter
Hier ist mein Code und meine gescheiterten Versuch, bei Verwendung von Multi-Threading.
import tkinter as tk
from subprocess import call as say
import winsound
import speech_recognition as sr
import threading
def cbc(tex):
return lambda : callback(tex)
def callback(tex):
button = "Listen"
tex.insert(tk.END, button)
tex.see(tk.END)# Scroll if necessary
def listen(tex):
def callback(tex):
g = ("Say,,your,,command,,after,,the,,beep")
say('espeak '+ g, shell = True)
winsound.Beep(1000,500)
ltext = 'listening...'
tex.insert(tk.END, ltext)
r = sr.Recognizer()
with sr.Microphone() as source:
damand = r.listen(source)
damandtxt = (recognizer_google(damand))
tex.insert(tk5.END, damandtxt)
tex.see(tk.END)
t3 = threading.Thread(target = callback(tex))
t3.daemon = True
t3.start()
top = tk.Tk()
tex = tk.Text(master=top)
tex.pack(side=tk.RIGHT)
bop = tk.Frame()
bop.pack(side=tk.LEFT)
tk.Button(bop, text='Listen', command=lambda: listen(tex)).pack()
tk.Button(bop, text='Exit', command=top.destroy).pack()
top.mainloop()
I muss nur wissen, wie man es richtig benutzt. Bitte
ps Ich habe alle Unterlagen und alles auf Multi-Threading lesen, aber es funktioniert einfach nicht: '(
Vielen Dank im Voraus :)