# Record a response recorded_sound = record_sound(duration, sample_rate)

Args: frequency (int): Frequency of the sound key (Hz) duration (int): Duration of the sound key (seconds) sample_rate (int): Sample rate of the sound key (Hz)

# Verify the response if challenge_response(recorded_sound, challenge_code): print("Valid sound key!") else: print("Invalid sound key.")

# Compare the hash with the challenge code return sound_key_hash == challenge_code

Args: duration (int): Duration of the recording (seconds) sample_rate (int): Sample rate of the recording (Hz)

Returns: recorded_sound (numpy.ndarray): Recorded sound """ p = pyaudio.PyAudio() stream = p.open(format=pyaudio.paFloat32, channels=1, rate=sample_rate, input=True) recorded_sound = np.frombuffer(stream.read(int(sample_rate * duration)), dtype=np.float32) stream.stop_stream() stream.close() p.terminate() return recorded_sound

# Audio Playback and Recording def play_sound(sound_key, sample_rate): """ Play the sound key using PyAudio.