Reputation: 571
I am using the SpeechRecognition Python package to get the audio from the user.
import speech_recognition as sr
# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source)
This piece of code when executed starts listening for the audio input from the user. If the user does not speak for a while it automatically stops.
Upvotes: 3
Views: 7991
Reputation: 98921
Late and not a direct answer, but to continuously record the microphone until the letter q
is pressed, you can use:
import speech_recognition as sr
from time import sleep
import keyboard # pip install keyboard
go = 1
def quit():
global go
print("q pressed, exiting...")
go = 0
keyboard.on_press_key("q", lambda _:quit()) # press q to quit
r = sr.Recognizer()
mic = sr.Microphone()
print(sr.Microphone.list_microphone_names())
mic = sr.Microphone(device_index=1)
while go:
try:
sleep(0.01)
with mic as source:
audio = r.listen(source)
print(r.recognize_google(audio))
except:
pass
Upvotes: 1
Reputation: 3123
with
. you may print something after with
to know that the recording has been stopped.import speech_recognition as sr
recognizer = sr.Recognizer()
mic = sr.Microphone(device_index=1)
with mic as source:
recognizer.adjust_for_ambient_noise(source)
captured_audio = recognizer.record(source=mic, duration=50)
Upvotes: 4
Reputation: 88
I think you need to read the library specifications; then, you can check that using record method instead of listen method is preferable to your application.
Upvotes: 2