我正在开发虚拟助手。我正在使用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()
正在处理时,应用无法收听。只有在处理完全完成后,它才能开始监听。
答案 0 :(得分:0)
您可以创建多个进程。
为此,请导入multiprocessing.Process.run
模块和recover the return value。
您可以使用queue处理来自子流程的数据。
您不需要多个环境。