¿Cómo puedo hacer que la pitón espere hasta que termine de hablar?
Estoy escribiendo un programa para reconocer el discurso desde un micrófono y el código se procesará en consecuencia. El código que escribí para este propósito está abajo.
import speech_recognition as sr
import webbrowser
import pyttsx
from time import sleep
engine = pyttsx.init()
engine.setProperty('rate', 70)
r = sr.Recognizer()
def recognize(audio):
try:
return r.recognize(audio)
except LookupError, e:
print e
return ''
with sr.Microphone() as source:
while True:
engine.say("Hi How can i help you ?")
sleep(0.15)
print "Start Speaking"
audio = r.listen(source)
words = recognize(audio)
print("You said " + words)
if words == "Facebook":
engine.say("Shall i open the Facebook page for you ?")
engine.runAndWait()
audio = r.listen(source)
words = recognize(audio)
if words == "Yes":
webbrowser.open('https://www.facebook.com')
elif words == "stop":
break
Aquí intenté dormir también pero antes de que el motor hable puedo ver el textoComienza a hablar imprimiéndose En lugar de dormir, ¿hay alguna forma agradable de capturar el discurso en el micrófono y esperar a decir algo o un largo silencio?