sst buffer read all 3 seconds to hold tick loop
This commit is contained in:
parent
9bd70b82ea
commit
23b7209f6a
|
|
@ -690,7 +690,7 @@ Erst wenn ich [READY] sehe, starten die TICKs mit Bildern!"""
|
||||||
|
|
||||||
# ════════════════════════════════════════════════════════════════
|
# ════════════════════════════════════════════════════════════════
|
||||||
# STEFAN-ZEIT: Nach Claudes Antwort warten ob Stefan was sagen will.
|
# STEFAN-ZEIT: Nach Claudes Antwort warten ob Stefan was sagen will.
|
||||||
# Wenn Stefan spricht, warten wir AKTIV auf den Buffer.
|
# Sammle ALLE Eingaben bis Stefan wirklich fertig ist.
|
||||||
# ════════════════════════════════════════════════════════════════
|
# ════════════════════════════════════════════════════════════════
|
||||||
logger.debug("Warte auf Stefan...")
|
logger.debug("Warte auf Stefan...")
|
||||||
stefan_wait_start = time.time()
|
stefan_wait_start = time.time()
|
||||||
|
|
@ -698,29 +698,49 @@ Erst wenn ich [READY] sehe, starten die TICKs mit Bildern!"""
|
||||||
stefan_has_spoken = False
|
stefan_has_spoken = False
|
||||||
|
|
||||||
while self.running and (time.time() - stefan_wait_start) < stefan_initial_timeout:
|
while self.running and (time.time() - stefan_wait_start) < stefan_initial_timeout:
|
||||||
# Wenn Stefan anfängt zu sprechen, warte bis er fertig ist
|
# Wenn Stefan anfängt zu sprechen, sammle ALLES was er sagt
|
||||||
if self._recording.is_set():
|
if self._recording.is_set():
|
||||||
logger.debug("Stefan spricht, warte auf Stille...")
|
logger.debug("Stefan spricht, sammle alle Eingaben...")
|
||||||
while self.running and self._recording.is_set():
|
|
||||||
time.sleep(0.3)
|
|
||||||
logger.debug("Stefan fertig mit Sprechen")
|
|
||||||
stefan_has_spoken = True
|
stefan_has_spoken = True
|
||||||
|
|
||||||
# AKTIV auf Buffer warten statt feste Zeiten!
|
# Sammle alle Eingaben bis Stefan WIRKLICH fertig ist
|
||||||
# Warte bis Text im Buffer ankommt (max 30s Sicherheits-Timeout)
|
# Das heißt: Recording endet UND danach kommt 3s lang nichts mehr
|
||||||
|
while self.running:
|
||||||
|
# Warte bis aktuelles Recording endet
|
||||||
|
while self.running and self._recording.is_set():
|
||||||
|
time.sleep(0.3)
|
||||||
|
|
||||||
|
# Recording ist beendet - aber spricht Stefan gleich weiter?
|
||||||
|
# Warte kurz und prüfe ob neues Recording startet
|
||||||
|
nachdenk_pause = 3.0 # Sekunden warten ob Stefan weiter spricht
|
||||||
|
pause_start = time.time()
|
||||||
|
weiter_gesprochen = False
|
||||||
|
|
||||||
|
logger.debug(f"Recording-Pause, warte {nachdenk_pause}s ob Stefan weiter spricht...")
|
||||||
|
|
||||||
|
while self.running and (time.time() - pause_start) < nachdenk_pause:
|
||||||
|
if self._recording.is_set():
|
||||||
|
logger.debug("Stefan spricht weiter!")
|
||||||
|
weiter_gesprochen = True
|
||||||
|
break
|
||||||
|
time.sleep(0.2)
|
||||||
|
|
||||||
|
if not weiter_gesprochen:
|
||||||
|
# Stefan hat nicht weiter gesprochen - jetzt ist er fertig
|
||||||
|
logger.debug("Stefan ist fertig (keine weitere Eingabe)")
|
||||||
|
break
|
||||||
|
|
||||||
|
# Jetzt auf Buffer warten
|
||||||
buffer_wait_start = time.time()
|
buffer_wait_start = time.time()
|
||||||
buffer_timeout = 30.0 # Sicherheits-Timeout
|
buffer_timeout = 10.0 # Sicherheits-Timeout
|
||||||
logger.debug("Warte aktiv auf Stefan-Buffer...")
|
logger.debug("Warte auf Stefan-Buffer...")
|
||||||
|
|
||||||
while self.running and (time.time() - buffer_wait_start) < buffer_timeout:
|
while self.running and (time.time() - buffer_wait_start) < buffer_timeout:
|
||||||
with self._stefan_buffer_lock:
|
with self._stefan_buffer_lock:
|
||||||
if self._stefan_buffer:
|
if self._stefan_buffer:
|
||||||
logger.debug(f"Stefan-Buffer gefüllt: {len(self._stefan_buffer)} Einträge")
|
logger.debug(f"Stefan-Buffer gefüllt: {len(self._stefan_buffer)} Einträge")
|
||||||
break
|
break
|
||||||
time.sleep(0.2) # Kurzes Polling
|
time.sleep(0.2)
|
||||||
else:
|
|
||||||
# Timeout erreicht ohne Buffer
|
|
||||||
logger.warning("Stefan-Buffer Timeout - kein Text angekommen")
|
|
||||||
|
|
||||||
logger.debug("STT-Verarbeitung abgeschlossen")
|
logger.debug("STT-Verarbeitung abgeschlossen")
|
||||||
break
|
break
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue