Я разрабатываю виртуального помощника. Я использую конвертер 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()
Пока обработка включена, приложение не может слушать. Он может start_listening только тогда, когда обработка полностью завершена.






Вы можете создать несколько процессов.
Для этого импортируйте модуль multiprocessing.Process.run и восстановить возвращаемое значение.
Вы можете использовать очередь для обработки данных, поступающих из вашего подпроцесса.
Вам не нужно несколько сред.
например, если обработке требуется 2 минуты, чтобы что-то обработать в течение этого периода, ввод должен работать нормально и следить за командами
многопроцессорность делает это. Поместите данные для обработки в очередь и обработайте их в другом процессе. Процесс обработки будет обрабатывать данные, не прерывая другие процессы.
Не могли бы вы помочь мне с примером
я хочу, чтобы обработка выполнялась в фоновом режиме, не прерывая обработку ввода.