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
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') |