Spaces:
Build error
Build error
| import struct | |
| try: | |
| from ..utils.db import load_pvporcupine_api_key | |
| except ImportError: | |
| from utils.db import load_pvporcupine_api_key | |
| def wake_word(the_main_window): | |
| import pvporcupine | |
| import pyaudio | |
| porcupine = pvporcupine.create( | |
| access_key=load_pvporcupine_api_key(), keywords=pvporcupine.KEYWORDS | |
| ) | |
| # Initialize PyAudio | |
| pa = pyaudio.PyAudio() | |
| # Open an audio stream | |
| audio_stream = pa.open( | |
| rate=porcupine.sample_rate, | |
| channels=1, | |
| format=pyaudio.paInt16, | |
| input=True, | |
| frames_per_buffer=porcupine.frame_length, | |
| ) | |
| print("Listening for wake word...") | |
| # Continuously listen for the wake word | |
| while the_main_window.wake_word_active: | |
| pcm = audio_stream.read(porcupine.frame_length) | |
| pcm = struct.unpack_from("h" * porcupine.frame_length, pcm) | |
| # Process the audio frame and check for the wake word | |
| keyword_index = porcupine.process(pcm) | |
| if keyword_index >= 0: | |
| print("Wake word detected!") | |
| return True | |