I am writing a program to recognise the speech from a microphone and the code will process accordingly. The code I wrote for this purpose is below.
import speech_recognition as sr
import webbrowser
import pyttsx
from time import sleepengine = pyttsx.init()
engine.setProperty('rate', 70)
r = sr.Recognizer()def recognize(audio):try:return r.recognize(audio)except LookupError, e:print ereturn ''
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
Here I tried sleep also but before the engine speaks I can see the text Start Speaking getting printed. Instead of Sleep, is there any nice way to capture the speech in microphone and wait till say something or for a long silence?