线程没有执行类功能
我试图通过线程调用hear()并在调用stop()时杀死它。可以看出,start()工作正常,但是线程似乎并没有调用听觉()。我要去哪里?提前致谢 :)
import speech_recognition as sr
from threading import Thread
import time
class SpeechRecognizer():
HEAR = True
speech_recognizer = sr.Recognizer()
def __init__(self,src_lang='hi-IN'):
self.src_lang=src_lang
self.hearing_thread = Thread(target=self.hear)
def hear(self):
print('in hearing')
with sr.Microphone() as source:
self.speech_recognizer.adjust_for_ambient_noise(source)
while self.HEAR:
audio = self.speech_recognizer.listen(source)
text = self.speech_recognizer.recognize_google(audio, language=self.src_lang)
print(text)
def start(self):
print('starting to hear')
self.hearing_thread.start()
def stop(self):
self.HEAR = False
self.hearing_thread.join()
print('done hearing')
if __name__=='__main__':
sr=SpeechRecognizer()
sr.start()
for i in range(5):
time.sleep(1)
sr.stop()
I am trying to call hear() through a thread and kill it when stop() is called. It is seen that the start() works fine but the thread doesn't seem to be calling the hear(). Where am I going wrong ? Thanks in Advance :)
import speech_recognition as sr
from threading import Thread
import time
class SpeechRecognizer():
HEAR = True
speech_recognizer = sr.Recognizer()
def __init__(self,src_lang='hi-IN'):
self.src_lang=src_lang
self.hearing_thread = Thread(target=self.hear)
def hear(self):
print('in hearing')
with sr.Microphone() as source:
self.speech_recognizer.adjust_for_ambient_noise(source)
while self.HEAR:
audio = self.speech_recognizer.listen(source)
text = self.speech_recognizer.recognize_google(audio, language=self.src_lang)
print(text)
def start(self):
print('starting to hear')
self.hearing_thread.start()
def stop(self):
self.HEAR = False
self.hearing_thread.join()
print('done hearing')
if __name__=='__main__':
sr=SpeechRecognizer()
sr.start()
for i in range(5):
time.sleep(1)
sr.stop()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明,存在命名冲突。 segress_rcognition软件包和类实例都命名为相同。当我将类实例从SR重命名为其他名称时,它开始工作正常。
It turns out that there is a naming conflict. Both the speech_recognition package and the class instance were named the same. It started working fine when I renamed the class instance from sr to a different name.