import struct import pvporcupine import pyaudio import speech_recognition as sr from jarvis.utils import server_utils wake_word_handler = pvporcupine.create(keywords=['jarvis']) def wake_word_listening(): pa = pyaudio.PyAudio() audio_stream = pa.open( rate=wake_word_handler.sample_rate, channels=1, format=pyaudio.paInt16, input=True, frames_per_buffer=wake_word_handler.frame_length ) while True: pcm = audio_stream.read(wake_word_handler.frame_length) pcm = struct.unpack_from("h" * wake_word_handler.frame_length, pcm) keyword_index = wake_word_handler.process(pcm) if keyword_index >= 0: print("Recognized") record() def record(): # obtain audio from the microphone r = sr.Recognizer() with sr.Microphone() as source: print("Say something!") r.adjust_for_ambient_noise(source=source, duration=0.5) audio = r.listen(source, timeout=2, phrase_time_limit=5) server_utils.send_record_to_server(audio.frame_data) if __name__ == '__main__': wake_word_listening()