import requests import base64 import time from config import MISTY_IP from analyse import analysiere, gib_feedback DATEINAME = "aufnahme.wav" AUFNAHME_DAUER_S = 10 def starte_aufnahme(): print(f"--- Schritt 1: Aufnahme ({AUFNAHME_DAUER_S}s) ---") try: requests.delete(f"http://{MISTY_IP}/api/audio?fileName={DATEINAME}", timeout=2) response = requests.post(f"http://{MISTY_IP}/api/audio/record/start", json={"fileName": DATEINAME}, timeout=5) if response.status_code == 200: print("🔴 Misty hört zu...") time.sleep(AUFNAHME_DAUER_S) requests.post(f"http://{MISTY_IP}/api/audio/record/stop", timeout=5) print("⏹️ Aufnahme beendet.") time.sleep(3) return True except Exception as e: print(f"❌ Fehler bei Aufnahme: {e}") return False def lade_datei(): print("--- Schritt 2: Datei vom Roboter laden ---") url = f"http://{MISTY_IP}/api/audio?fileName={DATEINAME}&base64=true" try: response = requests.get(url, timeout=20) if response.status_code == 200: audio_bytes = base64.b64decode(response.json()["result"]["base64"]) with open(DATEINAME, "wb") as f: f.write(audio_bytes) print("✅ Datei geladen.") return True except Exception as e: print(f"❌ Fehler beim Laden: {e}") return False if __name__ == "__main__": print("🚀 Rhetorik-Check gestartet") if starte_aufnahme(): if lade_datei(): anzahl, text = analysiere(DATEINAME) gib_feedback(anzahl) print("--- PROGRAMM BEENDET ---")