我想在我的第一个python环境中从第二个python环境调用函数。这可能吗?

时间:2019-03-01 00:18:39

标签: python python-3.x environment-variables virtualenv environment

我正在开发虚拟助手。我正在使用google_speech_to_text转换器,无法保持音频输入的继续。我认为,如果有什么办法可以使用两种环境,一种将用于侦听和转换文本,另一种将用于其余的处理。

我不想更改我的STT引擎。我只想知道是否可以在环境之间同时切换。如果可以,怎么办?

这是我的input.py文件:凡需要输入音频的地方,我都会调用函数start_listening()

import speech_recognition as sr
import output
import winsound

def start_listening():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        # output.speak("Listening")
        r.adjust_for_ambient_noise(source)
        audio = r.record(source, duration=5)

        try:
            return r.recognize_google(audio)
        except:
            output.speak("Unable to Translate, speak again")
            start_listening()

这是我的processing.py文件:

import input as listener
import output as speak
import clock
import query_processor as mind
import rideBooking

#First Greeting at the startup , according to the time select the greeting
speak.speak(clock.get_part_of_day())

def searching_for_word(word,sentence):
    if word in sentence:
        return True
    else:
        return False

def main_organ():
    input = listener.start_listening()
    inputType = mind.classify(input)
    if inputType == 'whatever':
        #run different functions on different commands
        main_organ()


#run the app with the below code
if __name__ == "__main__":
    main_organ()

正在处理时,应用无法收听。只有在处理完全完成后,它才能开始监听。

1 个答案:

答案 0 :(得分:0)

您可以创建多个进程。

为此,请导入multiprocessing.Process.run模块和recover the return value

您可以使用queue处理来自子流程的数据。

您不需要多个环境。