What I want to do
I am trying to listen to a person for 5 seconds and then respond back according to what the user says. I want to accomplish this using the PyPi speech_recognition library.
What I have Tried
I have tried combining a python timer with the text-to-speech function. This is my code:
#imported libraries needed
import speech_recognition
import time
#and a few more libraries to run "do something comment outs seen bellow"
r = speech_recognition.Recognizer()
#declared few more variables for other code
while True:
for variable in Variable:
#do something
if statement:
#do something. I am only adding the loops and statements to tell you about the loops I am using and you can help me accordingly
if statement:
#do something
with speech_recognition.Microphone() as source:
audio_text = r.listen(source)
text = r.recognize_google(audio_text)
if 'yes' in text:
while True:
for x in range(5):
#Says things using pyttsx3 library
#important code starts
t = 5
int(t)
for x in range(5):
mins = t // 60
secs = t % 60
timer = '{:02d}:{:02d}'.format(mins, secs)
# overwrite previous line
print(timer, end="\r")
time.sleep(1)
t -= 1
audio_text = r.listen(source)
text = r.recognize_google(audio_text)
print(text)
if 'yes' in text:
print("Right answer")
break
else:
print("Wrong answer")
if not 'yes' in text:
break
This code does not work because when you execute it starts normally, printing 0:05 in the terminal but it listens for a long time and only till I say something(‘yes’ or ‘no’ or something else) then it repeats and prints out 0:04 but I want the timer to continually run while listening to the user and if the person doesn’t respond within five seconds then I want to print something out in the console.
Question
Using Speech_Recognition library text-to-speech function(r.recognize_google(audio_text)) for a specific amount of time?
Bonus: Running any function for a specific amount of time?
source https://stackoverflow.com/questions/71003478/running-any-function-for-a-specific-amount-of-time
Comments
Post a Comment