kivy线程不适用于我(应用程序没有响应)



大家好,我的kivy应用程序出现了问题。当我开始运行一些函数时,应用程序停止响应。我试图通过使用线程来解决它,但它无法使用。

这就是小部件类:

class PyWidget(Widget):
stop = threading.Event()
def start_thread(self): 
self.ids.mic.source = 'assets/open2.png'
self.ids.mic.reload()
time.sleep(1)
threading.Thread(target=self.start_listening).start();

@mainthread
def start_listening(self):
while True:
try:
time.sleep(1)
print('Listening.......')
voiceText = RecognizeVoice()
# time.sleep(1)
if 'hello' in voiceText and Talking(App, respone, RecognizeVoice):
return

# else: Talking(App, respone, RecognizeVoice)
time.sleep(1)
except Exception as e:
print(f'start_listening: {e}')

RecognizeVoice功能启动麦克风并让用户语音转文本

def RecognizeVoice():
try:
with speechRec.Microphone() as sound:
voice = recognizer.listen(sound)
voiceText = recognizer.recognize_google(voice, language="en-US") #online 
voiceText = voiceText.lower()
print(f'Input : {voiceText}')
return voiceText
except speechRec.UnknownValueError as e:
print(f'RecognizeVoice: {e}')
except speechRec.RequestError as e:
print(f'RecognizeVoice: {e}')
respone('Sorry, something went wrong.')
# Text to speech
def respone(message):
AI.say(message)
AI.runAndWait()

在我的GUI中,我有一个按钮,当我点击start_thread功能时,所有其他人都会跟着它,我希望我能解释一切。感谢您帮助

start_listening()方法上的@mainthread装饰器会击败threading。只要去掉那个装饰器。

最新更新