我想在 Python 中与主程序并行运行一个函数。假设我有语音识别功能。如果听到特定的话语,我希望它在后台运行并中断主程序。但与此同时,我还有其他任务要执行。因此,语音识别应该作为一个单独的过程工作,并且可以在听到命令时调用一个函数。
我尝试了python多处理模块、线程模块和线程模块。但是所有这些都需要我等到进程或线程完成。我想要的是可以让我在后台运行功能的东西。如果发生特定事件,它们必须调用一些回调函数。
我希望我能找到一种有效的方法来做到这一点。
我尝试了线程模块。代码看起来像这样(伪代码):
def detected(text):
commands = 'a list of commands'
if text in commands:
#call some function according to the command
def speech_recognition():
#while True:
#If speech detected:
#record it
#process it and covert it to text
#if text is a specified command:
#call the detected(text) function with the recognized text as argument
import threading as t
pr = t.Thread(target=speech_recognition)
pr.start()
#from here starts the main program that does some other functions that
#doesn't need to be mentioned here.
但这不起作用。语音识别运行几秒钟,然后退出。没有引发异常,没有系统退出,什么都没有。当我尝试多处理和线程模块时,它是一样的。