You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.4 KiB
Python

#!/usr/bin/env python3
import time
import speech_recognition as sr
# this is called from the background thread
def callback(recognizer, audio):
# received audio data, now we'll recognize it using Google Speech Recognition
try:
print("Processing...")
text = r.recognize_whisper(audio, language="english")
print(f"Whisper thinks you said {text}")
except sr.UnknownValueError:
print("Whisper could not understand audio")
except sr.RequestError as e:
print("Could not request results from Whisper")
r = sr.Recognizer()
m = sr.Microphone()
with m as source:
r.adjust_for_ambient_noise(source) # we only need to calibrate once, before we start listening
# start listening in the background (note that we don't have to do this inside a `with` statement)
stop_listening = r.listen_in_background(m, callback)
# `stop_listening` is now a function that, when called, stops background listening
# do some unrelated computations for 5 seconds
# for _ in range(50):
# time.sleep(0.1) # we're still listening even though the main thread is doing other things
# print('0')
# calling this function requests that the background listener stop listening
# stop_listening(wait_for_stop=False)
# do some more unrelated things
print("Listening...")
while True:
time.sleep(0.1) # we're not listening anymore,
# print('1')