49 lines
1.6 KiB
Python
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 ---")
|