Misty-Rhetorik-Coach/old/detektor.py
2026-05-06 12:46:05 +00:00

49 lines
1.6 KiB
Python

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 ---")