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

# Main Function def main(): frequency = 440 # Hz duration = 5 # seconds sample_rate = 44100 # Hz

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

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

# Compute the challenge code challenge_code = hashlib.sha256(recorded_sound).hexdigest()

Args: sound_key (numpy.ndarray): Sound key to play sample_rate (int): Sample rate of the sound key (Hz) """ p = pyaudio.PyAudio() stream = p.open(format=pyaudio.paFloat32, channels=1, rate=sample_rate, output=True) stream.write(sound_key.astype(np.float32).tobytes()) stream.stop_stream() stream.close() p.terminate()

Returns: sound_key (numpy.ndarray): Generated sound key """ t = np.linspace(0, duration, int(sample_rate * duration), False) sound_key = np.sin(frequency * t * 2 * np.pi) return sound_key

# Save the sound key to a WAV file wf = wave.open("sound_key.wav", "wb") wf.setnchannels(1) wf.setsampwidth(4) wf.setframerate(sample_rate) wf.writeframes(sound_key.astype(np.float32).tobytes()) wf.close()

Lexi luna

Lexi Luna Biography

Emily willis

Emily Willis Biography