import sounddevice as sd import numpy as np import pyautogui import time # --- EINSTELLUNGEN --- THRESHOLD = 5 # Höherer Wert = weniger empfindlich (probier mal 1.5 bis 3.0) COOLDOWN = 1.0 # Wartezeit in Sekunden, bis das nächste Foto gemacht werden kann # ------------------ --- last_capture_time = 0 def audio_callback(indata, frames, time_info, status): global last_capture_time current_time = time.time() # Lautstärke berechnen volume_norm = np.linalg.norm(indata) * 10 # Prüfen: Ist es laut genug UND ist die Sperrfrist abgelaufen? if volume_norm > THRESHOLD: if (current_time - last_capture_time) > COOLDOWN: print(f"Geräusch erkannt ({volume_norm:.2f})! Schieße Foto...") pyautogui.press('space') # Simuliert Leertaste last_capture_time = current_time else: # Geräusch ignoriert, da innerhalb der Sperrzeit pass print(f"Audio-Trigger aktiv (Threshold: {THRESHOLD})...") print("Drücke Strg+C zum Beenden.") with sd.InputStream(callback=audio_callback): while True: time.sleep(0.1)